程序化广告行业(2/89):从程序化广告深挖数据处理技巧

程序化广告行业(2/89):从程序化广告深挖数据处理技巧

大家好!我一直希望能和大家在技术学习的道路上携手共进,这也是我写这一系列博客的初衷。上次我们一起学习了Python基础的数据处理知识,这次咱们借助一本程序化广告手册,深入挖掘数据处理的更多技巧。这本手册涵盖了程序化广告从概念到技术实现的诸多方面,而其中处处都涉及到数据处理,相信会给我们带来不少收获。

在深入探讨之前,先简单介绍一下程序化广告。它是通过自动化技术实现广告精准投放的一种广告形式,和传统广告相比,能更精准地触达目标用户。接下来,我们从手册中提取关键知识点,并用Python来实践相关的数据处理操作。

手册的第一章介绍了互联网展示广告的发展历程,以及程序化广告的定义、价值和在中国的发展阶段。这让我们了解到程序化广告是随着互联网发展而兴起的,它能提升广告投放的效率和精准度。从数据处理角度看,这意味着我们需要处理大量和用户相关的数据,才能实现精准投放。

第二章着重介绍了程序化广告的参与者,包括需求方(效果类和品牌类)、需求方服务(如DSP、TD)、流量供应方、流量方服务(如SSP、AdX)以及广告服务与数据管理相关方(PCP、广告验证平台、DMP等)。这些不同的参与者之间会产生各种数据交互,比如DSP需要从DMP获取用户数据,来确定对哪些用户展示广告。

在Python中,我们可以用字典来模拟这种数据交互关系。假设我们有一个简单的场景,DSP要从DMP获取用户画像数据,来判断是否向用户展示特定广告。用户画像数据包含年龄、性别、兴趣爱好等信息。代码如下:

# 模拟DMP中的用户画像数据
dmp_user_profiles = {"user1": {"age": 25, "gender": "male", "interests": ["sports", "tech"]},"user2": {"age": 30, "gender": "female", "interests": ["fashion", "travel"]}
}# 模拟DSP的广告投放逻辑,假设该广告针对20 - 35岁,对科技感兴趣的男性用户
def dsp_ad_targeting(user_id):if user_id in dmp_user_profiles:user_profile = dmp_user_profiles[user_id]if 20 <= user_profile["age"] <= 35 and user_profile["gender"] == "male" and "tech" in user_profile["interests"]:return Truereturn Falseprint(dsp_ad_targeting("user1"))  
print(dsp_ad_targeting("user2"))  

在这段代码中,我们首先创建了一个字典dmp_user_profiles来模拟DMP中的用户画像数据。然后定义了一个函数dsp_ad_targeting,它根据用户ID从DMP数据中获取用户画像,并判断该用户是否符合广告投放条件。

第三章讲述了程序化广告的交易模式,如RTB实时竞价、程序化直接交易、头部竞价等。不同交易模式有各自的特点和价值,也涉及不同的数据处理方式。例如,RTB实时竞价需要在极短时间内处理大量的竞价数据,以确定广告投放决策。

我们可以用Python模拟一个简单的RTB竞价场景。假设有多个DSP参与竞价,每个DSP给出一个出价,AdX需要选择出价最高的DSP投放广告。代码如下:

# 模拟多个DSP的出价
dsp_bids = {"DSP1": 0.5,"DSP2": 0.8,"DSP3": 0.6
}# AdX选择出价最高的DSP
highest_bid_dsp = max(dsp_bids, key=dsp_bids.get)
print(f"AdX选择的DSP是: {highest_bid_dsp},出价为: {dsp_bids[highest_bid_dsp]}")

这段代码通过max函数结合key参数,找出出价最高的DSP,并打印相关信息。

第四章介绍了广告效果的考核指标,包括基础指标、效果指标和品牌指标。这些指标用于评估广告投放的效果,而评估过程需要处理大量的数据。比如,计算点击率(CTR),就需要统计广告展示次数和点击次数。

下面用Python代码来计算点击率:

# 假设广告展示次数和点击次数
impressions = 1000
clicks = 50ctr = clicks / impressions if impressions > 0 else 0
print(f"点击率为: {ctr * 100:.2f}%")

这段代码根据给定的广告展示次数和点击次数,计算出点击率,并以百分比形式打印出来。

第五章详细说明了广告投放的全流程,从投放计划、广告策划、投放执行,到数据分析及优化调整,再到项目总结。每个环节都离不开数据处理,例如在数据分析及优化调整阶段,需要根据数据找出广告投放效果不佳的原因,然后调整投放策略。

假设我们有一个广告投放数据列表,包含每个广告位的展示次数、点击次数和转化次数,我们要找出转化率最高的广告位。代码如下:

