3

我在我的服务器上使用 php-ga 和一个 php 页面来提供电子邮件中的图像,但同时也跟踪我们网站的谷歌分析的页面视图(/email-viewed)。因此,当用户打开启用图像的电子邮件时,我的 php 脚本会将页面视图触发到谷歌分析。现在发生这种情况后,用户经常点击电子邮件中的一些链接,将他们返回到我们的网站。我可以告诉人们正在点击这些链接,因为登陆页面记录在谷歌分析中。

我遇到的问题是谷歌分析不认为这两个动作是一个会话。有什么办法可以强迫/欺骗谷歌分析相信这两个页面视图是一个会话?

这是我的 email-tracking.gif 图像,由我的服务器加载并被视为 php:

// Initilize GA Tracker
$tracker = new GoogleAnalytics\Tracker('UA-REMOVED-1', 'www.REMOVED.com');

// 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();

if(isset($_GET['location'])){
  $img='./images/'.$_GET['location'].'.gif';
  // Assemble Page information
  $page = new GoogleAnalytics\Page('/quote-email');
  $page->setTitle('Quote Email Viewed');
}
else {

}

// Track page view
$tracker->trackPageview($page, $session, $visitor);

header("Content-Type: image/gif");
readfile($img);
?>
4

1 回答 1

2

谷歌分析页面浏览量/事件与 GA 服务器的像素调用一起记录,会话由 GA cookie 跟踪。现在,尝试跟踪电子邮件打开和保留会话存在多个问题。

  1. 默认情况下,并非所有客户端都获取图像。
  2. 当服务器端 api 用于跟踪事件时,如 php-ga 的情况,直到用户实际点击并登陆请求 ga 像素的实际页面并因此使用新的 sessionID 设置 cookie 时,ga cookie 仍未设置。

要解决这个问题,可以在所有页面视图上仅使用服务器 api。一个人将能够

  1. 在电子邮件公开调用中将 php-ga 会话对象序列化为客户端会话。
  2. 在正常的页面视图中,如果有会话信息,请将其反序列化并构造 GoogleAnalytics\Session 对象,然后再将其传递给 trackPageView 调用。

然而,这种方法需要重新设计整个 ga 跟踪方案,并用 php-ga 替换 javascript api 使用。有一种可能的解决方法,包括创建 ga 像素 url 并将其设置为邮件中的 src 属性。此方法已在此处讨论,并在此处进行详细说明。但是,文档提到您需要使用移动设备特定的跟踪代码来创建 url,因此它可能会或可能不会仍然合并会话。但它看起来仍然非常接近模拟电子邮件活动中打开和点击的无缝跟踪。

即使此设置有效,电子邮件不会在 Web 浏览器上打开(在 Outlook 或 Mail 等邮件客户端的情况下),事件仍不会在同一个会话中。希望这可以帮助。

于 2012-08-20T20:22:10.190 回答