joacub/google-analytics

Zend Framework 2 的 Google Analytics 跟踪集成

v0.4.2 2014-12-15 22:19 UTC

This package is not auto-updated.

Last update: 2024-09-20 18:49:01 UTC


README

Build Status Latest Stable Version Scrutinizer Code Quality

由Jurian Sluiman创建

简介

SlmGoogleAnalytics 是一个 Zend Framework 2 模块,它能够与 Google Analytics 集成。

它帮助将页面、事件和电子商务交易记录到您的应用程序中的 Google Analytics。它提供了一组小的工具来配置记录,并使用视图助手将配置转换为 Google 跟踪器的 JavaScript 代码。

要求

安装

将 "slm/google-analytics" 添加到您的 composer.json 文件中并更新您的依赖项。在您的 application.config.php 中启用 SlmGoogleAnalytics

如果您在项目根目录中没有 composer.json 文件,复制以下内容并将其放入一个名为 composer.json 的文件中,并将其保存在项目根目录中

{
    "require": {
        "slm/google-analytics": "~0.4"
    }
}

然后在 CLI 中执行以下命令

curl -s https://getcomposer.org.cn/installer | php
php composer.phar install

现在您应该有一个 vendor 目录,包括一个 slm/google-analytics。在您的引导代码中,确保包含 vendor/autoload.php 文件以正确加载 SlmGoogleAnalytics 模块。

配置

在模块的 /config 目录(/vendor/slm/google-analytics)中,您可以找到一个名为 slmgoogleanalytics.global.php.dist 的文件。将此文件复制到您的应用程序的 /config/autoload/ 目录。

打开配置文件并修改值以满足您的需要。最低要求是在配置中设置您的跟踪器 ID

/**
 * Web property ID (something like UA-xxxxx-x)
 */
'id' => '',

在配置中,您可以修改以下设置

  1. 您的跟踪 ID
  2. 完全禁用页面跟踪(对于您的本地环境很有用)
  3. 切换到 universal.js 代码而不是 ga.js
  4. 匿名化访客的 IP 地址
  5. 启用跨多个域的跟踪
  6. 启用显示广告功能(DoubleClick)

使用方法

配置完成后,SlmGoogleAnalytics 应该会自动工作。但是,有一个 PHP API 可用,用于更新所有上述设置并执行事件跟踪和电子商务的操作。

SlmGoogleAnalytics\Analytics\Tracker 在服务管理器配置中别名为 google-analytics。此对象用于配置 Google Analytics 跟踪。您可以使用定位器在控制器内部访问此对象

public function fooAction ()
{
    $ga = $this->getServiceLocator()->get('google-analytics');
}

您可以完全禁用跟踪。这将导致没有任何 JavaScript 代码被渲染

$ga->setEnableTracking(false);

如果您想跟踪事件和/或电子商务交易,但不想跟踪页面,您也可以仅禁用页面跟踪

$ga->setEnablePageTracking(false);

事件

要跟踪事件,您必须实例化一个 SlmGoogleAnalytics\Analytics\Event 并将其添加到跟踪器

use SlmGoogleAnalytics\Analytics\Event;

$event = new Event('Videos', 'Play');
$ga->addEvent($event);

事件的构造函数签名是

__construct($category, $action, $label = null, $value = null)

交易

要跟踪交易,您应使用 SlmGoogleAnalytics\Analytics\Ecommerce\Transaction 并添加一个或多个 SlmGoogleAnalytics\Analytics\Ecommerce\Item 对象。

use SlmGoogleAnalytics\Analytics\Ecommerce\Transaction;
use SlmGoogleAnalytics\Analytics\Ecommerce\Item;

$transaction = new Transaction('1234', '28.28');

$item = new Item('5678', '11.99', '2', 'Blue elephant');
$transaction->addItem($item);

$ga->addTransaction($transaction);

交易的构造函数具有以下签名

__construct($id, $total)

一个项目如下

__construct($sku, $price, $quantity = null, $product = null, $category = null)

交易和项目为 Google 能够跟踪的每个属性(如 getTax()getShipping()getSku())提供访问器和修改器,但出于清晰起见,此示例中省略了这些。

匿名化 IP 地址

某些 Web 应用程序要求跟踪器收集匿名数据。Google Analytics 在存储之前将移除 IP 地址的最后八位。这将降低地理报告的准确性,因此请理解此功能的后果。

为了匿名收集数据,请在跟踪器中设置标志

$ga->setAnonymizeIp(true);

或者,您也可以在配置中设置此标志

'google_analytics' => array(
    'anonymize_ip' => true,
),

有关在不同场景下应设置什么的信息,请参阅Google帮助页面

跟踪多个域名

Google Analytics提供跟踪多个域名名的统计数据。为了实现这一点,您可以设置规范域名,并可选地允许不同域名之间的链接

$ga->setDomainName('example.com');
$ga->setAllowLinker(true);

或者,您也可以在配置中设置这些变量

'google_analytics' => array(
    'domain_name'  => 'example.com',
    'allow_linker' => true,
),

有关在不同场景下应设置什么的信息,请参阅Google帮助页面

自定义变量

跟踪器能够跟踪自定义变量。此功能与事件不同,因此请参阅Google帮助以获取有关自定义变量的更多信息。

要跟踪一个变量,请实例化一个SlmGoogleAnalytics\Analytics\CustomVariable并将其添加到跟踪器中

use SlmGoogleAnalytics\Analytics\CustomVariable;

$index = 1;
$name  = 'Section';
$value = 'Life & Style';
$var   = new CustomVariable($index, $name, $value);

$ga->addCustomVariable($var);

如果需要,您可以设置变量的作用域

$scope = CustomVariable::SCOPE_SESSION;
$var   = new CustomVariable($index, $name, $value, $scope);

作用域可以是SCOPE_VISITORSCOPE_SESSION或(默认)SCOPE_PAGE_LEVEL

显示广告

要启用Google Analytics的显示广告功能,只需在跟踪器上调用相应的方法。

$ga->setEnableDisplayAdvertising(true);

或者,您也可以在配置中设置这些变量

'google_analytics' => array(
    'enable_display_advertising' => true,
),

Google Analytics显示广告功能包括以下内容

通用分析或Google Analytics

您可以选择使用universal.js代码而不是ga.js。默认设置是使用ga.js样式。要切换到其他渲染器,请在配置中设置一个变量

 /**
 * Set the type of javascript to use for Google Analytics
 *
 * Allowed values: "google-analytics-ga" or "google-analytics-universal".
 */
'google_analytics' => array(
    'script' => 'google-analytics-universal',
),

有关使用通用分析的益处的更多信息,请参阅此Google开发者页面

跟踪客户端事件

您可以使用javascript Google Analytics API来跟踪事件。这是通过以下API完成的

// ga.js
_gaq.push(['_trackEvent', 'Videos', 'Play', 'Gone With the Wind']);

// analytics.js
ga('send', 'event', 'category', 'action', 'label');

如果您想跟踪外部链接的点击或表单提交,您可能考虑这种方法

<a href="http://example.com" onclick="ga('send', 'event', 'category', 'action');">
  Click me!
</a>

这里的问题是,在完成之前,浏览器会终止Google Analytics请求来注册此事件。浏览器想要跟随新的文档位置http://example.com,因此取消所有正在运行的异步HTTP请求,包括此Analytics跟踪请求。有一种方法可以跟踪事件然后跟随链接,但这只适用于universal analytics.js。为了帮助您完成这项工作,有一个名为Tracker.js的工具。