# 模拟广告投放数据
ad_slot_data = [{"slot": "slot1", "impressions": 500, "clicks": 30, "conversions": 5},{"slot": "slot2", "impressions": 800, "clicks": 40, "conversions": 8},{"slot": "slot3", "impressions": 600, "clicks": 25, "conversions": 6}
]# 计算每个广告位的转化率,并找出最高转化率的广告位
max_conversion_slot = max(ad_slot_data, key=lambda x: x["conversions"] / x["impressions"] if x["impressions"] > 0 else 0)
print(f"转化率最高的广告位是: {max_conversion_slot['slot']},转化率为: {max_conversion_slot['conversions'] / max_conversion_slot['impressions'] * 100:.2f}%")

在这段代码中,我们定义了一个包含广告位数据的列表,然后通过max函数结合lambda表达式,计算每个广告位的转化率,并找出转化率最高的广告位。

第六章介绍了程序化广告涉及的多种技术,如RTB竞价逻辑、流量对接、用户识别与ID映射、程序化创意、用户数据中心和数据统计原理等。这些技术背后是复杂的数据处理过程,比如用户识别与ID映射需要处理不同设备和平台上的用户ID,将其关联起来,以便更全面地了解用户行为。

通过这些知识点的学习和Python代码实践,我们看到了程序化广告领域丰富的数据处理场景,也掌握了一些实用的数据处理技巧。

写作不易,希望大家能关注我的博客,多多点赞、评论。你们的支持是我持续创作的动力,后续我还会带来更多有趣又实用的Python数据处理内容,咱们一起在技术学习的道路上不断前进!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/31312.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

谷歌AI最新发布的可微分逻辑元胞自动机(DiffLogic CA)

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

忘记dedecms后台超级管理员账号和密码的解决方案

解决方案&#xff1a; 方案一、数据库修改&#xff1a; 1、前提是您能登录到数据库后台&#xff0c;登录MySQL数据库管理工具&#xff08;如phpMyAdmin&#xff09; 2、打开数据库中的 dede_admin 表&#xff0c;找到管理员记录&#xff0c;将 pwd 字段的值改成 f297a57a5a7…

numpy广播性质

一、核心规则 一维数组本质 shape (n,)的数组是无方向向量&#xff0c;既非严格行向量也非列向量 自动广播机制 在矩阵乘法(或np.dot())中&#xff0c;一维数组会自动调整维度&#xff1a; 前乘时视为行向量 shape (1,n)后乘时视为列向量 shape (n,1) 二、运算类型对比 假…

对Docker的一些基本认识

一、Docker简介 首先Docker 是一个用于开发、交付和运行应用程序的开放平台。它 是一个开源的应用容器化平台&#xff0c;通过轻量级容器技术实现软件的标准化打包、分发与运行。Docker基于 Go语言 &#xff0c;完全使用沙箱机制&#xff0c;相互之间不会有任何接口&#xff0…

数据安全基石:备份文件的重要性与自动化实践

在数字化时代&#xff0c;数据已成为企业和个人不可或缺的重要资产。无论是企业的运营数据、客户资料&#xff0c;还是个人的学习资料、家庭照片&#xff0c;这些数据都承载着巨大的价值。然而&#xff0c;数据的安全问题也日益凸显&#xff0c;硬件故障、软件错误、人为失误以…

Linux:多线程(三.POSIX信号量、生产消费模型、线程池)

目录 1. 生产者消费者模型 1.1 阻塞队列(BlockingQueue) 1.2 一个实际应用的例子 2. POSIX信号量 2.1 引入 2.2 回顾加深理解信号量 2.3 信号量的操作接口 3. 基于循环队列的生产消费模型 3.1 循环队列 3.2 整个项目 4. 线程池 4.1 概念 4.2 线程池实现 1. 生产者…

静态路由实验

一、实验拓扑图&#xff1a; 我们的实验目的是使得全网实现互通。 &#xff08;1)首先我们根据路由器的编号&#xff0c;配置好接口IP地址和 相应的环回地址&#xff1a; R1上的配置&#xff1a; [R1]Int e0/0/0 [R1]ip ad 12.1.1.1 24 [R1]int loopback 0 [R1]ip ad 1.1…

从零搭建微服务项目Pro(第3-1章——本地/OSS图片文件存取)

前言&#xff1a; 在小型demo项目中&#xff0c;一般将图片音频等字节流文件存放本地数据库&#xff0c;但企业级项目中&#xff0c;由于数据量容量有限&#xff0c;需要借助OSS来管理大规模文件。 OSS&#xff08;对象存储服务&#xff0c;Object Storage Service&#xff0…

Spring Boot 日志

