使用Backbone Router跟踪站点上的adwords性能

时间:2012-11-20 19:26:12

标签: backbone.js google-analytics google-adwords

因此,我们刚刚将我们的网站重新启动为Backbone支持的单页应用,但我们很难跟踪从AdWords广告到Google Analytics网站的转化。

问题是,为了让Google Analytics跟踪用户从AdWords进入的事实,它会在网址中查找名为gclid的网址查询参数:

http://test.com/?gclid=(Q#kjsdf0INKJSDJF9

但是,当来自Backbone的路由器初始化时,它会从URL中删除所有查询参数,因此当跟踪事件触发时,它不会看到该用户来自AdWords广告。

我们尝试将用户发送到加载分析代码的插页式页面,然后等待事件触发,然后将其转发到网站中,但

  1. 它丑陋并且暂时向用户显示空白页
  2. 如果没有重要的等待IE8用户(他们占用我们用户群的50%),那就行不通了。
  3. 我们与Google的AdWords帮助进行了联系,看看我们是否可以手动将gclid分配给Google Analytics并且他们的回答是

      

    您应聘请我们的一位顾问,他们将了解如何在您的网站上保留网址参数,使其正常运行,因为我们不支持手动设置gclid ID

    (可悲的是,这只是一个非常小的释义。)

    Google-fu在这方面让我一片空白 - 很多人在Google论坛上提问,但没有答案。

2 个答案:

答案 0 :(得分:1)

我不知道所有内容是如何设置的,但Backbone可能没有看到带有参数匹配的URL,或者它知道的路由。事实上,您可以通过执行类似的操作来测试...

unless Backbone.history.start(pushState: true)
  window.location = someDefaultURL;

如果你只想用一种简单的方法来匹配params的路线,这里有两种方法可以做到。

class MyRouter extends Backbone.Router
  routes:
    'test?*params': 'test'
    'testTwo?gclid=:gclid': 'testTwo'

  test: (params) ->
    console.log 'test route', params

  testTwo: (gclid) ->
    console.log 'test route two', gclid

答案 1 :(得分:0)

所以这里的问题是我立即用navigate方法将一个条目推入历史对象。

这会(正确地)覆盖当前的URL,并且不会保留URL参数(尽管它可能很好,我想这是我应该做的拉取请求)。

通过不立即调用navigate,这允许URL参数在URL中保留足够长的时间以便G.A.看到它。