米贸搜|如何设置 Facebook 转换 API + 事件重复数据删除
Facebook Pixel 可让您跟踪用户在您网站上的行为、收集再营销受众并创建相似对象。如果 Facebook 像素实现正确,它将向 FB 机器学习算法提供相关信息。 FB ML 将使用像素数据向最有可能转化的人展示您的广告。
几年来,我们可以通过 JavaScript 代码、应用程序内的 Facebook SDK 或上传离线事件来跟踪网站上的事件。但是,您如何跟踪安装了 Ad Blocker 的用户或跟踪站点外的事件?或者如何延长 cookie 的生命周期?可以通过实现 Facebook 转换 API 来完成。本文将向您展示如何通过 Google Tag Manager Server Container 设置 Facebook 转换 API。
什么是 Facebook 转换 API?
让我们来看看 Facebook Conversion API 是什么,以及我们如何使用它来改进 Facebook 上的事件跟踪、归因和数据收集。 Facebook Conversion API 允许将任何事件从您的服务器发送到 Facebook 服务器。
Facebook CAPI 与 Facebook 像素具有相同的用途,但它们背后的技术不同。这些政策和限制使 FB CAPI 更适合现代跟踪环境的需求。至于 Facebook Conversion API,它不涉及发送跟踪信息的用户浏览器。一切都是通过云服务器完成的。它使用户数据更加安全和准确。
如果我们仔细查看 Facebook 广告的链接,我们会发现在几乎所有 URL 的末尾,FB 附加了它的附加参数 fbclid。着陆页上的像素代码将此参数的值存储在 cookie 中,然后将其与任何 Facebook 事件一起发送。除了点击 ID ( fbclid ),Facebook 还使用浏览器 ID ( fbp )。 Fbp 和 fbc cookie 帮助 FB 确定什么样的用户登陆了您的网站以及谁转换了。
FB 可以通过电子邮件、电话号码、名字/姓氏等其他参数匹配用户。您发送到 Facebook Conversion API 的用户数据越多,您收到的匹配率就越高。
Facebook 转换 API 的主要好处是什么?
Facebook 服务器端标记或 Facebook 转换 API 在 Facebook 上可用了几年。但是从 2021 年开始,FB 开始更加努力地推动 Conversion API。如果您有专门的 Facebook 代表帮助您处理广告帐户,他很可能会打电话给您并建议您设置 Facebook 转换 API。
以下是考虑实施 Facebook Conversion API 的最重要原因:
⦁
它可以帮助您跟踪安装了 AdBlocker 的用户、使用 Safari(或任何其他具有智能跟踪预防算法的浏览器)的用户或在 iOS 14/15 中选择退出 FB 跟踪的用户。这是可能的,因为请求是从服务器发送的,而不是从用户浏览器发送的。并且不会阻止第三方 cookie。借助您与 FB CAPI 事件一起发送的用户参数,FB 会将事件与其数据库中的用户进行匹配。因此,您将拥有更可靠的数据。
⦁
⦁
延长的 cookie 生命周期。借助 Facebook 转换 API,您可以将 Facebook cookie 的生命周期延长至 6 个月。如果您没有使用 FB 转换 API,Safari 会将 cookie 的生命周期限制为 1-7 天。
⦁
⦁
转换 API 使您可以更好地控制数据并更好地了解客户旅程。
您可以使用 Facebook Conversion API 来跟踪不在网站上发生的事件。例如,电话或线下销售。
如何设置 Facebook 转换 API?
我们将使用服务器 Google Tag Manager 容器来设置 Facebook Conversion API。在 Google Tag Manager 服务器和 Web 容器内,您需要为 Universal Analytics(或GA4或Data Tag/Data Client)设置服务器端跟踪,并为要使用 Facebook 转换 API 跟踪的那些操作配置事件。
总而言之,您需要这些东西来配置 Facebook 转换 API:
已配置的 Google Tag Manager Web 容器
配置的 Google 标签管理器服务器容器
Universal Analytics 或 Google Analytics 4 服务器端跟踪或数据标签/数据客户端。
在本文中,我不会介绍如何创建和设置 Google Tag Manager Web 容器。我将从设置 Google Tag Manager 服务器容器开始。如果您想详细了解跟踪代码管理器服务器容器及其提供的好处, 请查看这篇文章。那么,让我们开始吧https://tagmanager.google.com/gallery/#/owners/stape-io/templates/facebook-tag
1. 按照这些文章中的所有步骤设置 Google跟踪 代码管理器服务器容器 并将数据发送到服务器容器。您有两种将数据发送到服务器容器的选项:使用 Google Analytics 4 服务器端 或 数据标签/数据客户端。
如果您已经设置了 GA4 服务器端或计划开始使用 GA4,那么 GA4 方法看起来很适合您。但是这种实现有它的缺点——最重要的一个是 GA4 请求可以被某些广告拦截器阻止。相比之下,数据标签和数据客户端可以抵抗这些限制。我们最近发表了一篇文章,描述了 如何避免 Adblocker 阻止 Google 标签管理器请求。
2. 转到 Google 标签管理器服务器容器。从模板库添加 Facebook Conversion API 标签。
3. 在 Google Tag Manager Server Container 中创建 Facebook Conversion API Tag。选择标签 -> 单击新建 -> 选择您在上一步中导入的 Facebook 标签。添加您的 Facebook 像素 ID 和 Facebook API 访问令牌(我建议将其添加为变量,因为您要跟踪的每个 Facebook 事件都需要这些值)。如果您不知道您的 Facebook API 访问令牌, 本文档 将帮助您找到它。
为 Facebook Conversion API 基本标签配置触发器:单击新触发器 -> 自定义触发器 -> 事件名称等于 page_view。
4.您有 2 个选项来配置我们的 Facebook 转换 API 标签:
覆盖。在这种情况下,您需要手动设置 FB 事件。我们将在步骤 5 中介绍如何手动设置 FB 服务器事件。
从 GA 客户端继承。在这种情况下,我们会将您的 Universal Analytics 或 GA4 事件与 Facebook 标准事件相匹配。如果我们无法将 GA 事件匹配到标准 FB 事件中,我们会将其记录为自定义事件。一切都会自动完成,您无需设置 FB 事件。
5.如果您选择了覆盖选项,则必须使用 Universal Analytics(或 GA4,或数据标签/数据客户端)事件来触发 Facebook 服务器事件。 Facebook pageview 事件应该在特定客户端声明的自定义事件 page_view 上触发。 (例如,如果您选择使用 GA4 作为服务器 GTM 的数据源,那么当客户端名称等于 GA4 时,您应该使用 page_view 事件)。
要设置其他事件,请转到Google 标签管理器服务器容器预览模式,在您想要在Facebook 内跟踪的站点上执行操作,并检查UA(或GA4 或数据标签)发送到您的服务器容器的事件名称。
当有人在我的网站上打开产品页面时,我想设置一个 Facebook 事件 ViewContent。为此,我在服务器容器中创建了一个新标签,将其设置为覆盖、选择标准事件 ViewContent、添加 API 访问令牌、Facebook 像素 ID。我还添加了用户数据和事件数据。并制作了一个新的触发器事件名称等于 view_item_list 和客户端名称等于 GA4。
6.您可以使用字段服务器事件数据覆盖、用户数据和自定义数据传递自定义参数。您可以通过字段 User Data 发送用户数据以提高 Facebook 上的匹配分数,注意您要发送到 Facebook 转换 API 的用户信息应进行哈希处理。我们的 Facebook 标签会自动散列所需的数据。
7. 完成所有 Facebook 事件设置后,打开 Google 标签管理器调试模式并测试 Facebook 事件是否正常工作。您还可以转到服务器容器内的 Facebook 标签并添加 Facebook 测试 ID。您可以在 Facebook 事件管理器中的测试事件选项卡下找到测试 ID。有关如何测试 Facebook 转换 API 的更多说明,Test Server-Side UA/GA4 and Facebook Conversion API
8. 设置并验证 Facebook 转换 API 正常工作后,您需要删除 FB 浏览器跟踪或 设置事件重复数据删除。否则,您的活动将被复制。 How to set up Facebook event deduplication in GTM
Facebook 像素和转化 API 事件的事件重复数据删除
Facebook 建议使用打扰 Facebook 像素和转换 API。但是,如果您的站点将使用像素和转换 API 发送相同的事件,则事件可能会重复,因为 FB 将从浏览器和服务器接收相同的信息。
Facebook 具有重复数据删除功能。如果他们知道浏览器和服务器事件是相同的,他们只能保留一个。
如果您想从服务器和浏览器发送所有事件,则必须设置事件重复数据删除。如果没有事件重复数据删除,您的数据将不准确,并且可能会影响您的 Facebook 营销活动。
要设置 FB Conversion API 重复数据删除,您需要从浏览器和服务器发送唯一的事件 ID。来自浏览器和服务器的相同事件应该具有相同的事件 ID。
我们创建了一个自定义变量,为每个事件生成一个唯一的 ID。您可以使用此模板库链接将其添加到您的 Web 容器中 。使用此变量发送 Web 容器内 Facebook 像素的事件 ID 和使用服务器容器的 Facebook 转换 API。我们有关于如何设置 Facebook 事件重复数据删除的更详细说明 。
您可以使用 Google Analytics 自定义维度或数据标签和数据客户端将唯一事件 ID 从 Web 容器传递到服务器容器 。
如果重复数据删除设置正确,您应该会在事件管理器测试工具中看到它。将所有更改发布到作品后,您可以单击事件详细信息以查看 Facebook 从浏览器和服务器收到的事件数。他们处理和重复数据删除的事件数量。
使用 Facebook 转换 API 发送用户参数
为了将访问您网站的用户与其数据库相匹配,Facebook 使用用户数据进行转换 API。他们需要在 Facebook 转换 API 事件中发送至少一个用户参数。
FB 需要在将其发送到 Facebook 之前散列一些参数。您发送到 Facebook 的用户参数越多,他们匹配用户的机会就越大,您获得的事件匹配分数也越高。
将用户参数从您的网站发送到 Facebook 是一个敏感话题,因为您将与第三方服务共享用户数据。因此,在将此数据发送到 FB 之前,请确保它符合隐私政策。
如果您决定将用户参数发送到 Facebook CAPI,那么您从哪里获取?您可以将 Google Analytics 或 数据标签 用于 Google 标签管理器 Web 容器,将 数据客户端 用于服务器容器来解决此问题。这两者应该一起工作;Data Tag 的创建是为了将数据从 Web 容器发送到服务器容器,而 Data Client 侦听此标签并检索信息。我们有关于从 Google 跟踪代码管理器网络向服务器容器发送数据的更详细说明 。
数据标签将自动散列应根据 Facebook 要求散列的用户数据。如果您使用我们的 Facebook Conversion API 标签、数据标签和数据客户端,Facebook 标签将自动处理来自数据标签的所有需要的事件和参数。无需手动发送。只需确保正确设置所有触发器和变量即可。在数据标签和数据客户端的帮助下,您可以将数据层从 Google 标签管理器网络容器发送到服务器容器内的事件数据。
相关文章:
米贸搜|如何设置 Facebook 转换 API + 事件重复数据删除
Facebook Pixel 可让您跟踪用户在您网站上的行为、收集再营销受众并创建相似对象。如果 Facebook 像素实现正确,它将向 FB 机器学习算法提供相关信息。 FB ML 将使用像素数据向最有可能转化的人展示您的广告。 几年来,我们可以通过 JavaScript 代码、应…...
python每日一题——11滑动窗口最大值
题目 给你一个整数数组 nums,有一个大小为 k 的滑动窗口从数组的最左侧移动到数组的最右侧。你只可以看到在滑动窗口内的 k 个数字。滑动窗口每次只向右移动一位。返回滑动窗口中的最大值 。 示例 1: 输入:nums [1,3,-1,-3,5,3,6,7], k 3…...

