diff --git a/modules/browser/ga_push_browser.module b/modules/browser/ga_push_browser.module
index 52eddd0..0fd7d19
--- a/modules/browser/ga_push_browser.module
+++ b/modules/browser/ga_push_browser.module
@@ -166,7 +166,6 @@ function ga_push_browser_menu() {
  *   User.
  * @param string $entity_type
  *   Entity type.
- *
  * @return bool
  *   Access.
  */
@@ -189,3 +188,20 @@ function ga_push_browser_views_api() {
     'path' => drupal_get_path('module', 'ga_push_browser') . '/views',
   );
 }
+
+/**
+ * Implements hook_features_api().
+ *
+ * Allow the export of ga_push settings to features.
+ */
+function ga_push_browser_features_api() {
+  return array(
+    'ga_push_browser_settings' => array(
+      'name' => t('GA Push Browser Settings.'),
+      'feature_source' => TRUE,
+      'default_hook' => 'ga_push_browser_settings',
+      'default_file' => FEATURES_DEFAULTS_INCLUDED,
+      'file' => drupal_get_path('module', 'ga_push_browser') . '/inc/ga_push_browser.features.inc',
+    ),
+  );
+}
diff --git a/modules/browser/inc/ga_push_browser.features.inc b/modules/browser/inc/ga_push_browser.features.inc
new file mode 100644
index 0000000..c90d2c0
--- /dev/null
+++ b/modules/browser/inc/ga_push_browser.features.inc
@@ -0,0 +1,90 @@
+<?php
+/**
+ * @file
+ * Features integration for Google Push Browser settings.
+ */
+
+/**
+ * Implements hook_features_export_options().
+ */
+function ga_push_browser_settings_features_export_options() {
+
+  $options = array();
+
+  // Load all the current snippets.
+  $result = db_query('SELECT * FROM {ga_push_browser_event}');
+
+  // Build the options list.
+  foreach ($result as $record) {
+    $options[$record->id] = $record->name;
+  }
+  return $options;
+}
+/**
+ * Implements hook_features_export().
+ */
+function ga_push_browser_settings_features_export($data, &$export, $module_name = '') {
+  // Add module dependency.
+  $export['dependencies'][] = 'ga_push_browser';
+
+  // Add the export components.
+  foreach ($data as $component) {
+    $export['features']['ga_push_browser_settings'][$component] = $component;
+  }
+
+  return array();
+}
+
+/**
+ * Implements hook_features_export_render().
+ */
+function ga_push_browser_settings_features_export_render($module_name, $data) {
+  // Build the array to export the snippets.
+  $snippets = array();
+
+  // Loop through the data to be exported.
+  foreach ($data as $gappid) {
+    // Load the snippet with this ID.
+    $ga_push_browser_snippet = db_select('ga_push_browser_event', 'gpb')
+      ->fields('gpb')
+      ->condition('gpb.id', $gappid)
+      ->execute()
+      ->fetchAll(PDO::FETCH_ASSOC);
+
+    // If we have a result, export it.
+    if (!empty($ga_push_browser_snippet[0])) {
+      $snippets[$gappid] = $ga_push_browser_snippet[0];
+    }
+  }
+
+  $code = '  $data = ' . features_var_export($snippets, '  ') . ';' . PHP_EOL;
+  $code .= '  return $data;';
+
+  return array('ga_push_browser_settings' => $code);
+}
+
+/**
+ * Implements hook_features_rebuild().
+ */
+function ga_push_browser_settings_features_rebuild($module) {
+
+  $data = module_invoke($module, 'ga_push_browser_settings_defaults');
+  // Loop through the items we need to recreate.
+  foreach ($data as $gappid => $snippet) {
+    // Remove existing entry for this ID.
+    db_query("DELETE FROM {ga_push_browser_event} WHERE  id = :id", array(':id' => $gappid));
+
+    // Insert the snippet.
+    db_insert('ga_push_browser_event')
+      ->fields($snippet)
+      ->execute();
+  }
+
+}
+
+/**
+ * Implements hook_features_revert().
+ */
+function ga_push_browser_settings_features_revert($module) {
+  ga_push_browser_settings_features_rebuild($module);
+}
