繁体   English   中英

Google 跟踪代码管理器中的代码不起作用

[英]Code in Google Tag Manager does not working

我有一个测试任务,我已经完成了 3 个中的 2 个。 但这一个我不明白我需要做什么和做什么?!

我设法找到语法错​​误:起初应该是:
...function someFunctionName() {...}(function() {...})()

...其次是匿名函数...

任务:此脚本在 GTM 中执行,并通过自定义任务在 Google 分析中实现。
该脚本将有关用户行为的信息发送到 Optimozg 服务器,然后发送到 Bigquery(bq.php 文件处理和转发数据)。 Optimozg 服务器数据正确输入,但 Google Analytics 中的数据未到达。
是什么原因?
你如何解决它?
提示:(使用 GTM 在您的站点实例上测试代码)

function(){return function(tracker){if("undefined"===typeof tracker.get("BigQueryStreaming")){var f=tracker.get("sendHitTask"),h=function(){function d(c){var a=!1;try{document.createElement("img").src=e(!0)+"?"+c,a=!0}catch(k){}
return a}
function e(c){var a="https://test.optimozg.com/bq/bq-test.php";c||(a+="?tid="+encodeURIComponent(tracker.get("trackingId")));return a}
return{send:function(c){var a;if(!(a=2036>=c.length&&d(c))){a=!1;try{a=navigator.sendBeacon&&navigator.sendBeacon(e(),c)}catch(g){}}
if(!a){a=!1;var b;try{window.XMLHttpRequest&&"withCredentials" in(b=new XMLHttpRequest)&&(b.open("POST",e(),!0),b.setRequestHeader("Content-Type","text/plain"),b.send(c),a=!0)}catch(g){}}
return a||d(c)}}}();tracker.set("sendHitTask",function(d){h.send(d.get("hitPayload"));tracker.set("BigQueryStreaming",!0)})}}}

不知道为什么 JS 开发人员应该了解 GTM。 他们通常不去那里。 但是,是的,要了解如何正确使用给定的代码,只需阅读这篇文章: https ://www.simoahava.com/analytics/customtask-the-guide/ 它描述了自定义任务是什么以及如何使用它们。

好的,所以首先创建一个 GTM 帐户。 在您的站点上部署 GTM 代码。 也可以使用本地站点。 或者,更确切地说,让本地扩展程序将 GTM 代码注入到还没有 GTM 的随机站点。 或者可能使用重定向器扩展将他们的 GTM 请求重定向到您的请求,由您决定。

之后,您只需在 GTM 中创建一个可以发送 Universal Analytics 网页浏览量的标签。 不幸的是,GA4 决定不打扰自定义任务,所以只有 UA。 然后你在浏览量上触发。 您将触发器分配给标签。 不要忘记至少发布一次工作区以使其可测试。 然后你预览。 预览是 GTM 中右上角的 CTA,靠近发布。 基本上是一个整洁的 GTM 调试器。 输入您部署/注入 GTM 代码段的站点。 确保预览看到您的代码在页面加载时触发。 这意味着你做了正确的准备。

顺便说一下,我们在这里做提示部分。 现在您需要在 GTM 中创建一个自定义 javascript 变量,将代码片段粘贴在那里。 它想要匿名函数中的代码的原因是因为它将自己作为闭包运行。 所以他们有点不需要额外的()()。 它主要是为不了解 JS 的人完成的,所以不要感到惊讶。

好的,您已经创建了 CJS var,现在转到您的标签,并完全按照 Simo 在他的文章中显示的那样设置您的 customTag: 在此处输入图像描述

好的,现在发布您的容器,转到您部署它的站点,打开网络选项卡并重新加载页面。

检查对 BQ 和 Optimozg 端点的调用。 现在他们要问的是,我相信,为什么本来应该由标签发送的原始呼叫没有被发送。 因此,如果您删除 customTask 的设置,然后发布并重新加载页面,您应该会看到对collect端点的请求,该端点是 GA 的数据跟踪端点。 如果您重新添加 customTask 代码,它将阻止执行正常标签的功能,因此没有collect调用。

他们想从您那里听到的是如何让标签触发原始事件以及他们的 optimozg 和 bq 调用。

最有可能的是,答案非常简单和优雅,但需要大量调试才能达到。 阅读 Simo 的文章将有助于理解设置各种任务的意义。

嗯,好吧,我并不是要真正调试它,但看起来我发现了这个错误。 它在var f = tracker.get("sendHitTask")它被用来存储原始的 sendHitTask 函数,但它从未被使用过。 这是为什么? 基本上,您只需要在最后一行设置的新 sendHitTask 函数中调用该函数即可。 我不打算在我的 GTM 中调试它,但我很确定这就是问题所在。 它有点乞求在那里被发现。

此外,这不是一个初级 JS 开发任务。 这是一个高级跟踪执行任务。 基本上,在加拿大和美国大约 110 美元/小时。 我猜初级 JS 开发人员的费用约为 35 美元/小时。 他们只是想省钱,呵呵。 我当时正在考虑雇佣初级 JS 开发人员而不是跟踪实现者,但是很难教授数据分析在所有不同工具中的工作原理。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM