当前位置: 首页 > article >正文

程序化广告行业(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数据处理内容,咱们一起在技术学习的道路上不断前进!

相关文章:

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

程序化广告行业&#xff08;2/89&#xff09;&#xff1a;从程序化广告深挖数据处理技巧 大家好&#xff01;我一直希望能和大家在技术学习的道路上携手共进&#xff0c;这也是我写这一系列博客的初衷。上次我们一起学习了Python基础的数据处理知识&#xff0c;这次咱们借助一…...

【10】单片机时间和速度的起源:指令周期与晶振频率

【10】单片机时间和速度的起源&#xff1a;指令周期与晶振频率 &#x1f31f; 核心概念 单片机的运算速度与时间控制&#xff0c;本质上由 指令周期 和 晶振频率 共同决定。理解这两者的关系&#xff0c;是掌握单片机底层控制的关键。 &#x1f4cc; 1. 节拍与指令周期 &…...

处理动态分页:自动翻页与增量数据抓取策略-数据议事厅

一、案例场景 Lily&#xff08;挥舞着数据报表&#xff09;&#xff1a;“用户反馈我们的股票舆情分析总是缺失最新跟帖&#xff01;这些动态分页像狡猾的狐狸&#xff0c;每次抓取都漏掉关键数据&#xff01;” 小王&#xff08;调试着爬虫代码&#xff09;&#xff1a;“传…...

用android studio模拟器,模拟安卓手机访问网页,使用Chrome 开发者工具查看控制台信息

web 网页项目在安卓手机打开时出现问题&#xff0c;想要查看控制台调试信息。记录一下使用android studio 模拟器访问的方式。 步骤如下&#xff1a; 1.安装android studio&#xff0c;新增虚拟设备&#xff08;VDM- virtual device manager) 点击Virtual Device Manager后会…...

动态规划中固定倒数第二个数与倒数第一个数的区别与应用场景分析 —— 从最长等差数列问题到统计等差数列个数的填表策略对比

目录 1. 问题目标的区别 &#xff08;1&#xff09;找到最长的等差数列 &#xff08;2&#xff09;统计等差数列的个数 2. 填表顺序的区别 &#xff08;1&#xff09;固定倒数第二个数&#xff08;i&#xff09; &#xff08;2&#xff09;固定倒数第一个数&#xff08;j&…...

【C语言】数组篇

目录 引言一维数组数组的定义数组的初始化完全初始化部分初始化省略数组长度 数组元素的访问 多维数组二维数组的定义二维数组的初始化完全初始化部分初始化省略第一维长度 二维数组元素的访问 遍历数组元素遍历一维数组遍历二维数组 数组作为函数参数一维数组作为函数参数二维…...

【Linux内核系列】:深入理解缓冲区

&#x1f525; 本文专栏&#xff1a;Linux &#x1f338;作者主页&#xff1a;努力努力再努力wz ★★★ 本文前置知识&#xff1a; 文件系统以及相关系统调用接口 输入以及输出重定向 那么在此前的学习中&#xff0c;我们了解了文件的概念以及相关的系统调用接口&#xff0c;并…...

【互联网性能指标】QPS/TPS/PV/UV/IP/GMV/DAU/MAU/RPS

&#x1f4d5;我是廖志伟&#xff0c;一名Java开发工程师、《Java项目实战——深入理解大型互联网企业通用技术》&#xff08;基础篇&#xff09;、&#xff08;进阶篇&#xff09;、&#xff08;架构篇&#xff09;清华大学出版社签约作家、Java领域优质创作者、CSDN博客专家、…...

Django工程获取请求参数的几种方式

在 Django 中获取请求参数的完整方法如下&#xff1a; 一、GET 请求参数获取 def view_func(request):# 获取单个参数&#xff08;推荐方式&#xff09;name request.GET.get(name, default) # 带默认值age request.GET.get(age, 0)# 获取多个同名参数&#xff08;如复选框…...

【微知】如何根据内核模块ko查看所依赖其他哪些模块?(modinfo rdma_ucm |grep depends)

背景 有些情况下查看某个模块被哪些模块依赖可以用lsmod看到后面的列表&#xff0c;但是反向查看就要麻烦一些&#xff0c;比如某个模块依赖哪些其他模块&#xff1f;通过modinfo xxx.ko获取里面的depends相关信息 方法 modinfo rdma_ucm |grep depends实操 实操前先看依赖…...

基于大模型的结节性甲状腺肿诊疗全流程预测与方案研究报告

目录 一、引言 1.1 研究背景与目的 1.2 研究意义 1.3 国内外研究现状 二、大模型预测原理与方法 2.1 相关大模型概述 2.2 数据收集与预处理 2.3 模型训练与验证 三、术前预测与评估 3.1 结节性质预测 3.1.1 良恶性判断 3.1.2 与传统诊断方法对比 3.2 手术风险预测…...

Linux安装ComfyUI

Linux安装ComfyUI 1. ComfyUI2. 放置模型文件3. 创建python虚拟环境3.1 删除 Conda 虚拟环境 4. python虚拟环境&#xff0c;安装PyTorch5. 安装依赖6. 运行7. 打开8. 下载模型 移动到路径 1. ComfyUI # cat /etc/issue Ubuntu 20.04.6 LTS \n \lmkdir comfyUI cd comfyUI/git…...

订阅指南:用关键指标驱动业务增长

分析订阅业务远非看似简单。仅仅增加订阅数可能并不比维持一批忠实用户更有利可图。深入分析订阅数据及其背后的运作机制&#xff0c;将帮助您优化产品决策、预测收入并促进增长。本文将为您解读关键订阅指标的实际意义&#xff0c;并展示如何通过订阅宝这一专业工具&#xff0…...

2025华为OD机试真题E卷 - 螺旋数字矩阵【Java】

题目描述 疫情期间,小明隔离在家,百无聊赖,在纸上写数字玩。他发明了一种写法:给出数字个数 n (0 < n ≤ 999)和行数 m(0 < m ≤ 999),从左上角的 1 开始,按照顺时针螺旋向内写方式,依次写出2,3,…,n,最终形成一个 m 行矩阵。小明对这个矩阵有些要求: 1、…...

【开发学习】如何使用deepseek创建记录事件时间的PC应用程序

本文记录了尝试使用deepseek创建应用程序的过程&#xff0c;实现记录事件&时间的PC应用程序&#xff0c;包括创建代码、测试及调整。 目的&#xff1a;创建一个应用&#xff0c;用户输入文本提交&#xff0c;应用记录下时间和文本&#xff0c;数据留存在excel和应用程序中。…...

OSPF-单区域的配置

一、单区域概念&#xff1a; 单区域OSPF中&#xff0c;整个网络被视为一个区域&#xff0c;区域ID通常为0&#xff08;骨干区域&#xff09;。所有的路由器都在这个区域内交换链路状态信息。 补充知识点&#xff1a; OSPF为何需要loopback接口&#xff1a; 1.Loopback接口的…...

【2025力扣打卡系列】0-1背包 完全背包

坚持按题型打卡&刷&梳理力扣算法题系列&#xff0c;语言为python3&#xff0c;Day5 0-1背包【目标和】 有n个物品&#xff0c;第i个物品的体积为w[i], 价值为v[i]。每个物品至多选一个&#xff0c;求体积和不超过capacity时的最大价值和常见变形 至多装capacity&#x…...

分布式锁—Redisson的同步器组件

1.Redisson的分布式锁简单总结 Redisson分布式锁包括&#xff1a;可重入锁、公平锁、联锁、红锁、读写锁。 (1)可重入锁RedissonLock 非公平锁&#xff0c;最基础的分布式锁&#xff0c;最常用的锁。 (2)公平锁RedissonFairLock 各个客户端尝试获取锁时会排队&#xff0c;按照队…...

OpenEuler24.x下ZABBIX6/7实战1:zabbix7.2.4安装及zabbix-agent安装

兰生幽谷&#xff0c;不为莫服而不芳&#xff1b; 君子行义&#xff0c;不为莫知而止休。 1 安装及准备 先决条件&#xff1a;建议使用CentOS8以上的操作系统。 CentOS8.5.2111内核版本为 图1- 1 华为OpenEuler24(以后简称OE24)的内核为 [rootzbxsvr ~]# uname -r 5.10.0-…...

人工智能技术篇*卷(一)

了解人工智能的发展历史&#xff0c;会让我们心中有个大概了解&#xff0c;但这远远不够&#xff0c;我们起码还要知道大概有什么技术&#xff0c;怎么用它处理问题&#xff0c;有需要的话最好深入到算法原理。我们先从整体上看这个技术&#xff0c;接下来将不断细化。 我们知…...

ROS实践一构建Gazebo机器人模型文件urdf

URDF&#xff08;Unified Robot Description Format&#xff09;是一种基于XML的格式&#xff0c;用于描述机器人模型的结构、关节、连杆和传感器信息&#xff0c;并可以与Gazebo、RViz等仿真环境结合使用。 一、基础语法 1. urdf文件组成 URDF 主要由以下几个核心元素&#…...

C++学习——哈希表(一)

文章目录 前言一、哈希表的模板代码二、哈希计数器三、哈希表中的无序映射四、哈希表的总结 前言 本文为《C学习》的第11篇文章&#xff0c;今天学习最后一个数据结构哈希表&#xff08;散列表&#xff09;。 一、哈希表的模板代码 #include<iostream> using namespace…...

DeepSeek R1在医学领域的应用与技术分析(Discuss V1版)

DeepSeek R1作为一款高性能、低成本的国产开源大模型,正在深刻重塑医学软件工程的开发逻辑与应用场景。其技术特性,如混合专家架构(MoE)和参数高效微调(PEFT),与医疗行业的实际需求紧密结合,推动医疗AI从“技术驱动”向“场景驱动”转型。以下从具体业务领域需求出发,…...

Git 如何配置多个远程仓库和免密登录?

自我简介&#xff1a;4年导游&#xff0c;10年程序员&#xff0c;最近6年一直深耕低代码领域&#xff0c;分享低代码和AI领域见解。 通用后台管理系统 代号&#xff1a;虎鲸 缘由 每次开发后台界面都会有很多相同模块&#xff0c;尝试抽离出公共模块作为快速开发的基座。 目标…...

【Linux篇】从冯诺依曼到进程管理:计算机体系与操作系统的核心逻辑

&#x1f4cc; 个人主页&#xff1a; 孙同学_ &#x1f527; 文章专栏&#xff1a;Liunx &#x1f4a1; 关注我&#xff0c;分享经验&#xff0c;助你少走弯路&#xff01; 文章目录 1.冯诺依曼体系结构存储分级理解数据流动 2. 操作系统(Operator System)2.1 概念2.2 设计OS的…...

【Linux docker】关于docker启动出错的解决方法。

无论遇到什么docker启动不了的问题 就是 查看docker状态sytemctl status docker查看docker日志sudo journalctl -u docker.service查看docker三个配置文件&#xff1a;/etc/docker/daemon.json&#xff08;如果存在&#xff09; /etc/systemd/system/docker.service&#xff…...

数据结构:有序表的插入

本文是我编写的针对计算机专业考研复习《数据结构》所用资料内容选刊。主要目的在于向复习这门课程的同学说明&#xff0c;此类问题不仅仅使用顺序表&#xff0c;也可以使用链表。并且&#xff0c;在复习中&#xff0c;两种数据结构都要掌握。 若线性表中的数据元素相互之间可以…...

【医院内部控制专题】7.医院内部控制环境要素剖析(三):人力资源政策

医院成本核算、绩效管理、运营统计、内部控制、管理会计专题索引 一、引言 在当今医疗行业竞争日益激烈的背景下,医院内部控制的重要性愈发凸显。内部控制作为医院管理的关键组成部分,对于保障医院资产安全、提高会计信息质量、提升运营效率以及实现战略目标起着至关重要的…...

计算机网络——交换机

一、什么是交换机&#xff1f; 交换机&#xff08;Switch&#xff09;是局域网&#xff08;LAN&#xff09;中的核心设备&#xff0c;负责在 数据链路层&#xff08;OSI第二层&#xff09;高效转发数据帧。它像一位“智能交通警察”&#xff0c;根据设备的 MAC地址 精准引导数…...

CentOS7离线部署安装Dify

离线部署安装Dify 在安装 Dify 之前&#xff0c;请确保您的机器满足以下最低系统要求&#xff1a; CPU > 2 核 内存 > 4 GiB 1.安装docker和docker compose 启动 Dify 服务器最简单的方式是通过docker compose。因此现在服务器上安装好docker和docker compose&#xf…...