首页 文章

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

提问于
浏览
1

因此,我们只是将我们的网站重新启动为支持Backbone的单页应用,但我们还是花时间跟踪我们的AdWords广告转化为使用Google Analytics的网站 .

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

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

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

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

  • 它很难看,并且会在一段时间内向用户显示空白页面

  • 如果没有重要的等待IE8用户(他们占用我们用户群的50%)会无法正常工作

我们与Google的AdWords帮助进行了联系,看看我们是否可以手动将 gclid 分发给Google Analytics,他们的回答是

您应聘请我们的一位顾问,他们将弄清楚如何在您的网站上保留网址参数,以便它正常工作,因为我们不支持手动设置gclid ID

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

谷歌在这方面让我空白 - 很多人在谷歌论坛上提问,但没有答案 .

2 回答

  • 1

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

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

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

    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
    
  • 0

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

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

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

相关问题