因此,我们刚刚将我们的网站重新启动为Backbone支持的单页应用,但我们很难跟踪从AdWords广告到Google Analytics网站的转化。
问题是,为了让Google Analytics跟踪用户从AdWords进入的事实,它会在网址中查找名为gclid
的网址查询参数:
http://test.com/?gclid=(Q#kjsdf0INKJSDJF9
但是,当来自Backbone的路由器初始化时,它会从URL中删除所有查询参数,因此当跟踪事件触发时,它不会看到该用户来自AdWords广告。
我们尝试将用户发送到加载分析代码的插页式页面,然后等待事件触发,然后将其转发到网站中,但
我们与Google的AdWords帮助进行了联系,看看我们是否可以手动将gclid
分配给Google Analytics并且他们的回答是
您应聘请我们的一位顾问,他们将了解如何在您的网站上保留网址参数,使其正常运行,因为我们不支持手动设置
gclid
ID
(可悲的是,这只是一个非常小的释义。)
Google-fu在这方面让我一片空白 - 很多人在Google论坛上提问,但没有答案。
答案 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.看到它。