diff --git managed/adsense_managed.module managed/adsense_managed.module
index 2285b78..5be6d97 100644
--- managed/adsense_managed.module
+++ managed/adsense_managed.module
@@ -58,9 +58,8 @@ function adsense_managed_block_info() {
  */
 function adsense_managed_block_configure($delta = '') {
   $ad = _adsense_managed_get_block_config($delta);
-  foreach (adsense_ad_formats() as $format => $data) {
-    $ad_list[$format] = $format . ' : ' . $data['desc'];
-  }
+
+  $form = array();
 
   $form['info'] = array(
     '#type' => 'textfield',
@@ -71,10 +70,34 @@ function adsense_managed_block_configure($delta = '') {
     '#required' => TRUE,
     '#weight' => -19,
   );
+
+  $defaults = array('ad_format' =>  $ad[1], 'ad_slot' =>  $ad[2], 'ad_align' =>  $ad[3]);
+  $form = array_merge($form, adsense_managed_add_form($defaults));
+
+  return $form;
+}
+
+/**
+ * Form builder with ad related options.
+ *
+ * @param $values
+ *   Array with default values. Possible keys are:
+ *   - ad_slot: The ad slot ID.
+ *   - ad_format: Optional; The ad format. Defaults to '250x250'.
+ *   - ad_align: Optional; The alignment of the ad. Defaults to 'center'.
+ */
+function adsense_managed_add_form($defaults = array()) {
+  // Set defaults values.
+  $defaults += array('ad_format' => '250x250', 'ad_slot' => '', 'ad_align' => 'center');
+
+  foreach (adsense_ad_formats() as $format => $data) {
+    $ad_list[$format] = $format . ' : ' . $data['desc'];
+  }
+
   $form['ad_format'] = array(
     '#type' => 'select',
     '#title' => t('Ad format'),
-    '#default_value' => ($ad) ? $ad[1] : '250x250',
+    '#default_value' => $defaults['ad_format'],
     '#options' => $ad_list,
     '#description' => t('Select the ad dimensions you want for this block.'),
     '#required' => TRUE,
@@ -82,14 +105,14 @@ function adsense_managed_block_configure($delta = '') {
   $form['ad_slot'] = array(
     '#type' => 'textfield',
     '#title' => t('Ad Slot ID'),
-    '#default_value' => ($ad) ? $ad[2] : '',
+    '#default_value' => $defaults['ad_slot'],
     '#description' => t('This is the Ad Slot ID from your Google Adsense account, such as 0123456789.'),
     '#required' => TRUE,
   );
   $form['ad_align'] = array(
     '#type' => 'select',
     '#title' => t('Ad alignment'),
-    '#default_value' => ($ad) ? $ad[3] : 'center',
+    '#default_value' => $defaults['ad_align'],
     '#options' => array(
       '' => t('None'),
       'left' => t('Left'),
@@ -126,6 +149,16 @@ function adsense_managed_block_view($delta = '') {
 }
 
 /**
+ * Implements hook_ctools_plugin_directory().
+ */
+function adsense_managed_ctools_plugin_directory($module, $plugin) {
+  if ($module == 'ctools') {
+    return 'plugins/' . $plugin;
+  }
+}
+
+
+/**
  * Configuration of the provided block
  *
  * @param $delta
diff --git managed/plugins/content_types/adsense_slot/adsense_slot.inc managed/plugins/content_types/adsense_slot/adsense_slot.inc
new file mode 100644
index 0000000..d7db14b
--- /dev/null
+++ managed/plugins/content_types/adsense_slot/adsense_slot.inc
@@ -0,0 +1,53 @@
+<?php
+
+/**
+ * Plugin definition.
+ */
+$plugin = array(
+  'title' => t('Google Adsense slot'),
+  'description' => t('Show a google adsense by slot ID.'),
+  'category' => t('Google AdSense'),
+  'defaults' => array('ad_format' => '250x250', 'ad_slot' => '', 'ad_align' => 'center'),
+);
+
+/**
+ * Render callback.
+ */
+function adsense_managed_adsense_slot_content_type_render($subtype, $conf, $args, $context) {
+  if (!_adsense_page_match()) {
+    return;
+  }
+
+  $block = new stdClass();
+  $block->module = 'adsense_managed';
+  $block->title = t('Google AdSense');
+  $block->delta = drupal_clean_css_identifier($conf['ad_slot']);
+
+  $output = adsense_display(array('format' => $conf['ad_format'], 'slot' => $conf['ad_slot']));
+  if (!empty($conf['ad_align'])) {
+    $output = "<div style='text-align:" . $conf['ad_align'] . " display: block;'>" . $output . "</div>";
+  }
+
+  $block->content = $output;
+  return $block;
+}
+
+/**
+ * Form callback.
+ */
+function adsense_managed_adsense_slot_content_type_edit_form($form, &$form_state) {
+  $conf = $form_state['conf'];
+  return array_merge($form, adsense_managed_add_form($conf));
+}
+
+/**
+ * Form submit.
+ */
+function adsense_managed_adsense_slot_content_type_edit_form_submit($form, &$form_state) {
+  // Copy everything from our defaults.
+  foreach (array_keys($form_state['plugin']['defaults']) as $key) {
+    $form_state['conf'][$key] = $form_state['values'][$key];
+  }
+}
+
+
