Javascript 将Google analytics客户端id发送到Piwik
有没有办法通过使用javascript解决方案将Google analytics客户端id发送到Piwik?实际上,我可以用官方文档中描述的以下代码片段获取google的客户id:Javascript 将Google analytics客户端id发送到Piwik,javascript,google-analytics,matomo,Javascript,Google Analytics,Matomo,有没有办法通过使用javascript解决方案将Google analytics客户端id发送到Piwik?实际上,我可以用官方文档中描述的以下代码片段获取google的客户id: ga(function(tracker) { var clientId = tracker.get('clientId'); }); 我相信问题在于Google的ga.js和Piwik的跟踪代码是异步运行的,我无法将客户端id发送给Piwik。我在Piwik中创建了一个自定义diemns
ga(function(tracker) {
var clientId = tracker.get('clientId');
});
我相信问题在于Google的ga.js和Piwik的跟踪代码是异步运行的,我无法将客户端id发送给Piwik。我在Piwik中创建了一个自定义diemnsion,并将相关代码添加到我的跟踪脚本中,但Piwik说“值未定义”。我尝试发送静态ID(例如test123),它工作正常
我尝试在使用window.onload
函数加载页面后加载Piwik的跟踪代码,但没有成功。我还试图等到clientId
变量生成,但它也不起作用。我尝试为这两个跟踪脚本启用异步选项,但没有成功
我运行chrome的timeline debug查看每个跟踪代码何时加载,但即使Piwik的js代码稍后加载,客户端id也没有传递到我的服务器
你知道我如何将这些信息发送到我自己的服务器,以便在Piwik中进行处理吗?如果有人能提到另一种可能的调试方法,它可以帮助我识别问题,这也会很好。正如EikePierstorff所提到的,更好的解决方案是从存储的cookie中读取Google的
客户端id
。您可以通过发布以下命令获取Google Analytics cookie的内容:
document.cookie.valueOf('_ga')
它列出了cookie的内容。cookie中的每个元素都用分号(;
)分隔。我使用以下代码读取客户机id
:
function getClientId(){
var cookie_val_array = document.cookie.valueOf('_ga').split(';');
for (i=0; i < cookie_val_array.length; i++){
if(cookie_val_array[i].indexOf('_ga=') >= 0){
client_id = cookie_val_array[i].split('.')[2] + '.' + cookie_val_array[i].split('.')[3];
}
}
return client_id;
}
注意:您应该有一个用Piwik标记的自定义维度,并且您的自定义维度可能有不同的id
我想强调几点:
- 如果这是您第一次在上运行Google Analytics的代码片段 您的页面和cookie尚未生成。此代码将给出 错误。所以如果你想的话,你需要处理这个问题
- 谷歌可能会改变cookie的格式和内容,所以请 在开始读取任何内容之前,请检查cookie的内容 它的价值观
_paq.push(['setCustomDimension', customDimensionId = 1, customDimensionValue = getClientId()]);