You are here

public function GoogleUniversalAnalyticsService::getOutput in Analytics 7

Returns the output of the analytics service.

Parameters

array $context:

Return value

array A structured, renderable array.

Overrides AnalyticsServiceInterface::getOutput

File

analytics_google/src/GoogleUniversalAnalyticsService.php, line 33

Class

GoogleUniversalAnalyticsService

Code

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;
}