Google Analytics& Adwords延迟了javascript链接到App Store忽略了吗?

时间:2011-02-23 13:29:21

标签: javascript google-analytics google-adwords

我正在尝试衡量我的Google Adwords广告系列和转到App Store的正常流量的转化率。以前我的页面上有一个链接“/ app_store /”,可以加载,等待1秒,然后继续到应用程序商店。

我在某处使用Javascript找到了更优雅的解决方案。对于adwords,它会加载像素图像,对于分析,它会调用Google Javascript函数,暂停几分之一秒,然后按照链接进行操作。

不幸的是,这对我不起作用。 Google Analytics和Google Adsense看不到任何人访问App Store(甚至不是我自己)。

<script type="text/javascript">
  var _gaq = _gaq || [];
  _gaq.push(['_setAccount', 'UA-18180332-1']);
  _gaq.push(['_trackPageview']);

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

function recordOutboundLink(link, category, action) {
    try{
        // Google Analytics
        var pageTracker = _gat._getTracker("UA-18180332-1");
        pageTracker._trackEvent(category, action);

        // Google Adwords
        var image = new Image(1, 1);
        image.src = "http://www.googleadservices.com/pagead/conversion/1046551421/?value=$8&amp;label=zqrfCMWh0QEQ_baE8wM&amp;guid=ON&amp;script=0"
        setTimeout('document.location = "' + link.href + '"', 100)

    } catch(err) {}
}
</script>

对于链接:

<a href="http://itunes.apple.com/ae/app/isimplifiedchinese/id377690407?mt=8"
onClick="recordOutboundLink(this, 'Outbound Links', 'http://itunes.apple.com/ae/app/isimplifiedchinese/id377690407?mt=8');return false;">
<img alt="Appstore" src="images/appstore.png"></a>

我在这里做错了什么?

更新23:13 我注意到如果延迟是100ms,则会出现以下错误(我花了一些时间来截屏)。

Failed to load resource

我只是用Erwan的建议对此进行了测试;不确定它是否也发生在旧版本中。错误似乎消失了更长的延误;为了安全起见,我把它设置为300毫秒。

3 个答案:

答案 0 :(得分:0)

您应该阻止执行点击操作(浏览链接)直到您录制它。 在onclick属性上添加“return false”:

onclick="recordOutboundLink(params);return false;"

希望有所帮助

答案 1 :(得分:0)

我设法让我使用_gaq.push();

而不是:

var pageTracker = _gat._getTracker("UA-18180332-1");
pageTracker._trackEvent(category, action);

做的:

_gaq.push(['_trackEvent', category, action]);

所以不要再次获取pageTracker,因为_gaq已在页面启动时初始化。只需使用_gaq来推送事件跟踪器。此外,请记住,谷歌分析不会更新实时,而且往往不会在48小时内更新。

答案 2 :(得分:0)

在GA代码完成运行之前,脚本可能会重定向。您可以尝试将其放置在gaq上,以确保在其余代码之后运行。您的功能可能如下所示:

function recordOutboundLink(link, category, action) {
    // Google Analytics
    _gaq.push(['_trackEvent', category, action]);

    // Google Adwords
    _gaq.push(function() {
    var image = new Image(1, 1);
    image.src = "http://www.googleadservices.com/pagead/conversion/1046551421/?value=$8&amp;label=zqrfCMWh0QEQ_baE8wM&amp;guid=ON&amp;script=0";
    });
    _gaq.push(function() {setTimeout('document.location = "' + link.href + '"', 100);});
}

我没有测试过它,但它与我之前尝试过的东西类似。