我正在开发一个项目,仅当用户来自 Facebook 时,我才需要触发特定的 Google 跟踪代码管理器 (GTM) 事件。目标是跟踪某些操作(例如,InitiateCheckout),确保仅当用户来自 Facebook 时才会记录这些操作。我在使用 HTTP 引用方法的准确性方面遇到了挑战,正在寻找更可靠的解决方案。
这是我一直在尝试的方法:
这是代码片段:
<script>
// Standard Facebook Pixel tracking for InitiateCheckout
fbq('track', 'InitiateCheckout');
// Additionally, call the custom function to send the event to GTM's data layer
trackFBEvent('InitiateCheckout', {});
</script>
<script>
// Define a function to handle Facebook events and push them to GTM's data layer
window.trackFBEvent = function(eventName, eventParams) {
dataLayer.push({
'event': 'fb_initiate_checkout', // Custom event name for GTM trigger
'fbEventName': eventName, // Pass the Facebook event name
'fbEventParams': eventParams // Pass the event parameters, if any
});
};
</script>
此方法的挑战在于,无论用户是否来自 Facebook,它总是会触发,因为它依赖于 InitiateCheckout 的触发,而这并非 Facebook 推荐所独有。
我正在寻求更好的方法的建议:
仅针对专门来自 Facebook 的用户准确识别并触发 GTM 中的事件。 确保我的跟踪设置不会捕获非 Facebook 用户的事件。
有哪些最佳实践或替代方法可以帮助更准确地实现这一目标?任何见解或建议将不胜感激!
我认为问题不在于代码。
这是触发器,因此我们可以过滤来自 facebook 的用户。
首先我们需要定义来自 facebook 的内容:
第二是我们是否有解决方案来识别来自上面的用户:
假设我们已经解决了这两部分
我们可能有这样的规则:
*facebook.com*
fbclid
然后为所有页面视图创建触发器。
创建自定义Html标签来检查规则
<script>
var referrer = document.referrer;
var urlParams = new URLSearchParams(window.location.search);
if (referrer.indexOf("facebook.com") !== -1 || urlParams.has("fbclid")){
localStorage.setItem("fromFb", "true");
}
</script>
然后创建另一个触发器来检查 localStorage
fromFb
是否为 true。
这种方法有一个缺点。
一旦用户来自 Facebook,浏览器就会一直记住它。
不确定它是否符合您的要求,您需要做出决定。
如果不是,那么我们需要修改它的存储方式或为该值设置时间。