You are here

class GoogleUniversalAnalyticsService in Analytics 7

Hierarchy

Expanded class hierarchy of GoogleUniversalAnalyticsService

1 string reference to 'GoogleUniversalAnalyticsService'
analytics_google_analytics_service_info in analytics_google/analytics_google.module
Implements hook_analytics_service_info().

File

analytics_google/src/GoogleUniversalAnalyticsService.php, line 3

View source
class GoogleUniversalAnalyticsService extends AnalyticsService {

  /**
   * {@inheritdoc}
   */
  public function defaultConfiguration() {
    return array(
      'id' => NULL,
    );
  }

  /**
   * {@inheritdoc}
   */
  public function buildConfigurationForm($form, &$form_state) {
    $options['id'] = array(
      '#title' => t('Tracking ID'),
      '#type' => 'textfield',
      '#default_value' => $this
        ->getConfiguration()['id'],
      '#element_validate' => array(
        '_analytics_google_validate_id',
      ),
      '#required' => TRUE,
      '#size' => 15,
    );
    return $options;
  }

  /**
   * {@inheritdoc}
   */
  public function getOutput(array $context) {

    // Support AMP analytics
    if (module_exists('amp') && amp_is_amp_request()) {
      $settings = array();
      $settings['config_json'] = array();
      $settings['config_json'] = array();
      $settings['config_json']['vars']['account'] = $this
        ->getConfiguration()['id'];
      $settings['config_json']['triggers']['track'] = array(
        'on' => 'visible',
        'request' => 'pageview',
      );
      $settings['type'] = 'googleanalytics';
      $output = $this
        ->getAmpOutput($settings, $context);
      return $output;
    }
    $actions = array();
    $actions[] = array(
      'create',
      $this
        ->getConfiguration()['id'],
      'auto',
      array(
        'name' => $this
          ->getMachineName(),
      ),
    );
    if (variable_get('analytics_privacy_anonymize_ip', FALSE)) {
      $actions[] = array(
        $this
          ->getMachineName() . '.set',
        'anonymizeIp',
        TRUE,
      );
    }
    $actions[] = array(
      $this
        ->getMachineName() . '.send',
      'pageview',
    );
    $actions = array_merge($actions, module_invoke_all('analytics_google_universal_actions', $this, $context));
    drupal_alter('analytics_google_universal_actions', $actions, $this, $context);
    $code = theme('analytics_google_universal_js', array(
      'actions' => $actions,
      'service' => $this,
    ));
    $output = array();
    $output['#attached']['js'][] = array(
      'data' => $code,
      'type' => 'inline',
      //'weight' => 100000,
      'preprocess' => FALSE,
      'scope' => 'footer',
    );
    return $output;
  }

  /**
   * {@inheritdoc}
   */
  public function getCacheableUrls() {
    $urls = array();

    // if ($this->service->options['cache']) {
    $urls[] = 'https://www.google-analytics.com/analytics.js';

    // }
    return $urls;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
AnalyticsService::$description private property
AnalyticsService::$hasMultiple protected property
AnalyticsService::$label private property
AnalyticsService::$machine_name private property
AnalyticsService::$options private property
AnalyticsService::$service private property
AnalyticsService::canTrack public function Determines if the current service can track the current request. Overrides AnalyticsServiceInterface::canTrack
AnalyticsService::getAmpOutput public function Build an <amp-analytics> tag for output on an amp-enabled page request.
AnalyticsService::getConfiguration public function Overrides AnalyticsServiceInterface::getConfiguration
AnalyticsService::getDescription public function Returns the description of the plugin instance. Overrides AnalyticsServiceInterface::getDescription
AnalyticsService::getLabel public function Returns the label of the plugin instance. Overrides AnalyticsServiceInterface::getLabel
AnalyticsService::getMachineName public function Returns the machine name of the analytics plugin instance. Overrides AnalyticsServiceInterface::getMachineName
AnalyticsService::getService public function Returns the type of the plugin instance. Overrides AnalyticsServiceInterface::getService
AnalyticsService::hasMultipleInstances public function
AnalyticsService::__construct public function
GoogleUniversalAnalyticsService::buildConfigurationForm public function Form constructor. Overrides AnalyticsService::buildConfigurationForm
GoogleUniversalAnalyticsService::defaultConfiguration public function Overrides AnalyticsService::defaultConfiguration
GoogleUniversalAnalyticsService::getCacheableUrls public function Overrides AnalyticsService::getCacheableUrls
GoogleUniversalAnalyticsService::getOutput public function Returns the output of the analytics service. Overrides AnalyticsServiceInterface::getOutput