【C++ 程序设计入门基础】- 第3节-循环结构01
目录 循环结构 一、for 语句 for 循环案例 输入一个整数n,输出1~n的所有整数。 编译运行,查看输出结果 编译调试 for 循环结构语义分析 二、beak 语句 三、continue 语句 案例1: 案例2: 案例3: 循环…...

人工智能原理复习--知识表示(一)
文章目录 上一篇知识概述命题逻辑谓词逻辑谓词逻辑的应用 下一篇 上一篇 人工智能原理复习–绪论 知识概述 知识就是人类认识自然界的精神产物,是人类进行智能活动的基础。 是经过加工的信息,包括事实、信念和启发式规则。 分类: 按作用可…...

网络运维与网络安全 学习笔记2023.11.28
网络运维与网络安全 学习笔记 第二十九天 今日目标 OSPF汇总之域间路由、OSPF汇总之外部路由、OSPF链路认证 OSPF安全认证之区域认证、OSPF虚链路 OSPF汇总指域间路由 项目背景 企业内网运行多区域的OSPF网络,在R1 上存在多个不稳定的链路 R1上的不稳定链路&a…...

Rust开发——数据对象的内存布局
枚举与Sized 数据 一般数据类型的布局是其大小(size)、对齐方式(align)及其字段的相对偏移量。 1. 枚举(Enum)的布局: 枚举类型在内存中的布局通常是由编译器来确定的。不同的编译器可能有不…...
mySQL踩坑记录
1.MYSQL Workbench-8.0.27.1出现"Exception: Current profile has no WMI enabled"错误的解决方法 MYSQL Workbench-8.0.27.1出现“Exception: Current profile has no WMI enabled“错误的解决方法_赛风扥的博客-CSDN博客 C:\Program Files\MySQL\MySQL Workbench …...

【Java】使用 IDEA 快速生成 SpringBoot 模块
项目目录下新建 module 模块 在 pom.xml 更改为 spring initializr 配置之后的 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchem…...

2023网络安全产业图谱
1. 前言 2023年7月10日,嘶吼安全产业研究院联合国家网络安全产业园区(通州园)正式发布《嘶吼2023网络安全产业图谱》。 嘶吼安全产业研究院根据当前网络安全发展规划与趋势发布《嘶吼2023网络安全产业图谱》调研,旨在进一步了解…...

一则 MongoDB 副本集迁移实操案例
文中详细阐述了通过全量 增量 Oplog 的迁移方式,完成一套副本集 MongoDB 迁移的全过程。 作者:张然,DBA 数据库技术爱好者~ 爱可生开源社区出品,原创内容未经授权不得随意使用,转载请联系小编并注明来源。 本文约 900…...

2022年03月 Scratch图形化(四级)真题解析#中国电子学会#全国青少年软件编程等级考试
Scratch等级考试(1~4级)全部真题・点这里 一、单选题(共10题,每题2分,共30分) 第1题 由1,2,3,4,5,0这六个数字经过排列组合能够组成多少个六位数偶数?注意:每一位都不相同,最高位不能为0。 A:720 B:360 C:312 D:88 答案:C 逻辑知识单选题 第2题 运行以下程…...

