1

我在设置 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

数据层

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

事件搜索EmptyResult

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

谷歌标签

到目前为止,它似乎还可以,标签已正确配置(我猜)但如果我进行没有结果的搜索,则页面 URL不会被覆盖

在此处输入图像描述

标签被正确触发并填充变量。dataLayer 的概览显示了正确的 dataLayer 事件。但是 PageURL 没有被覆盖......即使我等了一整天,该类别也不会发送给谷歌。

我究竟做错了什么?如果有人有想法甚至解决方案,我将非常感激:)

提前致谢

艾字节

更新:

嘿,我忘了提,我想使用新的页面变量作为谷歌应该用来确定搜索词和搜索类别的字符串在谷歌分析中,我将搜索配置为“q”参数,将“no_result”配置为类别。甚至可以更改谷歌最终解析的字符串吗?

4

5 回答 5

2

要将虚拟网页浏览量发送到 Google Analytics,您需要更改的字段是page not {{Page Url}},并且经常使用标题字段。

这实际上是发送简单的虚拟网页浏览量所需要做的仅有的两件事。

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

于 2017-08-08T11:00:10.230 回答
1

如果你想设置虚拟网页浏览,你必须在你的字段名中使用页面而不是 {{Page URL}},并且对于文档标题,在你的字段名中使用标题。有关谷歌分析的更多字段参考,请点击以下链接 https://developers.google.com/analytics/devguides/collection/analyticsjs/field-reference#hitType

于 2017-08-08T12:42:20.850 回答
1

如果您不想弄乱自定义跟踪代码管理器事件,仍然可以使用旧ga方法,即使您没有在页面上包含 Analytics 代码。您只需要动态获取正确的跟踪器,正如Simo Ahava 在此线程中所解释的那样。

if (typeof ga === "function") {
  ga.getAll().forEach((tracker) => {
    tracker.set('page', '/my/path'); // <- change here
    tracker.send('pageview');
  });  
}

我也把它放在一个要点里

于 2018-04-04T10:12:25.843 回答
1

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

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

在此处输入图像描述

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

于 2017-08-08T10:53:29.943 回答
0

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

解决方案非常简单。

  1. 我有一个错误/拼写错误@google 后端。我将 search_category 参数设置为“no_results”,但使用“no_result”进行实施......非常愚蠢,但有时你只是看不到树木的树木......

  2. 我创建了一个新的触发器作为助手“HelperDomReady”,仅当 DOM 准备好并且变量“isEmptySearch”等于“(bool)true”时才触发

现在我可以在“站点搜索类别”摘要中看到在谷歌后端没有结果的搜索词。由于我根本不会设置参数,如果搜索至少有一次命中,则站点搜索类别显示“未设置”以获得成功的结果。因此,类别部分将仅显示没有命中的搜索。问题解决了 :)

缺点:搜索词也在正常列表中列出。但我认为这可以忽略不计

于 2017-08-17T14:17:05.633 回答