diff --git a/sites/all/modules/contrib/google_admanager/google_admanager.admin.inc b/sites/all/modules/contrib/google_admanager/google_admanager.admin.inc
index 9b86e82..d19f386 100644
--- a/sites/all/modules/contrib/google_admanager/google_admanager.admin.inc
+++ b/sites/all/modules/contrib/google_admanager/google_admanager.admin.inc
@@ -45,7 +45,7 @@ function google_admanager_admin_superslot_confirm_delete_submit($form, &$form_st
 /**
  * Implementation of hook_admin_settings() for configuring the module.
  */
-function google_admanager_admin_settings_form() {
+function google_admanager_admin_settings_form(&$form_state) {
   $form = array();
 
   $form['google_admanager_account'] = array(
@@ -119,9 +119,96 @@ function google_admanager_admin_settings_form() {
       ) + $vocab_form_item;
     }
   }
+  
+  $form_state['storage']['custom_vars'] = isset($form_state['storage']['custom_vars']) ? $form_state['storage']['custom_vars'] : variable_get('google_admanager_custom_variables', array_fill(0, 3, array('key' => '', 'value' => '')));
+  if (empty($form_state['storage']['custom_vars'])) {
+    $form_state['storage']['custom_vars'] = array_fill(0, 3, array('key' => '', 'value' => ''));
+  }
+  $form['custom_variables'] = array(
+    '#type' => 'item',
+    '#title' => t('Custom Variables'),
+  );
+  $form['custom_variables']['google_admanager_custom_variables'] = array(
+     '#tree' => TRUE,
+     '#element_validate' => array('_google_admanager_admin_settings_custom_variables_clean'),
+     '#theme' => 'google_admanager_custom_variables',
+     '#prefix' => '<div id="google-admanager-admin-settings-form-wrapper">',
+     '#suffix' => '</div>',
+  );
+  
+  foreach ($form_state['storage']['custom_vars'] as $key => $vars) {
+    $form['custom_variables']['google_admanager_custom_variables'][$key]['key'] = array(
+      '#type' => 'textfield',
+      '#default_value' => $vars['key'],
+      '#size' => 16,
+    );
+    $form['custom_variables']['google_admanager_custom_variables'][$key]['value'] = array(
+      '#type' => 'textfield',
+      '#default_value' => $vars['value'],
+      '#size' => 64,
+    );
+    $form['custom_variables']['google_admanager_custom_variables'][$key]['delete'] = array(
+      '#type' => 'submit',
+      '#value' => t('delete'),
+      '#submit' => array('_google_admanager_admin_settings_del_variable'),
+      '#name' => 'openx-site-vars-delete-' . $key,
+      '#key' => $key,
+      '#disabled' => count($form_state['storage']['custom_vars']) == 1,
+    );
+  }
+  
+  $form['custom_variables']['add_row'] = array(
+    '#type' => 'submit',
+    '#value' => t('Add variable'),
+    '#submit' => array('_google_admanager_admin_settings_add_variable'),
+  );
+  $form['custom_variables']['token_vars_tree'] = array(
+    '#theme' => 'token_tree',
+    '#token_types' => array('node', 'user'),
+  );
+  
   return system_settings_form($form);
 }
 
+function _google_admanager_admin_settings_custom_variables_clean(&$form, &$form_state) {
+  $errors = FALSE;
+
+  if (isset($form_state['clicked_button']['#submit'])) {
+    return;
+  }
+
+  $site_vars = $form_state['values']['google_admanager_custom_variables'];
+  foreach ($site_vars as $key => $var) {
+    if (empty($var['key']) && empty($var['value'])) {
+      unset($site_vars[$key]);
+    }
+    elseif (empty($var['key']) && !empty($var['value'])) {
+      $errors = TRUE;
+      form_error($form[$key]['key'], t('Key field is required when there is a value present'));
+    }
+    else {
+      unset($site_vars[$key]['delete']);
+    }
+  }
+  
+  if (!$errors) {
+    form_set_value($form, $site_vars, $form_state);
+  }
+}
+
+function _google_admanager_admin_settings_del_variable(&$form, &$form_state) {
+  $form_state['storage']['custom_vars'] = $form_state['values']['google_admanager_custom_variables'];
+  unset($form_state['storage']['custom_vars'][$form_state['clicked_button']['#key']]);
+  $form_state['rebuild'] = 1;
+}
+
+function _google_admanager_admin_settings_add_variable(&$form, &$form_state) {
+  $form_state['storage']['custom_vars'] = $form_state['values']['google_admanager_custom_variables'];
+  $form_state['storage']['custom_vars'][] = array('key' => '', 'value' => '');
+  $form_state['rebuild'] = 1;
+}
+
+
 /**
  * Implementation of hook_admin_settings_form_validate().
  */
@@ -157,6 +244,25 @@ function google_admanager_admin_settings_form_submit($form, &$form_state) {
   variable_set('google_admanager_superslots', $superslots);
 }
 
+function theme_google_admanager_custom_variables($form) {
+  $head = array(
+    t('Variable'),
+    t('Value'),
+    '',
+  );
+  $rows = array();
+  
+  foreach (element_children($form) as $key) {
+    $rows[] = array(
+      drupal_render($form[$key]['key']),
+      drupal_render($form[$key]['value']),
+      drupal_render($form[$key]['delete']),
+    );
+  }
+  
+  return theme('table', $head, $rows);
+}
+
 /**
  * Form to manage (add/remove) superslot
  */
diff --git a/sites/all/modules/contrib/google_admanager/google_admanager.module b/sites/all/modules/contrib/google_admanager/google_admanager.module
index 94c429f..2941ac2 100644
--- a/sites/all/modules/contrib/google_admanager/google_admanager.module
+++ b/sites/all/modules/contrib/google_admanager/google_admanager.module
@@ -124,6 +124,10 @@ function google_admanager_theme() {
     'google_admanager_block' => array(
       'arguments' => array('id' => NULL, 'ad_slot' => NULL),
     ),
+    'google_admanager_custom_variables' => array(
+      'arguments' => array('form' => array()),
+      'file' => 'google_admanager.admin.inc',
+    ),
   );
 }
 
@@ -190,6 +194,22 @@ function google_admanager_add_js($js = NULL, $type = 'slot') {
       google_admanager_add_js('GS_googleAddAdSenseService("'. $id .'");', 'service');
       google_admanager_add_js('GS_googleEnableAllServices();', 'service');
 
+      // Add custom variables
+      if ($custom_variables = variable_get('google_admanager_custom_variables', FALSE)) {
+        foreach ($custom_variables as $variable) {
+          if (!empty($variable['key'])) {
+            if (module_exists('token')) {
+              $value = token_replace_multiple($variable['value'], $objects, '[', ']', array('clear' => TRUE));
+            }
+            else {
+              $value = $variable['value'];
+            }
+            
+            google_admanager_add_js('GA_googleAddAttr("'. check_plain($variable['key']) .'", "'. check_plain($value) .'");', 'attr');
+          }
+        }
+      }
+
       // set the close script to fetch the ads.
       google_admanager_add_js('GA_googleFetchAds();', 'close');
     }