传音荣获2023首届全国人工智能应用场景创新挑战赛“智能家居专项赛”三等奖
近日,中国人工智能学会与科技部新一代人工智能发展研究中心联合举办2023首届全国人工智能应用场景创新挑战赛(2023 1st China’s Innovation Challenge on Artificial Intelligence Application Scene,以下简称CICAS 2023),吸引了…...

SQL注入-SQL注入过程
SQL注入的过程 手工注入过程 (1) 判断是否存在注入点; (2) 判断字段长度(字段数); (3) 判断字段回显位置; (4) 判断数据库信息; (5) 查找数据库名; (6) 查找数据库表; (7) 查找数据库表中所有字段以及字段值; (8) 猜解账号密码; (9) 登录管理员后台; 以sql-labs less-2举例 会…...

选择更灵活的设计工具:SOLIDWORKS 软件网络版与单机版的比较
随着科技的飞速发展,工程设计领域对于高效、灵活的设计工具需求日益增加。SOLIDWORKS 作为一款广受欢迎的三维设计软件,提供了网络版和单机版两种选择。在本文中,我们将深入探讨这两个版本的区别,并为您详细介绍它们的价格差异。 …...
Go语言中获取协程ID
简介 java同事都知道,线程会有对应的id,那么go语言中协程有id吗,其实是有的,但是不建议使用。 实在需要使用的话可以使用本文的例子获取 stack 我们先看一下runtime.Stack打印出来的栈结构,其中就包括了协程id fu…...

