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

oCPC实践录 | 目标ROI的出价与转化回传调控算法

这篇文章我们聊聊广告主在oCPC下,怎么调控自己的出价或者回传转化优化自己的ROI。

ROI是广告主最关心的指标了,根据oCPC出价的基本原理ocpc_bid = pcvr * given_cpa * k, 广告主在整个出价中有两个可以控制的变量来影响出价,一个是直接的given_cpa,另一个是通过回传转化进而影响pcvr。

在oCPC实践录 | oCPC转化的设计、选择、归因与成本设置(4)中我们聊过,调整出价和调整回传是不等价的,不在这里赘述了。

ROI我们先定义一下:ROI=变现收入/广告花费,当ROI>1时毛利是正的,赚钱;当ROI<1时毛利是负的,亏钱。现在广告主有一个目标ROI,我们定义为target_ROI。

广告主可以通过调整出价或者转化影响出价,进而决定最终的ROI。做这个控制有个非常重要前提假设:调高出价(或转化率)ROI下降,调低出价(或转化率)ROI上升。这个假设往往是不能够严格保证的,因为调高出价有可能会买到高价值的流量,ROI不一定会下降,反之调低出价有可能会失去高价值流量,ROI不一定会上升。类似的逻辑我们在大厂广告算法专家:oCPC产品策略设计与投放实践(下)中也提到过。

现在正常的平台都会开放一个marketing API接口,供广告主自动化操作广告账户,包含广告的出价。因此,借助于这个工具,广告主可以做实时的ROI控制。

我们可以实时预估或者计算广告的真实ROI数据real_ROI,又有一个目标ROI即target_ROI,那一个很简单的思路就是无模型控制算法PID了,这里的无模型是指不去探究系统运行的机理,直接根据real_ROI和target_ROI的偏差调整出价,使得real_ROI=target_ROI,具体的算法逻辑在oCPC实践录 | 随你千变万化,oCPC PID控制(1),oCPC实践录 | 随你千变万化,oCPC PID控制(2),oCPC实践录 | 随你千变万化,oCPC PID控制(3)中有介绍过,不再赘述。

有聪明的小伙伴就发现一个问题,平台侧不是有个k值吗?他们也在控制出价,也会影响到ROI,那怎么办呢?有两个方法:

第一个方法是广告主侧的ROI控制与平台侧的成本控制,都把对方看成是一种系统干扰。直白说就是:不考虑对方的作用。

第二个方法是广告主侧的ROI控制与平台侧的成本控制分离解耦,这就需要探究系统的运行机理,使用基于模型的控制算法。系统的运行机理是一个转化的真实变现价值我们是知道的,除以target_ROI就应该是转化出价了,因此广告主直接计算平均每个转化的变现价值/除以target_ROI,将其设置为given_CPA即可,剩下的事情就是平台侧的成本控制保证real_cpa=given_cpa, 两者是解耦的。这就非常依赖平台侧的成本控制了。

(二)

有一些广告主是通过代理投放广告的,出价是通过代理控制的。所以可以通过调整转化回传来影响成本控制和ROI了。

第一个思路仍然是无模型的控制算法(PID),直接根据real_ROI和target_ROI的偏差调整回传,使得real_ROI=target_ROI,同样,会面临预估与调整出价一样的问题,不再赘述。

另一个思路是有模型的控制算法。从回传侧看系统的运行机理时,ROI等于一个转化的变现价值除以given_cpa,因此说只有转化价值累积超过given_cpa * target_ROI时才应该回传一个转化,点到为止了哈。

(三)

之前笔者做ROI产品时发现存在严重掉量的问题,当时没有分析到原因,直到看到有做目标ROI的回传时,才意识到平台侧ROI产品的一些隐忧。之前ROI产品的设计都是针对每个流量下的用户价值进行调价,但有些广告主是将多个用户累积的价值当成一个转化回传的。如果按照原来的思路将每个用户(或者转化用户的价值)的价值都进行回传,这个值会很小,会严重影响用户LTV的建模,进而影响出价和量级。

相关文章:

oCPC实践录 | 目标ROI的出价与转化回传调控算法

这篇文章我们聊聊广告主在oCPC下&#xff0c;怎么调控自己的出价或者回传转化优化自己的ROI。 ROI是广告主最关心的指标了&#xff0c;根据oCPC出价的基本原理ocpc_bid pcvr * given_cpa * k, 广告主在整个出价中有两个可以控制的变量来影响出价&#xff0c;一个是直接的give…...

百倍量化之Dbcd-v2中性策略

