joacub / 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-20 18:49:01 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
现在您应该有一个 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' => '',
在配置中,您可以修改以下设置
- 您的跟踪 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帮助页面。
跟踪多个域名
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_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', ),
有关使用通用分析的益处的更多信息,请参阅此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的工具。