我在设置虚拟页面视图时遇到一些问题,该虚拟页面视图应覆盖在没有结果时发送给谷歌的网址。
以下是我的JavaScript代码:
function returnNoSearchResultsGoogleTagManagerCode($searchterm){
if ($searchterm == "") return "";
$requestUri = $_SERVER['REQUEST_URI'] . "&no_result=".$searchterm;
$js = "<script>
$(document).ready(function(){
dataLayer.push({
'event':'empty_result',
'virtualPageURL':'".$requestUri."'
});
});
</script>";
return $js;
}
如您所见,我想使用事件触发器(empty_result)。
在谷歌中,我使用触发器来确定页面是否为无结果页面。首先,我使用自定义JS
创建了一个自定义变量 function(){
if (document.getElementsByClassName('ga-no-result').length > 0){
return true;
}else{
return false
}
}
如果SearchEngine无法找到结果,则设置该类。到现在为止还挺好。 我还创建了一个dataLayer变量来保存virtualPageURL
现在我需要一个在变量为真时触发的事件。
最后,我创建了一个带有PageView类型的标签,该标签在事件发生时被触发:
到目前为止似乎没问题,标签已正确配置(我猜)但如果我进行的搜索没有结果,则页面网址不会被覆盖
正确触发标记并填充变量。 dataLayer的概述显示了正确的dataLayer事件。 但是PageURL没有被覆盖......即使我等了一整天,该类别也没有被发送到谷歌。
我做错了什么? 如果有人有想法甚至是解决方案,我将非常感激。)
提前致谢
exa.byte
更新:
嘿,我忘了提及,我想使用新的页面变量作为谷歌应该用来确定searchterm和searchcategory的字符串 在Google Analytics中,我将搜索配置为&#34; q&#34;参数和&#34; no_result&#34;作为类别。 是否甚至可以更改谷歌最终会解析的字符串?
答案 0 :(得分:2)
要向Google Analytics发送虚拟综合浏览量,您需要更改的字段是页面而非 {{Page url}} ,还有标题经常使用strong>字段。
这是发送简单虚拟网页浏览所需要做的唯一两件事。
额外:我总是使用 / virtual / 启动我的页面路径,以便能够在GA中轻松识别哪些是虚拟网页浏览
答案 1 :(得分:1)
对于虚拟页面视图,您必须更改字段“页面” - 在GTM-OnSearchEmptyResult中您正在更改“{{Page URL}}” - 我认为这不是发送虚拟页面视图的正确方法。此外,如果您需要更改主机名,请使用Fieldname“hostname”。
在预览模式下,您不会在“变量”选项卡中看到页面URL更改,您必须转到触发的实际GA标记并检查其值。您可以在GTM的预览工具中执行此操作,也可以使用标准开发人员工具 - 网络选项卡查看向GA发送的值:
您可以看到“dl”参数是当前页面,如果您设置虚拟页面,您还应该看到名为“dp”的参数,这将是您的GA中页面的新值。
答案 2 :(得分:1)
如果您要设置虚拟网页浏览,则必须在字段名称中使用页面而不是{{Page URL}},并使用文档标题在您的fieldname中使用标题。 有关谷歌分析的更多字段参考,请点击以下链接 https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#hitType
答案 3 :(得分:1)
如果您不想使用自定义跟踪代码管理器事件,即使您没有包含Google Analytics代码,也仍然可以使用旧的ga
方法在页面上。您只需动态获取正确的跟踪器,如Simo Ahava in this thread所述。
if (typeof ga === "function") {
ga.getAll().forEach((tracker) => {
tracker.set('page', '/my/path'); // <- change here
tracker.send('pageview');
});
}
我也把它放在gist here。
答案 4 :(得分:0)
感谢您的帮助。我想我摆脱了问题,现在已经解决了。我将在下面描述我的解决方案:
解决方案非常简单。
我有一个错误/拼写错误@ google后端。我将search_category参数设置为“no_results”,但使用“no_result”进行实现... 相当愚蠢,但有时你只是看不到树木...
我创建了一个新的Trigger作为助手“HelperDomReady”,只有当DOM准备好并且变量“isEmptySearch”等于“(bool)true”时才触发
现在我可以在“sitesearch类别”摘要中看到没有导致google后端的搜索结果。由于我根本不设置参数,如果搜索至少有一个匹配,则网站搜索类别显示“未设置”以获得成功结果。因此,类别部分仅显示没有匹配的搜索。问题解决了:))
缺点:searchterm也列在普通列表中。但我认为这可以忽略不计