Javascript 谷歌标签管理器虚拟页面视图

Javascript 谷歌标签管理器虚拟页面视图,javascript,google-analytics,google-tag-manager,google-datalayer,Javascript,Google Analytics,Google Tag Manager,Google Datalayer,我在设置virtualPageView时遇到了一个小问题,它应该覆盖在没有结果时发送给google的URL 以下是我的JavaScript代码: function returnNoSearchResultsGoogleTagManagerCode($searchterm){ if ($searchterm == "") return ""; $requestUri = $_SERVER['REQUEST_URI'] . "&no_result=".$searchterm

我在设置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;
}
如果搜索引擎找不到结果,则设置该类。到现在为止,一直都还不错。 我还创建了一个数据层变量来保存virtualPageURL

现在我需要一个在变量为true时触发的事件

最后,我创建了一个PageView类型的标记,该标记在事件发生时触发:

到目前为止,似乎一切正常,标签配置正确(我猜),但如果我进行搜索没有结果,页面URL不会被覆盖

标记被正确激发,变量被填充。数据层概述显示了正确的数据层事件。 但是页面URL没有被覆盖。。。即使我等了一整天,这个分类也不会发送给谷歌

我做错了什么? 如果有人能想出一个主意甚至一个解决办法,我会非常感激:)

提前谢谢

字节

更新:

嘿,我忘了提到,我想用newpage变量作为字符串,google应该用它来确定searchterm和searchcategory 在Google Analytics中,我将搜索配置为“q”参数,将“no_result”配置为类别。
甚至有可能更改google最终解析的字符串吗?

对于虚拟页面视图,您必须更改字段“page”-在您的GTM OnSearchEmptyResult中,您正在更改“{page URL}”-我认为这不是发送虚拟页面视图的正确方式。此外,如果需要更改主机名,请使用Fieldname“hostname”

在预览模式下,您将不会在变量选项卡中看到页面URL的更改,您必须转到触发的实际GA标记并检查其值。您可以在GTM的预览工具中执行此操作,也可以使用标准开发人员工具-网络选项卡,查看发送给GA的值:


您可以看到“dl”参数是当前页面,如果您设置了虚拟页面,您还应该看到名为“dp”的参数,这将是GA中页面的新值。

对于虚拟页面视图,您必须更改字段“page”-在GTM OnSearchEmptyResult中,您正在更改“{page URL}”-我认为这不是发送虚拟页面视图的正确方式。此外,如果需要更改主机名,请使用Fieldname“hostname”

在预览模式下,您将不会在变量选项卡中看到页面URL的更改,您必须转到触发的实际GA标记并检查其值。您可以在GTM的预览工具中执行此操作,也可以使用标准开发人员工具-网络选项卡,查看发送给GA的值:


您可以看到“dl”参数是当前页面,如果您设置虚拟页面,您还应该看到名为“dp”的参数,这将是GA中页面的新值。

要将虚拟页面视图发送到Google Analytics,您需要更改的字段是页面而不是{page Url},还经常使用标题字段

这是发送一个简单的虚拟页面视图所需要做的两件事


额外:我总是以/virtual/开始我的页面路径,以便能够在GA中轻松识别哪些是虚拟页面视图

要将虚拟页面视图发送到Google Analytics,您需要更改的字段是页面而不是{page Url},并且经常使用标题字段

这是发送一个简单的虚拟页面视图所需要做的两件事


额外:我总是以/virtual/开始我的页面路径,以便能够在GA中轻松识别哪些是虚拟页面视图

如果您想设置虚拟页面视图,则必须使用页面而不是{{{page URL}}在您的字段名中,对于文档标题,请在字段名中使用标题。 有关谷歌分析的更多领域参考,请点击以下链接
.

如果您想设置虚拟页面视图,您必须在字段名中使用页面而不是{{page URL}},并且对于文档标题在字段名中使用标题。 有关谷歌分析的更多领域参考,请点击以下链接
.

谢谢你的帮助。我想我已经解决了这个问题,现在已经解决了。我将在下面描述我的解决方案:

解决办法很简单

  • 我在google后端遇到了一个错误/拼写错误。我将search\u category参数设置为“no\u results”,但在实现中使用了“no\u result”。。。 很蠢,但有时候你就是看不见树木

  • 我创建了一个新触发器作为helper“HelperDomReady”,仅当DOM就绪且变量“isEmptySearch”等于(bool)true时才触发

  • 现在我可以在“SiteSearchCategories”摘要中看到在google后端没有结果的搜索词。因为我根本不会设置参数,如果搜索至少命中一次,那么站点搜索类别会显示“未设置”以获得成功的结果。因此,分类部分只显示没有点击的搜索。问题已解决:)


    缺点:搜索词也列在正常列表中。但我认为这是微不足道的

    谢谢你的帮助。我想我已经解决了这个问题,现在已经解决了。我将在下面描述我的解决方案:

    解决办法很简单

  • 我在google后端遇到了一个错误/拼写错误。我将search\u category参数设置为“no\u results”,但在实现中使用了“no\u result”。。。 很蠢,但有时候你就是看不见树木

  • 我创建了一个新触发器作为helper“HelperDomReady”,仅当DOM就绪且变量“isEmptySearch”等于(bool)true时才触发

  • 现在,我可以看到搜索词在谷歌后端没有结果在“
        function(){
           if (document.getElementsByClassName('ga-no-result').length > 0){
                return true;
           }else{
                return false
           }
       }
    
    if (typeof ga === "function") {
      ga.getAll().forEach((tracker) => {
        tracker.set('page', '/my/path'); // <- change here
        tracker.send('pageview');
      });  
    }