【问题标题】:Send event to Google Analytics using API server sided使用 API 服务器端向 Google Analytics 发送事件
【发布时间】:2015-08-25 09:13:37
【问题描述】:

我有一个网站,我使用 javascript 函数将事件发送到 Google Analytics:

ga('send', 'event', 'showphone', 'feedback', 'result');

不过,我还需要使用 PHP 从server-side 发送一些类似的事件。我尝试了这个快速入门教程:Hello Analytics API: PHP quickstart for service accounts,报告工作就像一个魅力,但我不知道如何发送事件。

您能否逐步告诉我我应该编写什么代码来发送与上述完全相同的事件。

【问题讨论】:

  • 好的,我知道,但无论如何我在 GA API 中没有找到任何方法来发送事件,需要大师的帮助。
  • 并不是说我是 GA 的专业人士,但据我所知,GA 上的事件仅由 JS 处理(因为其中大多数是前端操作)。这在这里一步一步地解释:developers.google.com/analytics/devguides/collection/…
  • 我知道 JS 方法(如上所述),但必须有一种方法可以使用服务器端发送相同的信息。
  • @DaImTo - 随意这样做,但 OP 要求“一步一步”。虽然我会告诉他他是否走错了路,但我需要知道他实际上走错了路;)
  • @DaImTo 我不同意,但我不会在问题的评论部分争论我的观点:)

标签: php google-analytics google-api measurement-protocol


【解决方案1】:

Hello Analytics API: PHP quickstart for service accounts 根本不会帮助你。该代码使用核心报告 API,核心报告 API 用于请求来自 Google Analytics 的数据,而不是发送数据 Google Analytics。

要将数据发送到 Google Analytics,我们使用Measurement Protocol。测量协议用于向 Google 分析发送信息,您发布的 JS sn-p 也使用测量协议。

您可以使用任何支持 HTTP post 或 Http Get 的语言的测量协议。话虽如此,没有 PHP 特定的库可用于将信息发送到 Google 分析,您将不得不自己格式化您的帖子。一个提示是使用Validating hits 进行检查,然后再将其发送给 Google,而您正在开发它。

它可能看起来像这样

http://www.google-analytics.com/collect?v=1&tid=UA-XXX-Y&cid=35009a79-1a05-49d7-b876-2b884d0f825b&an=My%20Awesom%20APP&aid=com.daimto.awesom.app&av=1.0.0&aiid=come.daimto.awesom.installer &t=event&ec=list&ea=accounts&userclicked&ev=10

【讨论】:

  • 谢谢!我已经看到了,但认为在提到的 API 中有一些用于发送的方法。那么,我只需要 POST 或 GET URL 就可以了吗?但是授权怎么办?还是应该只从注册的服务器发送?
  • 不,测量协议是将跟踪数据发送到 Google 分析的唯一方法。其他 API 仅用于请求数据和帐户管理。
  • 不是您的网址,但是您可以查看某人网站的来源,获取 Google Analytics(分析)跟踪 ID,并使用 Measurement 协议将垃圾数据发送到 Google Analytics(分析)帐户。已经有机器人这样做了,称为垃圾推荐。 Google 正在解决这个问题。
  • 现在我正在尝试但一无所获...我使用工具 ga-dev-tools.appspot.com/hit-builder 制作了一个有效载荷:v=1&t=event&tid=UA-XXXXXXXX-1&cid=b5d9730e-59bf-4d21-aef7-fe415f64e7eb&ec=test_category&el=test_label&ev=9999&ea=test_action。之后,我尝试发送它(从构建器页面),但在我的谷歌分析中没有事件。
  • 记得检查实时报告事件不会在标准报告中显示 24 小时。
【解决方案2】:

github上有一个php-ga-measurement-protocoltheiconic的PHP库,可以使用Measurement Protocal发送数据。

use TheIconic\Tracking\GoogleAnalytics\Analytics;

// Instantiate the Analytics object
// optionally pass TRUE in the constructor if you want to connect using HTTPS
$analytics = new Analytics(true);

// Build the GA hit using the Analytics class methods
// they should Autocomplete if you use a PHP IDE
$analytics
    ->setProtocolVersion('1')
    ->setTrackingId('UA-26293728-11')
    ->setClientId('12345678')
    ->setDocumentPath('/mypage')
    ->setIpOverride("202.126.106.175");

// When you finish bulding the payload send a hit (such as an pageview or event)
$analytics->sendPageview();

【讨论】:

    【解决方案3】:

    这是一个如何使用 PHP 进行操作的示例。

    首先使用Google Analytics Hit Builder 构建您的请求,使用https://google-analytics.com/debug/collect?_query_here 对其进行测试,然后使用file_get_contents 发送它(请参阅here)。

    $options = array(
        'http' => array(
            'header'  => "Content-type: application/x-www-form-urlencoded\r\n",
            'method'  => 'POST',
            'content' => 'v=1&t=transaction&tid=UA-xxxxxxx-x&cid=xxxxxx&ti=abcdef&tr=100&in=productname'
        )
    );
    $context  = stream_context_create($options);
    $result = file_get_contents('https://www.google-analytics.com/collect', false, $context);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 2023-03-13
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多