标签-星球/通用分析

此包已被废弃且不再维护。没有推荐替代包。

为您的Laravel 4应用程序轻松包含通用分析代码提供了一种方法

1.0.1 2014-01-25 22:19 UTC

This package is auto-updated.

Last update: 2024-08-26 09:27:08 UTC


README

轻松将通用分析添加到您的Laravel 4应用程序。

通用分析Google Analytics的新代码库。此包允许您轻松将其添加到Laravel 4应用程序。

Build Status ProjectStatus

目录

  1. 安装
  2. 用法 1. 概述 1. 创建新实例 1. 获取现有实例 1. 调用方法 1. 渲染
  3. 配置 1. 调试模式 1. 自动页面视图 1. 账户
  4. 发行说明
  5. 许可证
  6. 寻求帮助

安装

由于有composer,安装很简单。首先,将以下 require 键添加到您的 composer.json 文件中

"tag-planet/universal-analytics": "dev-master"

然后运行Composer更新命令

$ composer update

然后,在您的 config/app.php 文件中将 'TagPlanet\UniversalAnalytics\UniversalAnalyticsServiceProvider' 添加到 $providers 数组的末尾

'providers' => array(
    'Illuminate\Foundation\Providers\ArtisanServiceProvider',
    'Illuminate\Auth\AuthServiceProvider',
    ...
    'TagPlanet\UniversalAnalytics\UniversalAnalyticsServiceProvider',
),

同样,在您的 config/app.php 文件中,将 'UniversalAnalytics' => 'TagPlanet\UniversalAnalytics\UniversalAnalyticsFacade' 添加到 $aliases 数组的末尾

'aliases' => array(
    'App'        => 'Illuminate\Support\Facades\App',
    'Artisan'    => 'Illuminate\Support\Facades\Artisan',
    ...
    'UniversalAnalytics' => 'TagPlanet\UniversalAnalytics\UniversalAnalyticsFacade'
),

接下来,您需要发布配置文件

$ php artisan config:publish tag-planet/universal-analytics

现在您将能够编辑位于 app/config/packages/tag-planet/universal-analytics/settings.php 的配置选项

用法

概述

此包紧密复制JavaScript代码语法,以帮助开发者轻松过渡到使用此包。以下是一个示例,一个是JavaScript版本,另一个是PHP版本

// JavaScript:
ga('create', 'UA-123456-1', {'name': 'foo'});

// PHP
UniversalAnalytics::ga('create', 'UA-123456-1', ['name'=>'foo']);

您可以使用任何ga调用,就像使用JavaScript版本一样。这将输出相同的代码。

UniversalAnalytics::ga('create', 'UA-123456-1', ['name'=>'foo', 'domainName' => 'tagpla.net']);

在JS中输出如下

ga("create", "UA-123456-1", {
    "name": "foo",
    "domainName": "tagpla.net"
});

创建新实例

虽然可以通过配置文件自动创建跟踪器,但您也可以自己创建新实例。再次强调,您只需要像JavaScript版本那样调用 UniversalAnalytics::ga( ... ) 并传递相同的参数即可

// Setup a new tracker with "foo" as its name:
$fooTracker = UniversalAnalytics::ga('create', 'UA-123456-1', ['name'=>'foo', 'domainName' => 'tagpla.net']);

强烈建议传递一个名称给跟踪器,但如果没有传递,系统会自动生成一个。在这种情况下,名称是 foo,如选项数组中所示。如果没有传递名称,命名模式是 tX,其中X是先前实例的计数。例如。

// Name would be "foo":
UniversalAnalytics::ga('create', 'UA-123456-1', ['name'=>'foo']);

// Name would be "t1":
UniversalAnalytics::ga('create', 'UA-123456-2');

// Name would be "bar":
UniversalAnalytics::ga('create', 'UA-123456-3', ['name'=>'bar', 'domainName' => 'tagpla.net']);

// Name would be "t3":
UniversalAnalytics::ga('create', 'UA-123456-4', ['domainName' => 'tagpla.net']);

获取现有实例

