Javascript 当使用谷歌自定义搜索的覆盖布局时,谷歌分析不会收集任何搜索数据
我的网站上有一个谷歌自定义搜索元素,配置为使用“覆盖布局”: 我有一个Google Analytics配置文件连接到这个Google自定义搜索帐户,设置在相关部分,如下所示:Javascript 当使用谷歌自定义搜索的覆盖布局时,谷歌分析不会收集任何搜索数据,javascript,google-analytics,google-custom-search,Javascript,Google Analytics,Google Custom Search,我的网站上有一个谷歌自定义搜索元素,配置为使用“覆盖布局”: 我有一个Google Analytics配置文件连接到这个Google自定义搜索帐户,设置在相关部分,如下所示: <head> <!-- Your head tags, etc here --> <script type="text/javascript"> var gaq; var _gaq = gaq || []; _gaq.push(['_setAccount', 'UA-X
<head>
<!-- Your head tags, etc here -->
<script type="text/javascript">
var gaq;
var _gaq = gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-YY']);
_gaq.push(['_setDomainName', 'yourdoamin.com']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www')
+ '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<script>
var customUIBehaviours = function(){
//your jQuery Post UI changes to the GCS box may come here
};
var renderSearchElement = function() {
google.search.cse.element.render({
div: 'gsd',
tag: 'search',
attributes:{
linkTarget:'_self',
gaQueryParameter: 'q',
gaCategoryParameter:'',
noResultsString:'No results.',
enableAutoComplete: true
}
});
};
var myCallback = function() {
if (document.readyState == 'complete') {
renderSearchElement();
customUIBehaviours();
} else {
google.setOnLoadCallback(function() {
renderSearchElement();
customUIBehaviours();
});
}
};
//this will make the GCS render by myCallback
window.__gcse = {
parsetags: 'explicit',
callback: myCallback
};
(function() {
var cx = 'YOUR GCS CODE HERE';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<div id="gsd" class="gsce-searchBox"></div>
</body>
我使用默认的分析代码和谷歌提供的自定义搜索代码。
分析“站点搜索跟踪”在“报告视图设置”处打开,如下所示:
<head>
<!-- Your head tags, etc here -->
<script type="text/javascript">
var gaq;
var _gaq = gaq || [];
_gaq.push(['_setAccount', 'UA-XXXXXX-YY']);
_gaq.push(['_setDomainName', 'yourdoamin.com']);
_gaq.push(['_setAllowLinker', true]);
_gaq.push(['_trackPageview']);
(function() {
var ga = document.createElement('script');
ga.type = 'text/javascript';
ga.async = true;
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www')
+ '.google-analytics.com/ga.js';
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(ga, s);
})();
</script>
</head>
<body>
<script>
var customUIBehaviours = function(){
//your jQuery Post UI changes to the GCS box may come here
};
var renderSearchElement = function() {
google.search.cse.element.render({
div: 'gsd',
tag: 'search',
attributes:{
linkTarget:'_self',
gaQueryParameter: 'q',
gaCategoryParameter:'',
noResultsString:'No results.',
enableAutoComplete: true
}
});
};
var myCallback = function() {
if (document.readyState == 'complete') {
renderSearchElement();
customUIBehaviours();
} else {
google.setOnLoadCallback(function() {
renderSearchElement();
customUIBehaviours();
});
}
};
//this will make the GCS render by myCallback
window.__gcse = {
parsetags: 'explicit',
callback: myCallback
};
(function() {
var cx = 'YOUR GCS CODE HERE';
var gcse = document.createElement('script');
gcse.type = 'text/javascript';
gcse.async = true;
gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') +
'//www.google.com/cse/cse.js?cx=' + cx;
var s = document.getElementsByTagName('script')[0];
s.parentNode.insertBefore(gcse, s);
})();
</script>
<div id="gsd" class="gsce-searchBox"></div>
</body>
问题:
分析没有收集任何网站搜索信息,即使是在几天后。
这个问题只有在我使用覆盖布局时才会发生。
当我使用一个单独的搜索结果页面时,查询正在收集中,因为分析正在记录结果页面请求
使用覆盖布局,搜索结果将显示在覆盖Div中,查询仅通过Google的自定义搜索API进行
问题:
如何确保Analytics获得关键字查询?
有我不见的电话吗?
还有什么我遗漏的吗?解决方案:
咨询谷歌支持后,以下是解决方案:
- 在管理控制台中设置GCS帐户@
- 如上所述,在Analytics中设置站点搜索设置
- 使用分析的异步跟踪代码(截至2014年5月,通用分析代码将不起作用)。把它放在结束标记之前。像这样:
<head> <!-- Your head tags, etc here --> <script type="text/javascript"> var gaq; var _gaq = gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXX-YY']); _gaq.push(['_setDomainName', 'yourdoamin.com']); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head>
<body> <script> var customUIBehaviours = function(){ //your jQuery Post UI changes to the GCS box may come here }; var renderSearchElement = function() { google.search.cse.element.render({ div: 'gsd', tag: 'search', attributes:{ linkTarget:'_self', gaQueryParameter: 'q', gaCategoryParameter:'', noResultsString:'No results.', enableAutoComplete: true } }); }; var myCallback = function() { if (document.readyState == 'complete') { renderSearchElement(); customUIBehaviours(); } else { google.setOnLoadCallback(function() { renderSearchElement(); customUIBehaviours(); }); } }; //this will make the GCS render by myCallback window.__gcse = { parsetags: 'explicit', callback: myCallback }; (function() { var cx = 'YOUR GCS CODE HERE'; var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true; gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s); })(); </script> <div id="gsd" class="gsce-searchBox"></div> </body>
var-gaq; var _gaq=gaq | |[]; _gaq.push([''u setAccount',UA-XXXXXX-YY']); _gaq.push([''u setDomainName','yourdoamin.com']); _gaq.push([''设置Allowlinker',true]); _gaq.push([''u trackPageview']); (功能(){ var ga=document.createElement('script'); ga.type='text/javascript'; ga.async=true; ga.src=('https:'==document.location.protocol?'https://ssl' : 'http://www') +“.google analytics.com/ga.js”; var s=document.getElementsByTagName('script')[0]; s、 parentNode.insertBefore(ga,s); })();
- 将您从管理控制台获得的GCS跟踪代码放入secion中
- 使用“自定义回调”渲染搜索框以处理如下自定义属性:
<head> <!-- Your head tags, etc here --> <script type="text/javascript"> var gaq; var _gaq = gaq || []; _gaq.push(['_setAccount', 'UA-XXXXXX-YY']); _gaq.push(['_setDomainName', 'yourdoamin.com']); _gaq.push(['_setAllowLinker', true]); _gaq.push(['_trackPageview']); (function() { var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true; ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s); })(); </script> </head>
<body> <script> var customUIBehaviours = function(){ //your jQuery Post UI changes to the GCS box may come here }; var renderSearchElement = function() { google.search.cse.element.render({ div: 'gsd', tag: 'search', attributes:{ linkTarget:'_self', gaQueryParameter: 'q', gaCategoryParameter:'', noResultsString:'No results.', enableAutoComplete: true } }); }; var myCallback = function() { if (document.readyState == 'complete') { renderSearchElement(); customUIBehaviours(); } else { google.setOnLoadCallback(function() { renderSearchElement(); customUIBehaviours(); }); } }; //this will make the GCS render by myCallback window.__gcse = { parsetags: 'explicit', callback: myCallback }; (function() { var cx = 'YOUR GCS CODE HERE'; var gcse = document.createElement('script'); gcse.type = 'text/javascript'; gcse.async = true; gcse.src = (document.location.protocol == 'https:' ? 'https:' : 'http:') + '//www.google.com/cse/cse.js?cx=' + cx; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(gcse, s); })(); </script> <div id="gsd" class="gsce-searchBox"></div> </body>
var customuibehaviors=函数(){ //您对GCS框的jQuery Post UI更改可能会出现在这里 }; var renderSearchElement=函数(){ google.search.cse.element.render({ 部门:"政府物料供应处", 标签:“搜索”, 属性:{ 链接目标:“你自己”, gaQueryParameter:'q', gaCategoryParameter:“”, noResultsString:“没有结果。”, enableAutoComplete:正确 } }); }; var myCallback=函数(){ 如果(document.readyState=='complete'){ renderSearchElement(); 习惯行为(); }否则{ setOnLoadCallback(函数(){ renderSearchElement(); 习惯行为(); }); } }; //这将使GCS通过myCallback进行渲染 窗口。\uuu gcse={ parsetags:'显式', 回调:myCallback }; (功能(){ var cx='您的地面军事系统代码在此'; var gcse=document.createElement('script'); gcse.type='text/javascript'; gcse.async=true; gcse.src=(document.location.protocol=='https:'?'https:':'http:')+ '//www.google.com/cse/cse.js?cx='+cx; var s=document.getElementsByTagName('script')[0]; s、 parentNode.insertBefore(gcse,s); })();
有关GCS V2的更多信息可用@您是否在查询参数字段中使用q?在覆盖模式下,google会查询自己的api,如下所示。。。“Google Analytics”页面中的“Query Parameter”设置为?to:q(尽管在屏幕截图中没有看到…)