今日头条投放第一步:了解机器人基本算法

helloworld_94734536
• 阅读 1675

国内的各种渠道千千万,主流的广告平台不多也不算少,而今日头条与其它平台最大区别在于——个性化推荐和智能分发。可以简单理解为,今日头条广告投放,是通过“机器人代码”过滤再分发出去的,因此了解“机器人”在分发过程中遵循的规则,无疑能够加大广告主对投放的把握。

在今日头条的AD系统新建一条广告计划后,计划会经过预分配曝光、预估CTR、广告排序、频次过滤这四个步骤后,才会展示在用户面前。本文主要分享在这四个步骤中,影响投放的主要算法逻辑。

方法/步骤

一、预分配曝光

系统根据计划的日预算进行流量的预分配曝光,打比方,如果把头条的全盘流量比作一个操场,那么高预算的理论流量可以覆盖整个操场,几千几百的低预算的流量理论上只能覆盖一小块区域,而在百度等平台,可能100块的预算理论上可以覆盖百度全平台的用户群。

此外,预分配的曝光流量,以及计划跑起来后分配的流量,都是分段式。把广告系统当做一个智能机器人,机器人在不停的观察一个计划带给平台的回报,当某个阶段分配的流量,回报的CTR很低时,机器人会认为用户不喜欢该广告计划,这就会导致广告在下个阶段的消耗变得困难。

不要问:看的很懵懂,好像没啥用?+

要问:虽然看着不太明白,但以上因素会导致什么影响么?

答:1、广告计划适合高预算(由于头条分配力量的分段式属性,实际消耗会远低于日预算,还是打比方,一场NBA直播2~4小时,但实际比赛时间不算加时只有48分钟),因为和问卷调查一样,理论人群越少,那么数据反馈波动越大,只有人群越大,数据反馈才会越接近真实值,这点对于游戏这类广告竞争力较弱的行业影响尤其明显。

2、广告计划先有量比先有效果更重要,“机器人”的行为逻辑非常复杂,但只要是代码就一定有其规律可循,因此当量足够大后,一方面能够获得最真实的效果,可以把握到计划的真实回报和反馈,另一方面可以用量压制住机器代码的波动。如果非要定个量的标准,笔者认为只有起码花够5000~10000的计划才有初步讨论和优化的价值,几百块消耗的计划,不论回报好或坏都是不准的,做投放的优化,首先要掌握产品在平台的真实情况,其次才是在真实情况基础上的优化和运营。

二、预估CTR

头条的广告系统主要通过以下两个方面预估广告计划的CTR,账户历史表现(花的钱、历史计划的整体表现),行业广告的投放数据。这里面行业数据单个广告主无法控制,因此核心就在于前者,其中花钱的持续性重要于数目,近一周的账户计划表现重要于近一月的。

预估CTR具体过程如下:根据大图or小图、行业属性、文案内容、图片内容、受众用户特征等,再加上钱作为加权,将新广告与历史广告的展示点击情况做匹配,输出一个预估的CTR值,同时在后续分段式投放中根据广告的实际表现对预估的CTR做调整。

其中,由于系统会担心预估的CTR不准确时,导致广告主的损失,因此会故意放缓新计划一开始的曝光,所以在头条新建的每一条计划,都要有一个时间缓冲,才会开始起量。

不要问:什么类型的素材点击率高?因为在一个大盘里,每种素材都有过好和差的表现,这是典型的看着有用但对实际没帮助的问题。

应该问:所在行业的平均CTR是多少?因为只要保证我的计划比平均值高,盈利的机会就更大。

答:全行业素材在今日头条信息流中的平均CTR为2.3~2.5%;其中游戏行业CTR 1.5%,电商 2.5%,APP 2.2%。

三、广告排序

当广告计划被APP端加载后,并不是即时显示,而是进行ECPM的排序。ECPM≈质量度*出价,质量度最重要的是点击率CTR,代表着广告被用户接受的程度,出价即Bid,代表广告主愿意为一次点击所支付的最高费用,因此如果CTR越高,那么广告计划实际的ACP点击价格,会比Bid越低。

不要问:更细致的广告排序算法?因为懂了其实也没卵用

要问:这对投放的影响是什么?

答:最大影响在于,投出去的广告,不是即时被曝光和点击,因为广告在用户APP端排队后,被刷到的时机有随机性,可能下一秒就被曝光,可能几分钟,也可能半天甚至一天,因此导致今日头条上的CPC(Cost per Click,一次点击费用)扣费,和广告投出去的时间是有时间差的,即非即时。这种非即时最大的影响,就是后台的即时统计数据会有缓冲和延时,所以在头条投放,不需要跟百度广点通一样频繁调价,而是耐心些,根据大盘数据表现,再做调整,以免得不偿失,一天2~5次调价足够。