目录 一、为什么要学习日志 二、认识日志格式 三、日志使用 打印日志 步骤 日志框架介绍 门面模式(外观模式) 门面模式的实现 门面模式的优点 四、日志级别 日志级别分类 日志级别的使用 日志配置 配置日志级别 日志持久化 配置日志文件分割 五、更简单的日志…

linux内存页块划分及位图存储机制

page_alloc.c - mm/page_alloc.c - Linux source code v5.4.285 - Bootlin Elixir Cross Referencer 一. 什么是页块&#xff08;Pageblock&#xff09;&#xff1f; 定义&#xff1a;页块是物理内存中的一个连续区域&#xff0c;由 2^pageblock_order 个物理页&#xff08;Pag…

chebykan与代码3

目录 参考文献有 ‘’ 中文 各自讲了什么 切比雪夫多项式有两类吗&#xff1f;这里存疑 KAN变体 期刊 切比雪夫と爱因斯坦の约定 维度标签的含义 爱因斯坦求和约定 参考文献有 ‘’ 中文 [1] 神经网络&#xff1a;全面基础 [2] 通过sigmoid函数的超层叠近似 [3] 多层前…

DETR详解

1.概述 DETR&#xff0c;全称为Detection Transformer&#xff0c;是Facebook在ECCV2020上提出的基于Transformer的端到端目标检测网络最大的特点就是&#xff1a;不需要预定义的先验anchor&#xff0c;也不需要NMS的后处理策略&#xff0c;就可以实现端到端的目标检测。但是&…

南昌长空STONE 60A-M 无人机电调深度测评:轻量化设计与工业级安全的融合典范

引言 在无人机技术不断革新的今天&#xff0c;电调作为动力系统的核心组件&#xff0c;其性能直接影响飞行稳定性与操控体验。STONE 系列凭借 “轻量化设计” 理念&#xff0c;在竞争激烈的市场中独树一帜。本文将深度解析 STONE 60A-M 电调的技术亮点与实际表现&#xff0c;探…

初阶数据结构(C语言实现)——4.2队列

目录 2.队列2.1队列的概念及结构2.2队列的实现2.2.1 初始化队列2.2.2 销毁队列2.2.3 队尾入队列2.2.4 队头出队列2.2.5获取队列头部元素2.2.6 获取队列队尾元素2.2.7获取队列中有效元素个数2.2.8 检测队列是否为空&#xff0c;如果为空返回非零结果&#xff0c;如果非空返回0 3…

C++和OpenGL实现3D游戏编程【连载24】——父物体和子物体之间的坐标转换

欢迎来到zhooyu的C++和OpenGL游戏专栏,专栏连载的所有精彩内容目录详见下边链接: 🔥C++和OpenGL实现3D游戏编程【总览】 父子物体的坐标转换 1、本节要实现的内容 前面章节我们了解了父物体与子物体的结构,它不仅能够表示物体之间的层次关系,更重要的一个作用就是展示物…

怎么实现: 大语言模型微调案例

怎么实现: 大语言模型微调案例 目录 怎么实现: 大语言模型微调案例输入一个反常识的问题:首都在北京天安门之后对输出模型进行测试:首都在北京天安门微调代码:测试微调模型代码:微调输出模型结构输出模型参数大小对比Qwen 2.5_0.5:53MB输出模型:951MB 是一样的,没有进行…

知乎后台管理系统:数据库系统原理实验1——数据库基础概念

实验背景 通过练习绘制语义网络&#xff0c;加深对于基本概念之间关系的理解和掌握。掌握在VISIO中绘制能准确表达基本概念之间关系的语义网络的技能。了解并比较数据模型的Chen’s表示法和UML表示法。理解关系模型设计中的完整性约束的重要性。掌握在Linux操作系统下远程访问…

超过 37000 台 VMwareESXi 服务器可能受到持续攻击威胁

近日&#xff0c;威胁监测平台影子服务器基金会&#xff08;The Shadowserver Foundation&#xff09;发布报告&#xff0c;指出超 3.7 万个互联网暴露的威睿&#xff08;VMware&#xff09;ESXi 实例存在严重安全隐患&#xff0c;极易受到 CVE-2025-22224 漏洞的攻击。该漏洞属…

Linux《基础开发工具(中)》

在之前的Linux《基础开发工具&#xff08;上&#xff09;》当中已经了解了Linux当中到的两大基础的开发工具yum与vim&#xff1b;了解了在Linux当中如何进行软件的下载以及实现的基本原理、知道了编辑器vim的基本使用方式&#xff0c;那么接下来在本篇当中将接下去继续来了解另…

Vue3 Pinia 符合直觉的Vue.js状态管理库

Pinia 符合直觉的Vue.js状态管理库 什么时候使用Pinia 当两个关系非常远的组件&#xff0c;要传递参数时使用Pinia组件的公共参数使用Pinia