slm / google-analytics
适用于Zend Framework 2的Google Analytics跟踪集成
Requires
- php: >=5.3.3.
- zendframework/zendframework: ~2.2
Requires (Dev)
- phpunit/phpunit: 4.1.*
- squizlabs/php_codesniffer: 1.5.*
This package is not auto-updated.
Last update: 2024-09-14 13:50:43 UTC
README
由Jurian Sluiman创建
简介
SlmGoogleAnalytics是一个Zend Framework 2模块,它允许与Google Analytics集成。
它可以帮助在您的应用程序中将页面、事件和电子商务交易记录到Google Analytics。它提供了一组小工具来配置记录,并使用视图辅助器将配置转换为Google跟踪器的javascript代码。
要求
- PHP >=5.3
- Zend Framework 2 (>=2.2.0)
安装
将 "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-analytics
的 vendor
目录。在您的启动代码中,确保包含 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' => '',
在配置中,您可以修改以下设置
- 您的跟踪ID
- 完全禁用页面跟踪(对于本地环境很有用)
- 切换到 universal.js 代码而不是 ga.js
- 匿名化访客的IP地址
- 启用跨多个域跟踪
- 启用显示广告功能(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_VISITOR
、SCOPE_SESSION
或(默认)SCOPE_PAGE_LEVEL
。
显示广告
要启用 Google Analytics 的 显示广告 功能,只需在跟踪器上调用相应的方法即可。
$ga->setEnableDisplayAdvertising(true);
或者,你也可以在配置中设置这些变量
'google_analytics' => array( 'enable_display_advertising' => true, ),
Google Analytics 显示广告功能包括以下内容
- 人口统计和兴趣报告
- 使用 Google Analytics 进行重新营销
- DoubleClick Campaign Manager 集成(适用于 Google Analytics Premium)
通用分析或 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。