arcticfalcon / laravel-analytics
为 Laravel 4.x 提供的分析跟踪
Requires
- php: >=5.4.0
- illuminate/support: ~4.0
Requires (Dev)
- phpunit/phpunit: 4.3.*
README
安装
在您的 composer.json 中添加以下行
"require": {
"arcticfalcon/laravel-analytics": "~1.0"
}
运行 php artisan config:publish arcticfalcon/laravel-analytics
然后编辑 analytics.php
在 app/config/packages/arcticfalcon/laravel-analytics
以满足您的需求。
将 'ArcticFalcon\LaravelAnalytics\AnalyticsServiceProvider',
添加到 providers
在 app/config/app.php
。
将 'Analytics' => 'ArcticFalcon\LaravelAnalytics\AnalyticsFacade',
添加到 aliases
在 app/config/app.php
。
配置
provider - Provider to use, possible Providers are: GoogleAnalytics, NoAnalytics
Google Analytics
tracking_id - Tracking ID
tracking_domain - Tracking domain, unset or set to "auto" for automatic fallback
anonymize_ip - (true|false) anonymize users ip
auto_track - (true|false) auto tracking current pageview
使用方法
在控制器动作(或任何其他地方)使用以下语句来跟踪事件或页面视图
// tracking the current page view
Analytics::trackPage(); // only necessary if `auto_track` is false or Analytics::disableAutoTracking() was called before
// tracking an event
Analytics::trackEvent('category', 'action');
// tracking a custom line
Analytics::trackCustom("ga('send', ......"); // this line will be added within the tracking script
在您的视图或布局模板(例如 blade 模板)中使用以下语句
{{ Analytics::render() }}
对于 Google Analytics,您应将语句放置在 body
标签之后
<body>{{ Analytics::render() }}
如何使用
GoogleAnalytics
提供商自动控制本地环境行为以进行测试目的。有关详细信息,请参阅 https://developers.google.com/analytics/devguides/collection/analyticsjs/advanced#localhost
存在一个内置提供程序称为 NoAnalytics
。这是用于测试环境,不跟踪任何内容。因此,您无需重写代码,只需在选择 provider
时在 analytics
配置中选择此 provider
以满足特殊环境的配置。
在没有 JavaScript 的情况下跟踪度量
-
登录到 Google Analytics 并创建自定义定义。在那里您创建自定义指标。例如:电子邮件打开,整型,最小值:0 和最大值:1 这将成为
metric1
可用。 -
在您的邮件模板(或页面模板)中,您必须创建一个跟踪图像
<img src="{{ Analytics::trackMeasurementUrl('metric1', '1', new Event, new Campaign, md5($user)) }}" width="1" height="1" style="background-color: transparent; border: 0 none;" />
-
就是这样
API 文档
有关正确使用方法的详细信息,请参阅 ArcticFalcon\LaravelAnalytics\Contracts\AnalyticsProviderInterface.php
Analytics::render()
用于渲染正确的 JavaScript 代码。
/**
* returns the javascript code for embedding the analytics stuff
*
* @return string
*/
public function render();
Analytics::trackPage()
用于跟踪页面视图。
/**
* track an page view
*
* @param null|string $page
* @param null|string $title
* @param null|string $hittype
* @return void
*/
public function trackPage($page, $title, $hittype);
Analytics::trackEvent()
用于跟踪事件。
/**
* track an event
*
* @param string $category
* @param string $action
* @param null|string $label
* @param null|int $value
* @return void
*/
public function trackEvent($category, $action, $label, $value);
Analytics::trackCustom()
用于跟踪嵌入分析代码中的自定义脚本行。
/**
* track any custom code
*
* @param string $customCode
* @return void
*/
public function trackCustom($customCode);
Analytics::enableAutoTracking()
启用自动跟踪,覆盖配置设置 auto_track
。
/**
* enable auto tracking
*
* @return void
*/
public function enableAutoTracking();
Analytics::disableAutoTracking()
禁用自动跟踪,覆盖配置设置 auto_track
。
/**
* disable auto tracking
*
* @return void
*/
public function disableAutoTracking();
Analytics::trackMeasurementUrl()
有时您必须跟踪度量,例如打开电子邮件通讯。在那里您根本没有任何 JavaScript。
/**
* assembles an url for tracking measurement without javascript
*
* e.g. for tracking email open events within a newsletter
*
* @param string $metricName
* @param mixed $metricValue
* @param \ArcticFalcon\LaravelAnalytics\Data\Event $event
* @param \ArcticFalcon\LaravelAnalytics\Data\Campaign $campaign
* @param string|null $clientId
* @param array $params
* @return string
*/
public function trackMeasurementUrl($metricName, $metricValue, Event $event, Campaign $campaign, $clientId = null, array $params = array());