Backbone.js 使用主干路由器跟踪站点上的adwords性能
因此,我们刚刚重新启动了我们的网站,作为一个以主干网为动力的单页应用程序,但我们在跟踪从AdWords广告到Google Analytics网站的转换过程中花了很多时间 问题在于,为了让Google Analytics跟踪用户来自AdWords的事实,它在URL中查找名为Backbone.js 使用主干路由器跟踪站点上的adwords性能,backbone.js,google-analytics,google-ads-api,Backbone.js,Google Analytics,Google Ads Api,因此,我们刚刚重新启动了我们的网站,作为一个以主干网为动力的单页应用程序,但我们在跟踪从AdWords广告到Google Analytics网站的转换过程中花了很多时间 问题在于,为了让Google Analytics跟踪用户来自AdWords的事实,它在URL中查找名为gclid的URL查询参数: http://test.com/?gclid=(Q#kjsdf0INKJSDJF9 但是,当来自主干网的路由器初始化时,它会从URL中删除所有查询参数,因此当跟踪事件触发时,它看不到用户来自AdW
gclid
的URL查询参数:
http://test.com/?gclid=(Q#kjsdf0INKJSDJF9
但是,当来自主干网的路由器初始化时,它会从URL中删除所有查询参数,因此当跟踪事件触发时,它看不到用户来自AdWords广告
我们尝试将用户发送到一个间隙页面,该页面加载分析代码并等待事件触发,然后将其转发到站点,但是
gclid
提交给Analytics,他们的答案是
您应该雇佣我们的一位顾问,他将研究如何在您的网站上保留URL参数,使其正常工作,因为我们不支持手动设置gclid
ID
(遗憾的是,这只是一个很小的解释。)
Google fu在这方面让我一片空白——很多人在Google论坛上提问,但没有答案。我不知道一切都是如何设置的,但主干网可能没有将带有参数的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
我不知道一切是如何设置的,但主干网可能并没有将带有参数的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
因此,这里的问题是,我立即使用
navigate
方法将一个条目推入历史对象
这会覆盖(正确地)当前URL,并且不会保留URL参数(尽管如果可以的话会更好,我想这是我应该发出的请求)
通过不立即调用
navigate
,这允许URL参数在URL中停留足够长的时间,以便G.A.能够看到它。因此,这里的问题是,我使用navigate
方法立即将一个条目推入历史对象
这会覆盖(正确地)当前URL,并且不会保留URL参数(尽管如果可以的话会更好,我想这是我应该发出的请求)
通过不立即调用
导航
,这允许URL参数在URL中停留足够长的时间,以便G.A.能够看到它。问题不是获取URL查询参数,而是将它们保留在URL中。由于Google Analytics是异步的,我无法控制它何时触发跟踪事件,所以它们需要在事件触发之前一直存在。啊,好吧,哎呀。对不起,一开始我没听清楚那个部分。不,你说得对。我有一部分是个白痴。使用路径调用导航
时,URL参数将消失。所以我需要让它附加查询参数来导航(如果存在)。但是,在IE.FUN中,要使查询参数位于哈希之前!那我不确定,对不起。对我来说,在本地和主干网进行一些测试并不会从URL中删除查询参数。是的,只是在调试器中逐步完成整个事务并查看URL。啊。谢谢问题不是获取URL查询参数,而是将它们保留在URL中。由于Google Analytics是异步的,我无法控制它何时触发跟踪事件,所以它们需要在事件触发之前一直存在。啊,好吧,哎呀。对不起,一开始我没听清楚那个部分。不,你说得对。我有一部分是个白痴。使用路径调用导航
时,URL参数将消失。所以我需要让它附加查询参数来导航(如果存在)。但是,在IE.FUN中,要使查询参数位于哈希之前!那我不确定,对不起。对我来说,在本地和主干网进行一些测试并不会从URL中删除查询参数。是的,只是在调试器中逐步完成整个事务并查看URL。啊。谢谢