此外,作为优化的一个重要依据,质量度的影响因素按重要度排序为:CTR>素材创意相关性>落地页和素材的关联性>广告账户的历史表现≈账户信用≈用户在落地页的停留时长≈落地页的加载速度。

四、频次过滤

今日头条的广告系统有非常多的频次过滤算法,摘取对投放影响最大的几条如下:

1、曾经:新用户7天内没有任何广告(IPAD版,IOS付费版终身免广告)。现在:新用户3天内不出任何广告,3~7天只出信息流广告,7天后正常显示信息流广告、开屏广告、详情页广告。

2、一个用户一天内,最多看到7次大图广告,所以大图有时候跑不动是有原因的,要么加价,要么想办法提高CTR,要么等,只有这三种办法。

3、一个用户一天内,最多看到20次应用下载类广告,但如果下载链接是放在跳转的落地页上,则不受这个频控影响,所以如果非常求量,不妨多投落地页广告。

4、当用户Dislike了广告主的其中一条计划,那么该广告主所有计划一周内不再显示给该用户

5、每一条广告计划,12个小时内只对一个用户展示一次

6、ECPM太低的广告,不予展示,连排队的机会都没有,具体门槛不透露,但2016年3月份时,今日头条的系统轻微下调了ECPM的门槛,让更多广告有展示机会。

不要问:大图和应用下载被频控,那我要少投么?

要问:大图和应用下载被频控,那有时候反其道行之,可否收获惊喜?

答:可以。头条的信息流广告,页面形式分为下载页和落地页,区别在于下载页是搭建在头条服务器中,且素材上有“立即下载”的ICON;素材形式分为大图、小图、组图;竞价广告位置分为:今日头条信息流、抖音、皮皮虾、西瓜视频信息流、今日头条文章详情页底部Banner。可以说,上面每一种形式,都有好和坏的案例,因此投放中谨记水无定势,盘子在不停变化,看你怎么玩,但玩的过程中,务必记得上面的各种算法,即游戏规则.

1、账户余额。根据笔者曾经观察了2万+条计划的心得,不要等快没钱了才充值,保持账户余额有五位数以上,对流量的帮助绝对是正向的。余额越少,以及广告计划的消耗越逼近预算,“机器人”放量的速度趋向于放缓,但具体临界点和相关数值无法透漏。

2、不盲目相信其他平台的经验。移动端的多元化体现在方方面面,在广告投放领域也是如此,因此不同平台的经验和习惯不要轻易照搬,尤其是百度广点通这类“传统”平台的经验在头条这样的新广告系统上会水土不服,让部分新接触的市场人员偶尔倍感茫然,投放也变得缩手缩脚。要知道,像笔者这样的“老”员工,如果不保持每天的学习,一样会被头条自己的速度抛下,因此,保持“冒险”和“学习”的态度至关重要。

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Jacquelyn38 Jacquelyn38
3年前
2020年前端实用代码段,为你的工作保驾护航
有空的时候,自己总结了几个代码段,在开发中也经常使用,谢谢。1、使用解构获取json数据let jsonData  id: 1,status: "OK",data: 'a', 'b';let  id, status, data: number   jsonData;console.log(id, status, number )
Wesley13 Wesley13
3年前
mysql设置时区
mysql设置时区mysql\_query("SETtime\_zone'8:00'")ordie('时区设置失败,请联系管理员!');中国在东8区所以加8方法二:selectcount(user\_id)asdevice,CONVERT\_TZ(FROM\_UNIXTIME(reg\_time),'08:00','0
Wesley13 Wesley13
3年前
00:Java简单了解
浅谈Java之概述Java是SUN(StanfordUniversityNetwork),斯坦福大学网络公司)1995年推出的一门高级编程语言。Java是一种面向Internet的编程语言。随着Java技术在web方面的不断成熟,已经成为Web应用程序的首选开发语言。Java是简单易学,完全面向对象,安全可靠,与平台无关的编程语言。
Stella981 Stella981
3年前
Django中Admin中的一些参数配置
设置在列表中显示的字段,id为django模型默认的主键list_display('id','name','sex','profession','email','qq','phone','status','create_time')设置在列表可编辑字段list_editable
Wesley13 Wesley13
3年前
ThinkPHP 根据关联数据查询 hasWhere 的使用实例
很多时候,模型关联后需要根据关联的模型做查询。场景:广告表(ad),广告类型表(ad\_type),现在需要筛选出广告类型表中id字段为1且广告表中status为1的列表先看关联的设置部分 publicfunctionadType(){return$thisbelongsTo('A
Wesley13 Wesley13
3年前
MySQL部分从库上面因为大量的临时表tmp_table造成慢查询
背景描述Time:20190124T00:08:14.70572408:00User@Host:@Id:Schema:sentrymetaLast_errno:0Killed:0Query_time:0.315758Lock_
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这