程序化广告行业(55/89):DMP与DSP对接及数据统计原理剖析
程序化广告行业(55/89):DMP与DSP对接及数据统计原理剖析
大家好呀!在数字化营销的大趋势下,程序化广告已经成为众多企业实现精准营销的关键手段。上一篇博客我们一起学习了程序化广告中的人群标签和Look Alike原理等知识,今天咱们继续深入探讨程序化广告领域的其他重要内容,包括DMP与DSP的对接,以及网站和App的数据统计原理。希望通过这次分享,能让大家对程序化广告有更全面的认识,一起在学习中进步,探索这个充满机遇的行业。
一、DMP对接DSP:精准营销的桥梁
在程序化广告投放过程中,为了精准触达目标人群,DSP(需求方平台)常常需要借助广告主的第一方DMP(数据管理平台)和第三方DMP的人群数据,这就涉及到DMP与DSP之间的对接工作,这一环节对于实现精准营销至关重要。
(一)PC人群与移动人群对接差异
对于PC人群对接,首先要进行cookie映射。这就好比给DSP和DMP双方的人群标识ID建立一个“翻译对照表”,让它们能“读懂”对方的数据。DSP投放的流量越大,能进行Cookie mapping的机会就越多。映射率越高,DSP识别的人群范围就越大,这样就能更充分地利用DMP数据,为广告主找到更多精准的目标人群。想象一下,DSP就像一个寻找宝藏的探险家,DMP数据是宝藏地图,而Cookie mapping就是让地图能被探险家看懂的密码。
而移动人群对接则有所不同。由于设备号ID是固定的,并且可以在不同App中共享,所以不需要进行cookie映射工作。但是,需要先进行人群匹配度检验。人群匹配度指的是DMP发送的设备号ID在DSP设备号ID库中的占比。匹配度越高,意味着DMP的人群标签在DSP的流量池中被找到的可能性越大,DSP也就更有可能覆盖到广告主需要的人群。行业内一般认为匹配度在40% - 60%比较合适。就好像在一个大仓库里找特定的货物,匹配度越高,找到货物的概率就越大。
(二)对接方式详解
DMP与DSP的对接方式主要有API接口、FTP传输和Pre - bid方式。API和FTP方式可以批量接收人群标识号及对应标签,就像是用大货车一次性运输大量货物一样高效。Pre - bid方式则有点不同,它需要在DMP与DSP之间部署一台前置机。这台前置机就像是一个中转站,先接收DMP的数据,然后在DSP投放前实时查询使用。下面用一段简单的Python代码来模拟使用API接口获取DMP数据的过程(实际应用中涉及更复杂的网络通信和安全机制):
import requests# 假设这是DMP提供的API地址,用于获取人群标签数据
dmp_api_url = "https://dmp.example.com/api/get_crowd_tags"
# 模拟请求头,可能包含认证信息等
headers = {"Authorization": "Bearer your_token","Content-Type": "application/json"
}try:response = requests.get(dmp_api_url, headers=headers)if response.status_code == 200:crowd_tags = response.json()print("成功获取人群标签数据:", crowd_tags)else:print(f"请求失败,状态码: {response.status_code}")
except requests.exceptions.RequestException as e:print(f"请求出现错误: {e}")
(三)对接流程
- 投放执行人员在DMP平台精心设置需要投放的人群标签条件,然后将这些标签应用到营销活动中。这一步就像是给即将出发的“广告大军”制定目标和路线。
- DMP平台根据营销活动的人群标签准备数据,接着向前置机发送初始化数据通知。前置机收到通知后就开始下载数据。而且,DMP的数据会不断更新,就像河流里的水一直在流动,所以需要持续同步更新数据到前置机。
- DSP平台设置投放活动,并在其中填入DMP平台对应的营销活动ID。当DSP收到竞价请求时,就像收到了“战斗信号”,它会向前置机查询用户信息是否符合营销活动的人群标签条件。
- 前置机把查询结果返回给DSP。如果结果显示用户满足条件,DSP就像得到了冲锋的指令,参与竞价;如果不满足,就只能放弃这次机会。
二、数据统计原理:广告效果的“晴雨表”
无论是广告投放过程中还是投放后,对广告效果进行验证观察都非常重要。这不仅能帮助我们评估、制定和调整投放策略,还能依据用户行为数据优化广告、网站或App,提高用户转化和留存率。数据统计主要分为网站统计和App统计两种逻辑。
(一)网站统计逻辑
- 当我们在浏览器中输入一个网址,浏览器就会向网站Web Server发起请求URL,这就像是给网站的“门卫”发送了一个进门申请。
- 网站Web Server收到申请后,解析请求URL,并生成Html文档响应返回给浏览器,就好比门卫审核通过后,给我们递出了一份房子的设计图(Html文档)。
- 浏览器拿到这份“设计图”后,开始解析Html文件,加载外部脚本、样式表和图片等,这个过程会触发JS统计代码,就像是房子里的各种机关开始启动。
- JS脚本开始工作,它会收集各种信息,比如域名、URL、页面标题等,还能获取自定义事件(像注册行为)的数据。如果之前在用户浏览器“种”过cookie,就能获取到对应cookie信息;如果没有,就会进入“种”cookie的流程。
- 收集到的信息会被传输给后端脚本,这就像是把收集到的情报传递给后方的指挥官。
- 后端脚本会生成一个透明的1×1像素图片,在浏览器中“种”入cookie标识访客,同时解析并发送收集到的信息,从网站Web Server获取IP、访问时间等信息,然后写入日志Logo队列,就像是指挥官整理情报并记录下来。
- 日志信息被发送至实时统计服务,经过实时统计后进入实时数据库,这就好比把整理好的情报送到了一个临时仓库。
- 从实时数据库调用数据进行离线分析,然后存入离线数据库,就像是把临时仓库的情报送到了一个长期的档案馆。
- 最后,查询数据库,将数据以可视化报表的形式呈现出来,这样我们就能直观地看到网站的各种数据表现,就像是通过地图清晰地看到各个区域的情况。
(二)App统计逻辑
- App应用客户端向App应用服务端发起请求,这就像是手机上的App向服务器“喊话”,说自己需要一些东西。
- App应用服务端收到请求后,响应并返回应用信息,就像服务器听到“喊话”后,给App递出了它需要的物品。
- App应用客户端调用统计SDK并初始化,同时通过API接口写入版本、渠道等信息,并进行数据埋点,这就好比在App里安装了一些“小眼睛”,用来记录各种数据。
- 开始收集应用运行信息,包括访问者唯一标识(比如IMEI号、Android - ID或IDFA等)、访问时间、应用版本号等。这些信息就像是给每个访问者贴上了独一无二的“标签”。
- 在App启动/关闭或者收集的信息数量达到一定上限时,就把信息传送给后端,就像是装满货物的货车把货物送回仓库。
- 后端脚本解析并发送收到的数据包,写入日志Logo队列,就像仓库管理员整理收到的货物并记录下来。
- 日志信息发送至实时统计服务,进入实时数据库,就像货物被暂时存放在临时仓库。
- 从实时数据库调用数据进行离线分析,再存入离线数据库,就像把临时仓库的货物转移到长期仓库。
- 查询数据库,进行可视化数据报表呈现,这样我们就能清楚地了解App的运行情况,就像通过仪表盘了解汽车的各项指标。
下面用一段简单的Java代码来模拟App数据收集和传输的过程(实际应用中会涉及更多复杂的业务逻辑):
import java.util.HashMap;
import java.util.Map;public class AppDataCollector {public static void main(String[] args) {// 模拟收集App运行信息String visitorId = "1234567890";String appVersion = "1.0.0";String operator = "ChinaMobile";String networkType = "4G";Map<String, String> appData = new HashMap<>();appData.put("visitorId", visitorId);appData.put("appVersion", appVersion);appData.put("operator", operator);appData.put("networkType", networkType);// 模拟数据传输给后端sendDataToBackend(appData);}private static void sendDataToBackend(Map<String, String> data) {// 这里可以替换为实际的网络请求代码,将数据发送给后端System.out.println("正在将App数据发送给后端: " + data);}
}
写作不易,希望这篇文章能让大家对程序化广告行业有新的认识和收获。如果觉得文章对你有帮助,麻烦大家关注我的博客,点赞并评论。你们的支持是我持续创作的动力,后续我还会带来更多程序化广告相关的知识分享,咱们一起在这个领域不断探索!
相关文章:
程序化广告行业(55/89):DMP与DSP对接及数据统计原理剖析
程序化广告行业(55/89):DMP与DSP对接及数据统计原理剖析 大家好呀!在数字化营销的大趋势下,程序化广告已经成为众多企业实现精准营销的关键手段。上一篇博客我们一起学习了程序化广告中的人群标签和Look Alike原理等知…...
【文献研究】铝对热冲压加热过程中锌氧化的影响
在热冲压过程中,镀锌铁板和镀锌板等镀锌钢板表面发生Zn氧化。为了阐明镀锌层中的Al对Zn氧化的影响,本研究研究了镀锌钢板上添加和不添加Al时形成的ZnO量。发现添加铝后ZnO量减少。对添加铝的镀锌钢板的显微组织分析表明,添加的Al在热冲压后Zn…...
Win11本地从零开始部署dify全流程
1.安装wsl和打开Hyper-V功能(前置准备) 这个是为了支持我们的Docker Desktop运行。 1.1.安装wsl 使用管理员身份运行命令行。 如果显示 “无法与服务器建立连接就执行“,表示没有安装wsl,如果更新成功,那就不用执行…...
从代码学习深度学习 - RNN PyTorch版
文章目录 前言一、数据预处理二、辅助训练工具函数三、绘图工具函数四、模型定义五、模型训练与预测六、实例化模型并训练训练结果可视化总结前言 循环神经网络(RNN)是深度学习中处理序列数据的重要模型,尤其在自然语言处理和时间序列分析中有着广泛应用。本篇博客将通过一…...
【HTB】Windwos-easy-Legacy靶机渗透
靶机介绍,一台很简单的WIndows靶机入门 知识点 msfconsole利用 SMB历史漏洞利用 WIndows命令使用,type查看命令 目录标题 一、信息收集二、边界突破三、权限提升 一、信息收集 靶机ip:10.10.10.4攻击机ip:10.10.16.26 扫描TC…...
蓝桥杯真题———k倍区间
题目如下 代码如下 记录余数 cnt[0] 1 的初始化是为了处理 空前缀和 说明...
LeetCode 891 -- 贡献度思想
题目描述 子序列宽度之和 思路 ref 代码 相似题 子数组范围和 acwing...
无人机等非合作目标公开数据集2025.4.3
一.无人机遥感数据概述 1.1 定义与特点 在遥感技术的不断发展中,无人机遥感数据作为一种新兴的数据源,正逐渐崭露头角。它是通过无人驾驶飞行器(UAV)搭载各种传感器获取的地理空间信息,具有 覆盖范围大、综合精度高、…...
机器视觉--python基础语法
Python基础语法 1. Python标识符 在 Python 里,标识符由字母、数字、下划线组成。 在 Python 中,所有标识符可以包括英文、数字以及下划线(_),但不能以数字开头。 Python 中的标识符是区分大小写的。 以下划线开头的标识符是有特殊意义的…...
司南评测集社区 3 月上新一览!
司南评测集社区 CompassHub 作为司南评测体系的重要组成部分,旨在打创新性的基准测试资源导航社区,提供丰富、及时、专业的评测集信息,帮助研究人员和行业人士快速搜索和使用评测集。 2025 年 3 月,司南评测集社区新收录了一批评…...
TrollStore(巨魔商店)介绍及操作手册
TrollStore(巨魔商店)介绍及操作手册 一、TrollStore 简介 TrollStore 是一款针对 iOS 设备开发的第三方应用安装工具,它允许用户在不越狱设备的情况下,安装和使用未经过苹果官方 App Store 审核的应用程序。该工具利用了 iOS 系…...
SSE与Streamable HTTP的区别:协议与技术实现的深度对比
引言 在现代Web开发中,实时数据传输是许多应用的核心需求,从聊天应用到股票市场更新,从游戏服务器到AI模型通信。为了满足这一需求,各种技术应运而生,其中Server-Sent Events (SSE)和Streamable HTTP是两种重要的实时…...
android 之简述屏幕分辨率、屏幕密度、屏幕最小宽度
一、屏幕分辨率 屏幕分辨率是指屏幕显示的像素数量,通常以水平像素数乘以垂直像素数表示,例如 1920x1080。它直接影响屏幕的显示效果,包括图像的清晰度和细节。不同的设备可能有不同的屏幕分辨率。 1、常见的屏幕分辨率 标准分辨率&#x…...
mac环境中Nginx安装使用 反向代理
安装 如没有Homebrew 先安装Homebrew 国内镜像: /bin/zsh -c "$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)" 安装成功后安装nginx: brew install nginx 启动nginx: nginx 或者 brew services st…...
2025年3月个人工作生活总结
本文为 2025年3月工作生活总结。 研发编码 一个curl下载失败问题的记录 问题: 某程序,指定IP和账户密码配置,再使用curl库连接sftp服务器,下载文件。在CentOS系统正常,但在某国产操作系统中失败,需要用命…...
实战打靶集锦-36-Deception
文章目录 1. 主机发现2. 端口扫描3. 服务枚举4. 服务探查5. 系统提权6. 写在最后 靶机地址:https://download.vulnhub.com/haclabs/Deception.ova 1. 主机发现 目前只知道目标靶机在192.168.56.xx网段,通过如下的命令,看看这个网段上在线的主…...
前端开发技术演进与就业现实:顺应时代方能不被淘汰-优雅草卓伊凡
前端开发技术演进与就业现实:顺应时代方能不被淘汰-优雅草卓伊凡 在技术浪潮汹涌的当下,常有人发问:“学习CSS、HTML、JS以后可以干什么?”对此,卓伊凡可以明确地给出答案:单纯学习这些过于基础的Web前端开…...
敏捷开发:以人为本的高效开发模式
目录 前言1. 什么是敏捷开发?1.1 敏捷开发的核心理念1.2 敏捷开发的优势 2. 敏捷宣言:四大核心价值观2.1 个体和交互胜过工具和过程2.2 可工作的软件胜过大量的文档2.3 客户合作胜过合同谈判2.4 响应变化胜过遵循计划 3. 敏捷开发的实践3.1 Scrum&#x…...
HarmonyOS 基础组件和基础布局的介绍
1. HarmonyOS 基础组件 1.1 Text 文本组件 Text(this.message)//文本内容.width(200).height(50).margin({ top: 20, left: 20 }).fontSize(30)//字体大小.maxLines(1)// 最大行数.textOverflow({ overflow: TextOverflow.Ellipsis })// 超出显示....fontColor(Color.Black).…...
CAD插入属性块 弹窗提示输入属性值——CAD知识讲堂
插入属性块时,有时会遇到不弹窗输入属性值的情况,解决方案如下: 最好关闭块编辑器并保存,插入属性块即可弹窗。...
Redis 主要能够用来做什么
Redis(Remote Dictionary Server)是一种基于内存的键值存储数据库,它的性能极高,广泛应用于各种高并发场景。以下是 Redis 常见的用途: 1. 缓存(Cache) 作用:存储热点数据…...
MySQL GROUP BY 和 HAVING 子句中 ‘Unknown column‘ 错误的深入解析
在使用 MySQL 进行数据分析和报表生成时,GROUP BY 和 HAVING 子句是非常强大的工具。然而,很多开发者在使用它们时会遇到一个常见的错误:"Unknown column column_name in having clause"。本文将深入解析这个错误的原因,…...
Sentinel实战(三)、流控规则之流控效果及流控小结
spring cloud Alibaba-Sentinel实战(三)、流控效果流控小结 一、流控规则:流控效果一)、流控效果:预热1、概念含义2、案例流控规则设置测试结果 二)、流控效果:排队等待1、概念含义2、案例流控规…...
JavaScrip——DOM编程
一、DOM元素创建与属性操作 1. 元素创建与插入 // 创建新元素 const newDiv document.createElement(div); newDiv.textContent "动态创建的内容";// 插入到容器末尾 document.body.appendChild(newDiv);// 在指定元素前插入 existingElement.before(newDiv);// …...
表单的前端数据流向
在CRM项目中,会涉及很多张表单。每张表单的前端代码都会放在一个单独的文件夹中。这个文件夹下包含三个文件,分别是: index.js(以下称为 index):负责组件的渲染和交互逻辑。model.js(以下称为 …...
PP-ChatOCRv3新升级:多页PDF信息抽取支持自定义提示词工程,拓展大语言模型功能边界
文本图像信息抽取技术在自动化办公、建筑工程、教育科研、金融风控、医疗健康等行业领域具有广泛应用场景。2024年9月,飞桨低代码开发工具PaddleX中新增文本图像智能产线PP-ChatOCRv3,充分结合PaddleOCR的文本图像版面解析能力和文心一言语言理解优势&am…...
《二叉树:二叉树的顺序结构->堆》
二叉树一般可以使用两种结构存储,一种是顺序结构,一种是链式结构。 顺序存储 顺序结构存储是使用数组来存储,一般使用数组只适合表示完全二叉树,因为不是完全二叉树会有空间的浪费。实际上使用中只有堆才会使用数组来存储。二叉…...
OpenLayers:封装Overlay的方法
平时在使用OpenLayers的Overlay时常感觉不便,于是最近我便封装了一些Overlay增删改查的方法,以提高可用性。这边文章中我会介绍我封装的方法,同时记录这个过程中踩的一些坑。 添加Overlay /*** abstract 添加overlay* param {*} map* param…...
软件重构与项目进度的矛盾如何解决
软件重构与项目进度之间的矛盾可以通过明确重构目标与范围、采用渐进式重构策略、优化项目管理流程、提高团队沟通效率、建立重构意识文化等方式解决。其中,采用渐进式重构策略尤为关键。渐进式重构是指在日常开发过程中,以小步骤持续进行重构࿰…...
Mysql+Demo 获取当前日期时间的方式
记录一下使用Mysql获取当前日期时间的方式 获取当前完整的日期时间有常见的四种方式,获取得到的默认格式(mysql的格式标准)是 %Y-%m-%d %H:%i:%s其它格式 %Y-%m-%d %H:%i:%s.%f方式一:now()函数 select now();mysql> select now(); -------------…...