CH58x-BLE 程序阅读笔记
CH58x-BLE 程序阅读笔记 1. 广播1.1 广播类型设置1.2 广播数据长度 2. MTU设置2.1 CH58x 蓝牙协议栈支持有效最大MTU为247 1. 广播 1.1 广播类型设置 1.2 广播数据长度 1) GAP-广播数据(最大大小31字节,但最好保持较短以节省广告时的电量&a…...

ST53xx 系列是一种高精度、高输入电压、低静态电流、高速度、低压差线性稳压器
ST53xxS/T 40V,低静态电流,高可靠性 LDO 概述: ST53xx 系列是一种高精度、高输入电压、低静态电流、高速度、低压差线性稳压器,具有高纹波抑制能力。在 Vour 5V VIN 7V 时,输入电压高达40V,负载电流高达300…...

麻雀搜索优化算法MATLAB实现,SSA-BP网络
对于麻雀搜索算法的介绍,网上已经有不少资料了,这边公布SSA的matlab实现 下面展示SSA算法的核心代码以及详细注解 % 麻雀搜索算法函数定义 % 输入:种群大小(pop),最大迭代次数(Max_iter),搜索空间下界(lb),…...
142. 环形链表 II --力扣 --JAVA
题目 给定一个链表的头节点 head ,返回链表开始入环的第一个节点。 如果链表无环,则返回 null。 如果链表中有某个节点,可以通过连续跟踪 next 指针再次到达,则链表中存在环。 为了表示给定链表中的环,评测系统内部使…...

深入浅出 Vue 中的插槽 slot
深入浅出 Vue 中的插槽 slot start 最近被问到好几次 Vue 中的插槽相关知识,掌握的还是有些不全面。抱着重新学习的心态,写这篇博客。首先对基础知识做一个回顾,然后再对源码实现做一个学习。作者:番茄编写时间:2023…...

.Net框架,除了EF还有很多很多......
文章目录 1. 引言2. Dapper2.1 概述与设计原理2.2 核心功能与代码示例基本查询多映射查询存储过程调用 2.3 性能优化原理2.4 适用场景 3. NHibernate3.1 概述与架构设计3.2 映射配置示例Fluent映射XML映射 3.3 查询示例HQL查询Criteria APILINQ提供程序 3.4 高级特性3.5 适用场…...
FFmpeg 低延迟同屏方案
引言 在实时互动需求激增的当下,无论是在线教育中的师生同屏演示、远程办公的屏幕共享协作,还是游戏直播的画面实时传输,低延迟同屏已成为保障用户体验的核心指标。FFmpeg 作为一款功能强大的多媒体框架,凭借其灵活的编解码、数据…...

对WWDC 2025 Keynote 内容的预测
借助我们以往对苹果公司发展路径的深入研究经验,以及大语言模型的分析能力,我们系统梳理了多年来苹果 WWDC 主题演讲的规律。在 WWDC 2025 即将揭幕之际,我们让 ChatGPT 对今年的 Keynote 内容进行了一个初步预测,聊作存档。等到明…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)
可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...
3403. 从盒子中找出字典序最大的字符串 I
3403. 从盒子中找出字典序最大的字符串 I 题目链接:3403. 从盒子中找出字典序最大的字符串 I 代码如下: class Solution { public:string answerString(string word, int numFriends) {if (numFriends 1) {return word;}string res;for (int i 0;i &…...
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别
OpenPrompt 和直接对提示词的嵌入向量进行训练有什么区别 直接训练提示词嵌入向量的核心区别 您提到的代码: prompt_embedding = initial_embedding.clone().requires_grad_(True) optimizer = torch.optim.Adam([prompt_embedding...
06 Deep learning神经网络编程基础 激活函数 --吴恩达
深度学习激活函数详解 一、核心作用 引入非线性:使神经网络可学习复杂模式控制输出范围:如Sigmoid将输出限制在(0,1)梯度传递:影响反向传播的稳定性二、常见类型及数学表达 Sigmoid σ ( x ) = 1 1 +...

使用 SymPy 进行向量和矩阵的高级操作
在科学计算和工程领域,向量和矩阵操作是解决问题的核心技能之一。Python 的 SymPy 库提供了强大的符号计算功能,能够高效地处理向量和矩阵的各种操作。本文将深入探讨如何使用 SymPy 进行向量和矩阵的创建、合并以及维度拓展等操作,并通过具体…...
Hive 存储格式深度解析:从 TextFile 到 ORC,如何选对数据存储方案?
在大数据处理领域,Hive 作为 Hadoop 生态中重要的数据仓库工具,其存储格式的选择直接影响数据存储成本、查询效率和计算资源消耗。面对 TextFile、SequenceFile、Parquet、RCFile、ORC 等多种存储格式,很多开发者常常陷入选择困境。本文将从底…...

tauri项目,如何在rust端读取电脑环境变量
如果想在前端通过调用来获取环境变量的值,可以通过标准的依赖: std::env::var(name).ok() 想在前端通过调用来获取,可以写一个command函数: #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...