Google Adwords通过Measurement Protocol节省服务器端转换跟踪

时间:2019-12-28 22:19:35

标签: php google-analytics-api google-adwords

我正在使用:

https://developers.google.com/analytics/devguides/collection/protocol/v1/

用于服务器端跟踪。

这是设置:

  • Google Analytics(分析)帐户。
  • Google adwords帐户。
  • AdWords帐户已链接到分析帐户。

我用adwords创建广告,用户点击广告,用户访问第三方网站,第三方网站通过adwords与访问者gclid发出https POST请求。这存储在mysql数据库中。

在google AdWords帐户中,我创建了一个转换事件。 (使用脱机跟踪转换有效,但我更喜欢使用测量协议的唯一原因是,脱机跟踪仅在90分钟后接受转换。)

然后我以这种方式发送页面浏览量和转换:

/**
 * @param $gclid
 * @param $clientId
 * @return \TheIconic\Tracking\GoogleAnalytics\AnalyticsResponse
 */
private function sendPageView($gclid, $clientId){
    $this->analytics
        ->setProtocolVersion(1)
        ->setTrackingId(self::GLOBAL_TRACKING_ID)
        ->setGoogleAdwordsId($gclid)
        ->setAnonymizeIp(true)
        ->setClientId($clientId);

    return $this->analytics->sendPageview();
}

/**
 * @param $gclid
 * @param $clientId
 * @return \TheIconic\Tracking\GoogleAnalytics\AnalyticsResponse
 */
private function sendConversion($gclid, $clientId, $url){
    $this->analytics
        ->setProtocolVersion(1)
        ->setTrackingId(self::GLOBAL_TRACKING_ID)
        ->setGoogleAdwordsId($gclid)
        ->setAnonymizeIp(true)
        ->setClientId($clientId)
        ->setEventAction('s2s')
        ->setEventCategory('Lead')
        ;

    return $this->analytics->sendEvent();
}

响应:

object(TheIconic\Tracking\GoogleAnalytics\AnalyticsResponse)#1008 (3) {
  ["httpStatusCode":protected]=>
  int(200)
  ["requestUrl":protected]=>
  string(164) "https://ssl.google-analytics.com/collect?v=1&tid=UA-1XXXXX-1&gclid=EAIaIQobChMInvrxopLZ5gIVXXXXXXXXXXXXXXXXXXXX_BwE&aip=1&cid=1&ea=s2s&ec=Lead&t=event"
  ["responseBody":protected]=>
  string(35) "GIF89a�����,D;"
}

因此,响应为200,但是转换没有记录在任何地方,并且我不确定是否应该发送任何其他参数,或者如何调试问题。

1 个答案:

答案 0 :(得分:0)

要了解Google一侧的查询会发生什么情况,可以选择调试测量协议。为此,只需在URL的/debug部分之前添加/collect前缀。它应该看起来像: https://ssl.google-analytics.com/debug/collect?v=1&tid=UA-1XXXXX-1 之后,如果您的请求有效,您将看到详细信息。

相关问题