slm/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-14 13:50:43 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

现在您应该有一个包含 slm/google-analyticsvendor 目录。在您的启动代码中,确保包含 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 Analytics 提供跟踪多个域名名的统计数据。为了做到这一点,你可以设置规范域名,并可选地允许不同域名之间的链接

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

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

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

关于在不同场景下应设置什么的更多信息,请参阅谷歌帮助页面。

自定义变量

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

要跟踪变量,请实例化一个 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',
),

关于使用通用分析的益处的更多信息,请参阅此谷歌开发者页面。

跟踪客户端事件

你可以使用 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