现在您已经创建了一个跟踪器实例,您可能需要获取它来调用其他方法。如果您通过配置创建跟踪器实例,您将使用作为键的友好名称(参见:账户

// Grab the "foo" instance
$tracker = UniversalAnalytics::get('foo');

调用方法

您可能希望添加自定义变量(维度/指标)或跟踪某些事件。由于参数格式与JavaScript版本相同,本文件不涵盖所有选项的解释。您可以在谷歌文档上了解格式。

获取它后,您可以将其推送到单个实例(参见:获取现有实例

// Grab the "foo" instance
$fooTracker = UniversalAnalytics::get('foo');

// Call a pageview event to the "foo" instance
$fooTracker->ga('send', 'pageview');

一个更复杂的示例,使用电子商务跟踪

// Grab the "foo" instance
$fooTracker = UniversalAnalytics::get('foo');

// Require the ecommerce JS file:
$fooTracker->ga('require', 'ecommerce', 'ecommerce.js');

// Setup a transaction:
$fooTracker->ga('ecommerce:addTransaction', [
    'id'          => $order->id
    'addiliation' => $store->name,
    'revenue'     => $order->total,
    'shipping'    => $order->shipping->cost,
    'tax'         => $order->tax,  
]);

除了推送到单个实例外,您还可以在一次调用中推送到所有现有实例

// Have a pageview across all instances
UniversalAnalytics::ga('send', 'pageview');

渲染

现在您已经创建了一个实例并向其推送了数据,您将在某个时候渲染JavaScript输出。

渲染选项

您可以将3个可选的布尔参数传递给render方法。

function render($renderCodeBlock = true, $renderJavaScriptTags = true, $clearData = true);

$renderCodeBlock,当设置为true时,将渲染默认的通用分析代码块。默认设置为true。如果您已经在页面上输出了代码块,请将其设置为false

// A sample of what it'll render when set to true:
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//#/analytics.js','ga');

记住,您只需在每个页面上渲染一次代码块。

$renderJavaScriptTags,将在代码周围渲染<script> ... </script>标签。默认设置为true。如果您正在将输出追加到现有的JavaScript标签中,请将其设置为false

$clearData,将在渲染完成后清除所有之前的调用。如果页面上有多个渲染,出于任何原因,您应该将其设置为true。否则,您将得到重复的调用。

所有这些参数都可以在渲染所有实例或单个实例时使用。

渲染所有实例

在大多数情况下,您希望一次性渲染所有实例。为此,请在主视图布局的</head>之前放置以下代码

// For blade templates:
{{ UniversalAnalytics::render() }}

// For raw PHP templates:
echo UniversalAnalytics::render();

如果您愿意,您还可以使用视图组合器

渲染单个实例

如果需要,您也可以渲染单个实例

// Grab the "foo" instance
$fooTracker = UniversalAnalytics::get('foo');

// render it!
echo $fooTracker->render();

配置

发布配置文件后,您可以在app/config/packages/tag-planet/universal-analytics/settings.php中编辑它。如果您想根据环境级别使用配置文件,可以通过这些说明实现。

调试模式

调试模式使用一个不同的JS文件,该文件通过浏览器控制台输出发送给通用分析的信息。此模式可以通过将debug更改为true来启用,或通过将其更改为false来禁用。默认设置为true

'debug' => false,

在生产域上应将其设置为false

自动页面视图

当自动页面视图启用时,每次发生render调用时,都会自动附加一个页面视图事件。如果没有必要传递自定义页面位置或页面标题,则建议启用此功能。虽然配置设置是全局性的,但此设置可以在每个实例级别上覆盖。

'autoPageview' => true,

账户

虽然您可以通过手动创建新的跟踪器实例(如本指南中之前所述),但也可以让它们自动创建。根据您的需求,有2种不同的配置格式。两者都需要一个友好的名称和账户ID。友好的名称应该是一个唯一的字母数字名称,用于标识每个跟踪器。您可以使用像"默认"这样简单的名称,也可以使用更复杂的名称,例如"tagplanetInstall"。您可以在以下位置了解更多关于跟踪器名称的信息:
谷歌的文档。账户ID也是必需的,当您在谷歌分析中创建新账户或属性时,会提供给您。如果您不确定这是什么,请查看谷歌的帮助文件以找到它。

基本格式

对于那些不需要额外配置选项的人,您可以使用简化格式。以下示例使用友好的名称"trackerName"和账户ID"UA-123456-1"。

'accounts' => array(
    'trackerName' => 'UA-123456-1',
),
高级格式

对于那些在创建调用时需要额外配置(例如设置cookie域或任何只创建字段)的人,您需要使用更高级的格式。以下示例使用友好的名称"foobar"和账户"UA-654321-1"。

'accounts' => array(
    'foobar' => array(
        'account' => 'UA-654321-1',
        'options' => array(
            'domainName' => 'foobar.com',
        ),
    ),
),

发行说明

版本 1.0.0

初始版本

许可证

Tag Planet的Laravel 4通用分析是免费软件,根据MIT许可证条款分发。

寻求帮助

如果您有任何问题、错误报告或反馈,请利用我们的问题跟踪器