Dbcd-v2中性策略 1. 指标含义 该指标主要是计算偏置的因子,并根据偏置的平均来分析这个股票的稳定性。相比于v1,策略是更换了dbcd的计算方式 第一步主要操作就是计算当前值和前段时间的平均值的偏置 ma = bt.indicators.SimpleMovingAverage(self.data, period=self.p.peri…...

系统学习Python——装饰器:函数装饰器-[装饰器状态保持方案:函数属性]

分类目录&#xff1a;《系统学习Python》总目录 如果我们没有在使用Python3.X并因此无法利用一条nonlocal语句&#xff0c;或者我们希望代码具有可移植性&#xff0c;能在Python3.X和Python2.X上同时工作一一我们仍然能够针对某些可改变的状态使用函数属性来避免使用全局变量和…...

逻辑卷学习后续----------缩容

一、缩容&#xff1a;缩减大小 ext4可以 &#xff0c; xfs无法缩减&#xff0c;缩减会影响业务 1.解挂载 2.检查文件系统完整性 3.缩减文件系统 4.缩减逻辑卷上下一致 5.再挂载回去 添加磁盘 文件系统只能装ext4 缩减文件系统 resize2fs 挂载失败需要重新安装文件系统…...

15-网络安全框架及模型-BLP机密性模型

目录 BLP机密性模型 1 背景概述 2 模型原理 3 主要特性 4 优势和局限性 5 困难和挑战 6 应用场景 7 应用案例 BLP机密性模型 1 背景概述 BLP模型&#xff0c;全称为Bell-LaPadula模型&#xff0c;是在1973年由D.Bell和J.LaPadula在《Mathematical foundations and mod…...

[C#]OpenCvSharp结合yolov8-face实现L2CS-Net眼睛注视方向估计或者人脸朝向估计

源码地址&#xff1a; github地址&#xff1a;https://github.com/Ahmednull/L2CS-Net L2CS-Net介绍&#xff1a; 眼睛注视&#xff08;eye gaze&#xff09; 是在各种应用中使用的基本线索之一。 它表示用户在人机交互和开放对话系统中的参与程度。此外&#xff0c;它还被用…...

[2024区块链开发入门指引] - 比特币与区块链诞生

一份为小白用户准备的免费区块链基础教程 工欲善其事,必先利其器 Web3开发中&#xff0c;各种工具、教程、社区、语言框架.。。。 种类繁多&#xff0c;是否有一个包罗万象的工具专注与Web3开发和相关资讯能毕其功于一役&#xff1f; 参见另一篇博文&#x1f449; 2024最全面…...

【大数据面试知识点】Spark中的累加器

Spark累加器 累加器用来把Executor端变量信息聚合到Driver端&#xff0c;在driver程序中定义的变量&#xff0c;在Executor端的每个task都会得到这个变量的一份新的副本&#xff0c;每个task更新这些副本的值后&#xff0c;传回driver端进行merge。 累加器一般是放在行动算子…...

深度学习核心技术与实践之深度学习基础篇

非书中全部内容&#xff0c;只是写了些自认为有收获的部分 神经网络 生物神经元的特点 &#xff08;1&#xff09;人体各种神经元本身的构成很相似 &#xff08;2&#xff09;早期的大脑损伤&#xff0c;其功能可能是以其他部位的神经元来代替实现的 &#xff08;3&#x…...

Kafka安装及简单使用介绍

&#x1f353; 简介&#xff1a;java系列技术分享(&#x1f449;持续更新中…&#x1f525;) &#x1f353; 初衷:一起学习、一起进步、坚持不懈 &#x1f353; 如果文章内容有误与您的想法不一致,欢迎大家在评论区指正&#x1f64f; &#x1f353; 希望这篇文章对你有所帮助,欢…...

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850

20231229在Firefly的AIO-3399J开发板的Android11使用挖掘机的DTS配置单前后摄像头ov13850 2023/12/29 11:10 开发板&#xff1a;Firefly的AIO-3399J【RK3399】 SDK&#xff1a;rk3399-android-11-r20211216.tar.xz【Android11】 Android11.0.tar.bz2.aa【ToyBrick】 Android11.…...

九台虚拟机网站流量分析项目启动步骤

文章目录 零、操作概述一、服务器分配二、9台虚拟机相互免密登录三、Nginx(反向代理服务器)四、Tomcat(Web服务器)五、测试Nginx反向代理是否成功六、Flume集群配置七、修改LogDemo项目八、项目1703FluxStorm九、Hadoop集群十、整个集群的启动十一、部署项目十二、测试项目…...

迅软科技助力高科技防泄密:从华为事件中汲取经验教训

近期&#xff0c;涉及华为芯片技术被窃一事引起广泛关注。据报道&#xff0c;华为海思的两个高管张某、刘某离职后成立尊湃通讯&#xff0c;然后以支付高薪、股权支付等方式&#xff0c;诱导多名海思研发人员跳槽其公司&#xff0c;并指使这些人员在离职前通过摘抄、截屏等方式…...

数据结构期末复习(2)链表

链表 链表&#xff08;Linked List&#xff09;是一种常见的数据结构&#xff0c;用于存储一系列具有相同类型的元素。链表由节点&#xff08;Node&#xff09;组成&#xff0c;每个节点包含两部分&#xff1a;数据域&#xff08;存储元素值&#xff09;和指针域&#xff08;指…...

Hive中支持毫秒级别的时间精度

实际上&#xff0c;Hive 在较新的版本中已经支持毫秒级别的时间精度。你可以通过设置 hive.exec.default.serialization.format 和 mapred.output.value.format 属性为 1&#xff0c;启用 Hive 的时间精度为毫秒级。可以使用以下命令进行设置&#xff1a; set hive.exec.defau…...

【深度学习:Recurrent Neural Networks】循环神经网络(RNN)的简要概述

【深度学习】循环神经网络&#xff08;RNN&#xff09;&#xff1a;连接过去与未来的桥梁 循环神经网络简介什么是循环神经网络 (RNN)&#xff1f;传统 RNN 的架构循环神经网络如何工作&#xff1f;常用激活函数RNN的优点和缺点RNN 的优点&#xff1a;RNN 的缺点&#xff1a; 循…...

HTML 基础

文章目录 01-标签语法标签结构 03-HTML骨架04-标签的关系05-注释06-标题标签07-段落标签08-换行和水平线09-文本格式化标签10-图像标签图像属性 11-路径相对路径绝对路径 12-超链接标签13-音频14-视频 01-标签语法 HTML 超文本标记语言——HyperText Markup Language。 超文本…...

大学物理II-作业1【题解】

1.【单选题】——考查高斯定理 下面关于高斯定理描述正确的是&#xff08;D &#xff09;。 A.高斯面上的电场强度是由高斯面内的电荷激发的 B.高斯面上的各点电场强度为零时&#xff0c;高斯面内一定没有电荷 C.通过高斯面的电通量为零时&#xff0c;高斯面上各点电场强度…...

Unity引擎有哪些优点

Unity引擎是一款跨平台的游戏引擎&#xff0c;拥有很多的优点&#xff0c;如跨平台支持、强大的工具和编辑器、灵活的脚本支持、丰富的资源库和强大的社区生态系统等&#xff0c;让他成为众多开发者选择的游戏开发引擎。下面我简单的介绍一下Unity引擎的优点。 跨平台支持 跨…...

【华为机试】2023年真题B卷(python)-猴子爬山

一、题目 题目描述&#xff1a; 一天一只顽猴想去从山脚爬到山顶&#xff0c;途中经过一个有个N个台阶的阶梯&#xff0c;但是这猴子有一个习惯&#xff1a; 每一次只能跳1步或跳3步&#xff0c;试问猴子通过这个阶梯有多少种不同的跳跃方式&#xff1f; 二、输入输出 输入描述…...

【Harmony OS - Stage应用模型】

基本概念 大类分为&#xff1a; Ability Module&#xff1a; 功能模块 、Library Module&#xff1a; 共享功能模块 编译时概念&#xff1a; Ability Module在编译时打包生成HAP&#xff08;Harmony Ability Package&#xff09;&#xff0c;一个应用可能会有多个HAP&#xf…...

Java 8 中的 Stream 轻松遍历树形结构!

可能平常会遇到一些需求&#xff0c;比如构建菜单&#xff0c;构建树形结构&#xff0c;数据库一般就使用父id来表示&#xff0c;为了降低数据库的查询压力&#xff0c;我们可以使用Java8中的Stream流一次性把数据查出来&#xff0c;然后通过流式处理&#xff0c;我们一起来看看…...

Openwrt修改Dropbear ssh root密码

使用ssh工具连接路由器 输入&#xff1a;passwd root 输入新密码 重复新密码 设置完成 rootImmortalWrt:~# passwd root Changing password for root New password:...

js 对象

js 对象定义 <!DOCTYPE html> <html> <body><h1>JavaScript 对象创建</h1><p id"demo1"></p> <p>new</p> <p id"demo"></p><script> // 创建对象&#xff1a; var persona {fi…...

【SpringBoot】常用注解

RequestBody&#xff1a;自动将请求体中的 json 数据转换为实体类对象。 这个例子凑巧传入的json属性键名和User键名一致&#xff0c;可以直接使用User实体类对象&#xff0c;如果键名不一致则需要用一个Map 类接收参数&#xff1a; PutMapping("/update")public R…...

【模拟电路】软件Circuit JS

一、模拟电路软件Circuit JS 二、Circuit JS软件配置 三、Circuit JS 软件 常见的快捷键 四、Circuit JS软件基础使用 五、Circuit JS软件使用讲解 欧姆定律电阻的串联和并联电容器的充放电过程电感器和实现理想超导的概念电容阻止电压的突变&#xff0c;电感阻止电流的突变LR…...

从入门到精通,30天带你学会C++【第十天:猜数游戏】

目录 Everyday English 前言 实战1——猜数游戏 综合指标 游玩方法 代码实现 最终代码 试玩时间 必胜策略 具体演示 结尾 Everyday English All good things come to those who wait. 时间不负有心人 前言 今天是2024年的第一天&#xff0c;新一年&#xff0c;新…...

使用ASP.NET MiniAPI 调试未匹配请求路径

本文将介绍如何在使用ASP.NET MiniAPI时调试未匹配到的请求路径。我们将详细讨论使用MapFallback方法、中间件等工具来解决此类问题。 1. 引言 ASP.NET MiniAPI是一个轻量级的Web API框架&#xff0c;它可以让我们快速地构建和部署RESTful服务。然而&#xff0c;在开发过程中如…...

数据结构: 位图

位图 概念 用一个bit为来标识数据在不在 功能 节省空间快速查找一个数在不在一个集合中排序 去重求两个集合的交集,并集操作系统中的磁盘标记 简单实现 1.设计思想:一个bit位标识一个数据, 使用char(8bit位)集合来模拟 2.预备工作:a.计算这个数在第几个char b.是这个ch…...

Nginx 反向代理负载均衡

Nginx 反向代理负载均衡 普通的负载均衡软件&#xff0c;如 LVS&#xff0c;其实现的功能只是对请求数据包的转发、传递&#xff0c;从负载均衡下的节点服务器来看&#xff0c;接收到的请求还是来自访问负载均衡器的客户端的真实用户&#xff1b;而反向代理就不一样了&#xf…...

安远网站建设/抖音推广平台

一对多没有建立中间表的时候经常会采用分隔符的形式将“多”存储在“一”的一个字段里&#xff0c;这样做的代价是无法向一对多的时候那样直接关联查询&#xff0c;一般采用在程序中分割后分别查询的办法。如下图&#xff1a;如何才能直接用sql语句查询出下图的效果呢&#xff…...

阿里网站销量做不起来怎么办/近三天的国内外大事

正则表达式 - 运算符优先级 正则表达式从左到右进行计算&#xff0c;并遵循优先级顺序&#xff0c;这与算术表达式非常类似。 相同优先级的从左到右进行运算&#xff0c;不同优先级的运算先高后低。下表从最高到最低说明了各种正则表达式运算符的优先级顺序&#xff1a; 运算符…...

政府网站考评 集约化建设/百度网盘搜索入口

给定一棵二叉搜索树和其中的一个节点 p &#xff0c;找到该节点在树中的中序后继。如果节点没有中序后继&#xff0c;请返回 null 。 节点 p 的后继是值比 p.val 大的节点中键值最小的节点&#xff0c;即按中序遍历的顺序节点 p 的下一个节点。 示例 1&#xff1a; 输入&am…...

外贸公司图片/独立站seo优化

简介: 当一个Spark应用提交到集群上运行时,应用架构包含了两个部分 Driver Program&#xff08;资源申请和调度Job执行&#xff09;Executors&#xff08;运行Job中Task任务和缓存数据&#xff09;&#xff0c;两个都是JVM Process进程 1: Driver程序运行的位置可以通过–depl…...

美食网站开发环境/网店运营基础知识

综述 总计一下cell的所有操作。 代码 写入文件 fidfopen(ML_lab7_1_test_data.txt,w); for i1:length(testpathss_con)a testpathss_con(i);a cell2mat(a);fprintf(fid,%s\n,a); end读取cell cell写入后在读取的时候不能直接用load&#xff0c;注意要用 importdataA i…...

网站建设能/什么叫seo网络推广

1&#xff1a;java中比较对象有所不同&#xff0c;因为比较的通常都是句柄&#xff0c;所以 Integer in1 new Integer(1);Integer in2 new Integer(1);System.out.println(in1 in2); // compares the handle not the value这样打代码返回的是false&#xff0c;因为对象的句…...