【发布时间】:2017-08-08 07:34:11
【问题描述】:
我在设置一个 virtualPageView 时遇到了一点问题,它应该覆盖在没有结果时发送给 google 的 URL。
这是我的 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 类型的标签,当事件发生时触发:
到目前为止,它似乎还可以,标签已正确配置(我猜),但如果我进行没有结果的搜索,则页面 URL 不会被覆盖
标签被正确触发并且变量被填充。 dataLayer 的概览显示了正确的 dataLayer 事件。 但是 PageURL 没有被覆盖......即使我等了一整天,该类别也不会发送到 google。
我做错了什么? 如果有人有想法甚至解决方案,我将非常感激:)
提前致谢
exa.byte
更新:
嘿,我忘了提,我想使用新的页面变量作为谷歌应该用来确定搜索词和搜索类别的字符串 在 Google Analytics 中,我将搜索配置为“q”参数,将“no_result”配置为类别。 甚至可以更改谷歌最终解析的字符串吗?
【问题讨论】:
-
我认为对于虚拟页面视图,您必须更改字段“页面”-在您的 GTM-OnSearchEmptyResult 中您正在更改“{{页面 URL}}”-我认为这不是正确的发送方式虚拟浏览量。此外,如果您需要更改主机名,请使用字段名“主机名”。
-
Matus 所说的(应该是 IMO 的答案)。同样,为空结果页面设置自定义事件和在自定义变量中测试空结果似乎都是多余的。
-
嘿,谢谢你的回答。变量“page”不存在...正如您在屏幕截图中看到的,我可以访问“Page URL”、“Page Path”和“Page Hostname”@EikePierstorff 我没有完全得到您的评论。我使用Boolean-Var 用于测试页面是否为empty_result。我在这里看不到冗余。你能解释一下吗?bool 只是用来有一个触发器,virtualPageView 是我在Tag 中配置的我需要的dataLayer , DataLayer 中的值可以覆盖内置变量。也许我弄错了:(
-
在“设置字段”界面中,最左边的文本框不是用于变量,而是用于您要更改其值的字段。保存当前页面路径的数据字段称为“页面”。因此,如果您想用虚拟 URL 覆盖当前页面路径,您可以通过将“页面”字段设置为虚拟页面路径变量的值来实现。为了更好地理解这是如何工作的,请查看字段参考:developers.google.com/analytics/devguides/collection/…
-
修改后不要忘记刷新页面。我知道这听起来很愚蠢,但实际上经常发生:p
标签: javascript google-analytics google-tag-manager google-datalayer