最近有项目涉及到WordPress搭建的站点采用的Max Banner Ads PRO 1.8来管理广告,有一个不是很方便的地方便是统计点击量的列表里边没有时间范围选择,仔细查阅过官网文档和论坛基本可以肯定此插件不会从官方的角度来开发这个模块,由于该插件核心代码有部分加密过,较难自己去自定义,于是想到了功能强大的Google Analytics,设想通过设置广告图片的连接后缀参数让GA能直接统计到这些广告的点击,这样岂不是挺完美的,因为众所周知GA强大的统计面板和自定义模块,可以获取到很多网站层面较难获取的统计信息,尤其是对于做AD campaign的企业来说尤其有必要,闲话少说言归正传。

    首先给大家稍微普及一下GA campaign统计的来源参数的设置方法:

    大家可以先看一下Google官方的介绍文章:

    基本格式是这样的:https://www.eastdesign.net/?utm_source=eastdesign&utm_medium=banner&utm_campaign=Eastern-AD-Campaign

    简单解释如下:

    广告系列来源 (utm_source) 必填。使用 utm_source 标识搜索引擎、简报名称或其他来源。
    示例utm_source=google
    广告系列媒介 (utm_medium) 必填。使用 utm_medium 标识媒介,例如电子邮件或每次点击费用广告。
    示例utm_medium=cpc
    广告系列字词 (utm_term) 用于付费搜索。使用 utm_term 来注明此广告的关键字。
    示例utm_term=running+shoes
    广告系列内容 (utm_content) 用于 A/B 测试和在展示广告网络投放的广告。使用 utm_content 区分指向同一网址的广告或链接。
    示例utm_content=logolink 或 utm_content=textlink
    广告系列名称 (utm_campaign) 用于关键字分析。使用 utm_campaign 来标识特定的产品促销活动或战略性广告系列。
    示例utm_campaign=spring_sale

    通过以上简单的介绍相信大家对于如何构造一个GA能统计的campaign的URL格式有了一定的了解了,接下来就正式开始了,首先是查看了每个广告的连接地址是如何跳转的,发现该插件用于跳转的是这个文件:/wp-content/plugins/max-banner-ads-pro/max-banner-ads-lib/include/redirect.php,于是找到这个文件打开研究了一下,还是写得比较明了简单的,基本可以很轻松把自GA的自定义campaign来源参数加进去,不过很快发现了一个逻辑上的问题,在这个跳转文件后缀加入这个参数,仅仅是传递给了最终的广告跳转到的最终目标网址上,也就是,来我这里投放广告的广告主可以通过他的GA的来源 》campaign里边统计到相关的信息,而不是我网站的GA报告里边能统计到信息,于是不得不转变思路,转而寻找载入redirect.php的那个文件,于是发现了这个文件:/wp-content/plugins/max-banner-ads-pro/max-banner-ads-lib/include/max-banner-ads.cls.php 通过修改这个文件的代码可以实现每个广告图片的连接的redirect.php?id=**后边可以带上GA统计campaign所需的url格式,具体代码修改方法如下:

    查找到768行:

    $the_link = MBAN_LIBPATH.'include/redirect.php?id='.$id[$key];

    替换为:

    //Add GA Compaign Support By Eastern Design Studio
    $banner_sql = "SELECT link,name FROM $this->mban_banner_table WHERE id='$id[$key]'";
    $banner_rs = mysql_query($banner_sql);
    $utm_campaign = mysql_result($banner_rs,0,'name');
    $the_link = MBAN_LIBPATH.'include/redirect.php?id='.$id[$key].'?utm_source=Soulfire&utm_medium=banner&utm_campaign='.$utm_campaign;

    保存覆盖上传,刷新一下就会发现,所有广告图片的连接地址均自动带上了类似?utm_source=eastdesign&utm_medium=banner&utm_campaign=Eastern-AD-Campaign这样的后缀格式,最后还剩余一个问题就是redirect.php这个文件执行的时候GA统计代码是否也在被执行了?仔细查看了代码发现里边就是一个单纯的跳转文件,没有任何WordPress的get_header和get_footer之类的,这也就说明执行这个文件的时候GA应该是统计不到的,于是手工将GA统计代码放到了这个文件的最下方,记得把redirect.php最底下的die();注释掉一下,这样即使执行了页面header location跳转以后,后边的GA统计代码还是可以被执行到。

    至此整个教程基本完成,当然基于GA的非实时性,效果至少要24小时以后才可能查看到,因此本教程暂时无法验证是否100%完善,等查看到效果以后,会继续更新完善。