diff --git a/dfp.module b/dfp.module
index 3d453c4..24aabce 100644
--- a/dfp.module
+++ b/dfp.module
@@ -184,6 +184,10 @@ function dfp_ctools_plugin_directory($module, $type) {
 function dfp_context_registry() {
   return array(
     'reactions' => array(
+      'dfp_adunit' => array(
+        'title' => t('DFP AdUnit'),
+        'plugin' => 'dfp_context_reaction_adunit',
+      ),
       'dfp_tags' => array(
         'title' => t('DFP tags'),
         'plugin' => 'dfp_context_reaction_tags',
@@ -201,6 +205,14 @@ function dfp_context_registry() {
  */
 function dfp_context_plugins() {
   $plugins = array();
+   $plugins['dfp_context_reaction_adunit'] = array(
+    'handler' => array(
+      'path' => drupal_get_path('module', 'dfp') . '/plugins/contexts',
+      'file' => 'dfp_context_reaction_adunit.inc',
+      'class' => 'dfp_context_reaction_adunit',
+      'parent' => 'context_reaction',
+    ),
+  );
   $plugins['dfp_context_reaction_tags'] = array(
     'handler' => array(
       'path' => drupal_get_path('module', 'dfp') . '/plugins/contexts',
diff --git a/plugins/contexts/dfp_context_reaction_adunit.inc b/plugins/contexts/dfp_context_reaction_adunit.inc
new file mode 100644
index 0000000..c94bb20
--- /dev/null
+++ b/plugins/contexts/dfp_context_reaction_adunit.inc
@@ -0,0 +1,55 @@
+<?php
+
+/**
+ * @file
+ * Context reaction plugin for DFP ads.
+ */
+
+/**
+ * Expose DFP tags as context reactions.
+ */
+class dfp_context_reaction_adunit extends context_reaction {
+  /**
+   * Allow admins to choose what DFP adunit to override.
+   */
+  function options_form($context) {
+    // Get existing values for this form.
+    $values = $this->fetch_from_context($context);
+
+    // Get a list of all DART tags.
+    $options = array();
+    $tags = dfp_tag_load_all();
+
+    foreach ($tags as $tag) {
+      $options[$tag->machinename] = $tag->slot;
+    }
+    
+    $used_tags = implode(', ', $options);
+    
+    $form = array(
+      '#tree' => TRUE,
+      '#title' => t('Override these DFP tags with a custom ad unit'),
+      '#description' => t("The following DFP ad tags have their ad units overridden: $used_tags. Example: sports/baseball/yankees"),
+      '#type' => 'textfield',
+      '#size' => 60,
+      '#default_value' => isset($values) ? $values : array(),
+    );
+    
+    return $form;
+  }
+
+  /**
+   * override all tags based on context.
+   */
+  function execute(&$tag) {
+    // Check each currently set context to see if the DART tag specified by
+    // machinename should be overridden or not.
+    // override all tags
+    foreach ($this->get_contexts() as $context_name => $context) { 
+      if (isset($context->reactions['dfp_adunit'])) {
+        $tag->adunit = $context->reactions['dfp_adunit'];
+        break;
+      }
+    }
+  }
+}
