kairos/googleanalyticsserversidebundle

Symfony 2 组件,从服务器推送 Google Analytics 击中事件

2.0.6 2015-07-06 13:10 UTC

This package is not auto-updated.

Last update: 2024-09-14 15:00:47 UTC


README

Scrutinizer Code Quality Build Status

重要

主分支进行重大更改后,您的组件可能不再工作。为了解决这个问题,请更新您的 composer.json 并将组件版本设置为 ~1.0.0

    {
        "require": {
            "kairos/googleanalyticsserversidebundle": "~1.0.0"
        }
    }

此组件已更新以支持通用分析,这比 php-ga 库是一个更好的解决方案。

摘要

Google Analytics 服务器端组件旨在从服务器发送 Google Analytics 击中事件。这可以非常适用于应用程序,或者在 Google Analytics 被阻止的情况下。

此组件最初使用了来自 UnitedPrototype 的优秀项目:http://code.google.com/p/php-ga/但现在使用新的 Google 通用分析,这更加高效和健壮。

要求

需要 PHP 5.3,因为使用了命名空间和闭包,还需要 Symfony 2 框架。

安装

在您的 composer 文件中

    {
        "require": {
            "kairos/googleanalyticsserversidebundle": "~2.0.0"
        }
    }

更新您的 composer

    php composer.phar update kairos/googleanalyticsserversidebundle

Composer 将将组件安装到您的项目的 vendor/kairos 目录中。

在 AppKernel 文件中启用组件

    <?php
    // app/AppKernel.php

    public function registerBundles()
    {
        $bundles = array(
            // ...
            new Kairos\GoogleAnalyticsServerSideBundle\KairosGoogleAnalyticsServerSideBundle(),
        );
    }

在您的 config.yml 中

    kairos_google_analytics_server_side:
        account_id:  UA-XXXXXXXX-XX
        domain:     your.domain
        async: true|false       // use register shutdown function to send "async" hits to google analytics
        ssl: true|false
        localhost: true|false   // set to true if you want js code to push analytics on localhost
        timeout: 10             // value in seconds if you don't want your php script to block in case ga dos not respond
        connect_timeout: 2      // same thing as above

要启用 JS 跟踪

    twig:
        globals:
            gajs: "@ga_js_tracker"

如何使用

通用分析

超级酷技巧! 您可以使用服务器端和客户端!会话将在您的服务器端和客户端代码之间同步,因此不会有重复。

服务器端使用

您可以直接使用谷歌提供的文档,地址为: https://developers.google.com/analytics/devguides/collection/protocol/v1/parameters

    // Call tracker from container
    $this->container->get('ga_mp_tracker')->track('pageview',
        array(
            'dp' => 'your.address.com',
            'dt' => 'your title'
        )
    );

    // Track event
    $this->container->get('ga_mp_tracker')->track('event',
        array(
            'dp' => 'your.address.com',
            'dt' => 'your title',
            'ec' => 'event category',
            'ea' => 'event action',
            'el' => 'event label',
        )
    );

客户端使用

要在客户端使用 ga.js,您必须在 twig 配置中注册 ga_js_tracker 服务,然后您就可以这样调用它

    {{ gajs.getGAjs()|raw }}

您可以通过调用带有这些参数的函数来覆盖跟踪 ID 和域名

    {{ gajs.getGAjs('trackingID','domain')|raw }}

如果您不想让标签被 twig 转义,请不要忘记使用原始数据。您的 ga.js 会话将自动与您的服务器端会话同步(客户端 ID 在 cookies 中共享)。

使用旧版 Google Analytics 账户

警告 这已被弃用且不再受支持

    // Initilize GA Tracker
    $tracker = $this->get('google_analytics');
    
    // Assemble Visitor information (could also get unserialized from database)
    $visitor = new GoogleAnalytics\Visitor();
    $visitor->setIpAddress($_SERVER['REMOTE_ADDR']);
    $visitor->setUserAgent($_SERVER['HTTP_USER_AGENT']);
    $visitor->setScreenResolution('1024x768');
    
    // Assemble Session information (could also get unserialized from PHP session)
    $session = new GoogleAnalytics\Session();
    
    // Assemble Page information
    $page = new GoogleAnalytics\Page('/page.html');
    $page->setTitle('My Page');
    
    // Track page view
    $tracker->trackPageview($page, $session, $visitor);

感谢

此软件包直接基于 UnitedPrototype 的此项目:http://code.google.com/p/php-ga/