使用PHP的Banner统计和Google分析

使用PHP的Banner统计和Google分析,php,seo,google-analytics,Php,Seo,Google Analytics,我已经创建了一个附属横幅脚本,这是,从我所看到的,是非常独特的。我受到保密协议的限制,因此如果我不能提供实际页面或域名,请理解 附属公司有八个不同大小的横幅可供选择。提供给分支机构的代码都是CSS布局——简单的div和段落——一个锚不包含onclick调用,src不包含查询字符串。附属代码还提供了对我的客户端服务器上的javascript文件的调用。锚文本(关键字)因附属机构id而异。脚本调用的src以以下格式定义标题类型和附属机构id:。使用.htaccess,banner_dir中的索引页具

我已经创建了一个附属横幅脚本,这是,从我所看到的,是非常独特的。我受到保密协议的限制,因此如果我不能提供实际页面或域名,请理解

附属公司有八个不同大小的横幅可供选择。提供给分支机构的代码都是CSS布局——简单的div和段落——一个锚不包含onclick调用,src不包含查询字符串。附属代码还提供了对我的客户端服务器上的javascript文件的调用。锚文本(关键字)因附属机构id而异。脚本调用的src以以下格式定义标题类型和附属机构id:。使用.htaccess,banner_dir中的索引页具有扩展名.js,但解释PHP代码。js解析出目录结构,以提取附属id和横幅id

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

总之,我在这里所做的是使用我在中所能想到的每一个技巧创建一个跨域cookie,目的是在远程服务器上创建内容,这将最大限度地提高我的客户的SEO,同时减少负面SEO。而且,是的,它起作用了

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

到目前为止,我们已经满足了客户的所有要求,只有一个例外。他想把统计数据传给他的谷歌分析账户。我需要能够生成统计数据的显示和点击的旗帜的基础上联属_id,旗帜类型和关键字。客户需要能够评估关键词和横幅的功效以及附属公司的绩效。理想情况下,我们将能够跟踪客户从横幅视图到成功销售

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

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

有什么问题、意见或建议吗

我还不太了解这个场地的界面,所以请原谅我在这篇帖子里写得太低了。无论如何,这就是我正在使用的代码。数据是通过cURL从单击和显示脚本发布的,我知道它正在被调用。然而,这些数据并没有进入谷歌分析

<? 
$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>

GA显示脚本
var _gaq=_gaq | |[];
函数loadtracking(){
_gaq推送(['''u setAccount','UA-XXXXXXXXX-X']);
_gaq.push([''u setCampNameKey','banner']);//name
_gaq.push([''设置CampMediumKey',''])//图像
_gaq.push([''u setCampSourceKey','']);//源
_gaq.push(['''u setCampTermKey','']);//术语/关键字
_gaq.push(['\u setReferrerOverride()']);
_gaq.push([''u setCampContentKey','']);//内容
_gaq.push([''u trackPageview']);
_gaq.push([''跟踪事件','横幅','点击','横幅点击');
_gaq.push([“跟踪事件”、“横幅”、“显示”、“横幅显示]);
(函数(){
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);
})(); 
} 
负载跟踪();

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


让我知道我是否正确地理解了您,或者这是否有任何帮助。

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


让我知道我是否正确地理解了您,或者这是否有任何帮助。

请在此继续。除了GA跟踪代码,我的一切都正常。这是另一个混合的PHP/JS脚本,从横幅显示和单击脚本中调用。我使用cURL发布变量(为了清晰起见,在下面代码的前几行中指定了这些变量)。我知道脚本正在被成功调用,因为我在开发过程中让它用post数组给我发电子邮件。然而,GA没有收到数据。这可能是我没有看到的愚蠢的事情。这里只是一个跟进。除了GA跟踪代码,我的一切都正常。这是另一个混合的PHP/JS脚本,从横幅显示和单击脚本中调用。我使用cURL发布变量(为了清晰起见,在下面代码的前几行中指定了这些变量)。我知道脚本正在被成功调用,因为我在开发过程中让它用post数组给我发电子邮件。然而,GA没有收到数据。这可能是我没有看到的愚蠢的事情。