【问题标题】:Banner Stats and Google Analytics Using PHP使用 PHP 的横幅统计和谷歌分析
【发布时间】:2011-10-15 23:23:06
【问题描述】:

我创建了一个附属横幅脚本,据我所见,它非常独特。我受到 NDA 的限制,所以如果我无法提供实际页面或域名,请理解。

会员可以选择八种不同尺寸的横幅。提供给会员的代码全部采用 CSS 布局 - 简单的 div 和段落 - 单个锚点不包含 onclick 调用,并且 src 不包含查询字符串。附属代码还提供对我客户服务器上的 javascript 文件的调用。锚文本(关键字)因affiliate_id 而异。脚本调用的 src 定义横幅类型和会员 ID,格式为:http://www.somedomain.com/banner_dir/affiliate_id/banner_id/。使用 .htaccess,banner_dir 中的索引页具有扩展名 .js 但解释 PHP 代码。 index.js解析出目录结构提取affiliate_id和banner_id。

到目前为止,如果您可以遵循这一点,则使用 PHP 的 index.js 在客户端服务器上创建一个会话,该会话分配会话变量affiliate_id、banner_id、关键字和引用域。统计信息保存到几个统计信息表中。该脚本退出 PHP,然后使用 document.write() 将横幅样式表写入附属页面。

总之,我在这里所做的是使用我能想到的每一个技巧创建一个跨域 cookie,目的是在远程服务器上创建内容,这将为我的客户最大化 SEO,而负面 SEO .而且,是的,它有效。

当点击横幅时,客户端服务器上有解释性代码来记录横幅的点击,从会话中提取值。

到目前为止,已经满足了客户的所有要求,除了一个。他想将统计信息传递到他的 Google Analytics 帐户。我需要能够根据affiliate_id、横幅类型和关键字为横幅的显示和点击生成统计信息。客户需要能够评估关键字和横幅的效果以及附属公司的表现。理想情况下,我们将能够从横幅视图跟踪客户到成功销售。

过去,我使用的跟踪代码使用的链接结构类似于我用于对客户端服务器的 JS 调用,但在这种情况下,我认为活动在生成统计数据方面会更有效。

我可以在 index.js 脚本退出时传递初始 GA 代码,但我在点击事件时遇到了一些问题。我想避免在单击横幅中的锚点时使用单击事件,以保持代码尽可能干净。理想情况下,我想在访问我的客户端站点时进行后台调用,因为解释会话数据的代码涉及 PHP 重定向,并且在重定向之前无法编写任何内容而不会出错。

有任何问题、cmets 或建议?

我还没有完全掌握这个场地的界面,所以请原谅在这个线程的低端。无论如何,这是我正在使用的代码。数据是通过 cURL 从点击和显示脚本发布的,我知道它正在被调用。但是,数据并未进入 Google Analytics(分析)。

<? 
$f = $_POST['banner']; 
$a = $_POST['affiliate_id']; 
$r = urlencode ($_POST['referrer']); 
$k = $_POST['keywords']; 
// $_POST['c'] = the click event 
?> 
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> 
<html> 
<head> 
     <title>GA Display script</title> 
<script type="text/javascript"> 
var _gaq = _gaq || []; 
function loadtracking() { 
_gaq.push(['_setAccount', 'UA-XXXXXXXXXX-X']); 
_gaq.push(['_setCampNameKey', 'banners']);    // name 
_gaq.push(['_setCampMediumKey', '<?=$f?>']);  // image 
_gaq.push(['_setCampSourceKey', '<?=$a?>']);  // source 
_gaq.push(['_setCampTermKey', '<?=$k?>']);   // term/keyword 
_gaq.push(['_setReferrerOverride(<?=$r?>)']); 
_gaq.push(['_setCampContentKey', '<?=$k?>']);  // content 
_gaq.push(['_trackPageview']); 
<?if ($_POST['c'] == 1){?>  
_gaq.push(['_trackEvent', 'banners', 'Click', 'Banner Click-thru']); 
<?}else{?>  
_gaq.push(['_trackEvent', 'banners', 'Display', 'Banner Display']); 
<?}?> 
(function() { 
    var ga = document.createElement('script'); 
    ga.type = 'text/javascript'; 
    ga.async = true; 
    ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; 
    var s = document.getElementsByTagName('script')[0]; 
    s.parentNode.insertBefore(ga, s); 
  })(); 
} 
loadtracking(); 
</script>  
</head> 
<body> 
</body> 
</html>

【问题讨论】:

    标签: php seo google-analytics


    【解决方案1】:

    这听起来像是 ajax 的工作。您声明您不想依赖点击事件,因此您希望在访问您的客户站点时采取行动。如果您创建一个远程 javascript 文件并在客户的站点上添加对它的引用,这是否符合您的意图?

    如果我理解正确或有任何帮助,请告诉我。

    【讨论】:

    • 这里只是一个跟进。除了 GA 跟踪代码之外,我一切正常。它是另一个混​​合 PHP/JS 脚本,它从横幅显示和点击脚本中调用。我正在使用 cURL 发布变量(为清楚起见,在以下代码的前几行中分配了变量)。我知道该脚本已成功调用,因为我在开发过程中通过电子邮件向我发送了 post 数组。但是,GA 没有收到数据。这可能是我没有看到的愚蠢的东西。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2014-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多