在为自定义出价模型提供依据时,您可以使用本主题中介绍的函数和信号来创建自定义出价脚本,以便准确体现您要改进的关键绩效指标 (KPI)。
本文涵盖的主题
语法规则
您可以使用第一方数据为自定义出价脚本提供相关信息,从而提高展示机会价值。Display & Video 360 支持以下来源的第一方数据:
- Floodlight:如需了解详情,请参阅使用 Floodlight 数据的示例脚本。
- 展示层面数据:如需了解详情,请参阅使用展示层面的数据的示例脚本。
- Google Analytics :如需了解详情,请参阅使用 Google Analytics 数据的示例脚本。
创建自定义出价脚本时,您应使用以下语法规则:
- 将所有条件放置在方括号
[ ]
中 - 逗号
,
也表示“and”
示例
criteria_a
和 criteria_b
均为 true
时,criteria1
才会返回 true。而当 criteria_a
为 true
时,criteria2
会返回 true
:([criteria_a, criteria_b], score), #criteria1
([criteria_a], score) #criteria2
])
注释
您可以使用注释为脚本添加上下文。例如,您可以添加注释来传达脚本的意图。
您可以使用如下语法添加注释:
- 如需添加单行注释,请使用
#
。 - 如需添加多行注释,请使用
"""
或'''
将注释括起来。
示例
# 这是一条单行注释
"""
这是一条多行注释
"""
'''
这也是一条多行注释
'''
运算符
您可以在脚本中使用以下运算符:
- 算术运算符:
+
、-
、*
、/
、%
、**
、//
- 赋值运算符:
=
、+=
、-=
、*=
、/=
、%=
、**=
、//=
- 比较运算符:
==
、!=
、<
、>
、>=
、<=
- 逻辑运算符:
and
、or、not - 成员资格运算符:in、not in
成员资格运算符
您可以在脚本中使用 in 和 not in 成员资格运算符,以检查某一元素是否在某个字段中。
in
:如果在目标字段中找到了相应元素,会返回 true。not in
:如果在目标字段中找不到相应元素,会返回 true。
示例
if 123 in channel_id: #检查 123 是否在渠道 ID 中
return y
比较运算符
您可以使用比较运算符向模型中添加或从中排除某个元素。
示例 1
# 排除日期
if date == 20180711:
return None
可以通过返回 None
的方式来指定要在训练自定义出价模型时排除的展示数据。在训练自定义出价模型时,您可以使用返回 None
的语句来指定要排除的展示数据。
示例 2
以下脚本从自定义出价模型中排除了一种广告类型:
# 排除一个细分 (ad_type == 1 表示“视频”)
if ad_type != 1:
return None
可用的函数和信号
下面列出了您可以在自定义出价脚本中使用的函数。这些表格包含以下信息:
- 字段:您在脚本中使用的函数或信号名称。
- 类型:相应输出数据的类型。自定义出价支持以下数据类型:
- 布尔值:包含
true
或false
值。 - 二进制:包含二进制数据。
- 双精度:包含一个浮点数值。例如
1.0
。 - 整数列表:包含一组整数。
- 整数:包含正整数或负整数。例如
1
或-1
。 - 字符串:包含长度至少为 0 的 UTF-8 字符。例如,
country_code
会输出字符串“US”
。
- 布尔值:包含
- 详细信息:包含更多信息和示例链接。
有关详情,请前往 Display & Video 360 API 或下载结构化数据文件 (SDF)。
函数
Display & Video 360 自定义出价支持以下函数:
这些函数接受一个或多个信号,以便在您的自定义出价脚本中准确体现您的关键绩效指标 (KPI)。
类别 | 函数 | 类型 | 详细说明 |
---|---|---|---|
汇总函数 | first_match_aggregate |
双精度 | 返回条件数组中会返回 true 的第一个条件的权重赋值。 |
max_aggregate |
双精度 | 返回条件数组中会返回 true 的条件的最高权重赋值。 |
|
sum_aggregate |
双精度 | 返回条件数组中会返回 true 的所有条件的赋值总和。 |
|
类型转换函数 |
|
bool(x) |
返回布尔值: |
|
float(x) |
转换数字或字符串数据类型:返回一个浮点数。 示例: |
|
|
int(x) |
转换数字或字符串数据类型,并返回一个整数。 示例: |
|
|
str(object) |
转换数据类型,并返回字符串。 示例: |
|
数学函数 |
|
log(x[, base]) |
使用 1 个实参:返回 x 的自然对数(以 e 为底数)。 使用 2 个实参:返回 x 的对数(使用给定底数),计算方式为 log(x)/log(base)。 |
信号
Display & Video 360 自定义出价函数接受以下信号类别的数据:
- 维度变量:在基于变量进行评分的脚本中使用的信号。
- 转化:在基于转化结果进行评分的脚本中使用的信号。
- Google Analytics:在基于 Google Analytics 4 数据进行评分的脚本中使用的信号。
维度变量
类别 |
信号 |
类型 |
详细说明 |
常规 |
|
整数 |
Display & Video 360 中的广告客户标识符。 |
---|---|---|---|
|
整数 |
Display & Video 360 中的广告订单标识符。 |
|
|
整数 |
Display & Video 360 中的订单项标识符。 |
|
日期/时间 |
|
整数 |
相应展示的发生日期。 格式:yyyymmdd |
|
整数 |
与相应展示发生于周几对应的数字代码。
|
|
|
整数 |
相应展示的发生时段,以浏览器的本地时区表示,采用 24 小时制格式。 有效输入:0 - 23 |
|
|
整数 |
相应展示的发生日期,以世界协调时间 (UTC) 表示。 格式:yyyymmdd |
|
|
整数 |
相应展示的发生时段,以世界协调时间 (UTC) 表示,采用 24 小时制格式。 有效输入:0 - 23 |
|
地理位置 |
|
整数 |
城市标识符。 您可以通过使用 Display & Video 360 API 或下载 SDF 元数据,生成 city_id。 |
|
字符串 |
国家/地区代码。 您可以下载一个包含国家/地区代码对应关系的 PDF 文件作为参考。 |
|
|
整数 |
国家或地区标识符。 您可以下载一个包含国家/地区 ID 对应关系的 PDF 文件作为参考。 |
|
|
整数 |
特定媒体市场区域 (DMA) 标识符。 |
|
|
字符串 |
邮政编码。 您可以通过使用 Display & Video 360 API 或下载 SDF 元数据,查找可用邮政编码的列表。 |
|
广告素材(常规) |
|
整数 |
用于表示广告格式的数值代码:
|
|
整数 |
广告素材高度(以像素为单位)。 注意:仅适用于展示广告素材。 |
|
|
整数 |
Display & Video 360 中显示的广告素材 ID。 |
|
|
整数 |
广告素材宽度(以像素为单位)。 注意:仅适用于展示广告素材。 |
|
计算机系统 |
|
整数 |
浏览器标识符。 |
|
整数 |
浏览器所用的有效时区与 GMT-12 之间的时差(以分钟为单位)。 示例: 1320 表示浏览器时区为 GMT+10 |
|
|
整数 |
用于表示设备类型的数值代码:
|
|
|
整数 |
用于表示广告投放环境的数值代码。
|
|
|
整数 |
网络服务提供商 (ISP) 标识符。 |
|
|
字符串 |
浏览器的语言设置。 |
|
|
整数 |
移动设备品牌标识符。 |
|
mobile_model_id |
整数 |
移动设备型号标识符。 |
|
|
整数 |
用于表示在相应展示发生时检测到的网速的数值代码:
|
|
|
整数 |
操作系统标识符。 |
|
投放(常规) |
|
整数 |
用于表示广告展示位置的数值代码:
|
|
整数列表 |
网页类别标识符。 如需查看类别 ID 对应关系的完整列表,请访问 AdWords API 参考文档。 |
|
|
整数列表 |
Display & Video 360 中的渠道标识符。 |
|
|
字符串 |
注意:联网电视订单项不支持域名。 对于联网电视订单项,请使用 根域名,由域名和顶级域名组成。 示例:网址 http://www.domain.com 的根域名是 domain.com。 |
|
|
整数 |
广告交易平台标识符。 |
|
|
整数 |
网站标识符。 |
|
Active View |
|
布尔值 |
如果广告投放时相应展示可由 Active View 衡量,会返回 某些因素可能会导致系统无法统计展示次数。如果相应展示不可衡量,会返回 |
|
布尔值 |
一旦 Active View 检测到相应广告已被观看,就会返回 1 表示 true。否则,会返回 0 表示 false。 |
|
事件 |
|
布尔值 |
如果相应广告被点击了,会返回 |
|
整数 |
相应广告在屏幕上的展示时长(以秒为单位)。 |
|
视频 |
|
布尔值 |
注意:仅适用于实时出价 (RTB) 视频广告 如果相应视频广告在被观看时处于有声状态,会返回 |
|
布尔值 |
注意:仅适用于实时出价 (RTB) 视频广告 如果相应视频广告在被观看时处于有声状态,会返回 |
|
|
布尔值 |
注意:仅适用于视频广告类型。非视频广告展示不会带有标签。 如果相应视频广告被完整播放了,会返回 |
|
|
整数 |
视频播放器在播放第一帧时的高度(以像素为单位)。 |
|
|
整数 |
用于表示基于视频播放器尺寸定位到的视频广告资源的数值代码。
如需了解详情,请参阅视频广告定位。 |
|
|
整数 |
视频播放器在播放第一帧时的宽度(以像素为单位)。 |
|
|
二进制 |
如果视频播放器在播放过程中被调整大小了,会返回 |
|
|
布尔值 |
注意:仅适用于实时出价 (RTB) 视频广告。 如果相应视频在播放完毕时被观看了,会返回 |
|
video_content_duration_bucket |
整数 |
注意:仅适用于视频广告类型。非视频广告展示不会带有标签。
表示视频时长范围的数值代码,用于根据视频时长对视频进行分类。上限范围不包括在内。 示例对于时长为 1 分钟的视频:
|
|
video_genre_ids |
整数列表 |
注意:仅适用于视频广告类型。非视频广告展示不会带有标签。 表示视频类型 ID 的列表,用于根据相关的音频和视频广告资源组定位广告。 详细了解类型定位。 |
|
video_livestream |
布尔值 |
注意:仅适用于视频广告类型。非视频广告展示不会带有标签。 如果是直播视频,则返回true 。否则,返回 false 。 |
转化次数
类别 |
信号 |
类型 |
详细说明 |
转化信号 |
|
双精度 |
ID 对的转化事件总数。使用您自己的模型,或输入 0 作为模型 ID,以使用最终接触归因。 |
---|---|---|---|
|
双精度 |
从 Floodlight 销售代码所跟踪的活动获取收入值。使用您自己的模型,或输入 0 作为模型 ID,以使用最终接触归因。 |
|
|
双精度 |
归因于给定 ID 对的总转化次数。使用您自己的模型,或输入 0 作为模型 ID,以使用最终接触归因。 |
|
|
字符串 |
返回最近归因于相应展示的转化对应的自定义变量的字符串值。否则(如果没促成转化或未设置值),会返回 |
|
|
整数 |
获取具有正值的最新转化,如果存在 count_micros 为正,则获取 “num” Floodlight 变量。否则,会返回 |
|
|
字符串 |
获取具有正值的最新转化,如果存在 |
视频类型对应关系
类型 ID |
类型名称 |
2 |
/成人 |
3 |
/艺术与娱乐 |
317 |
/艺术与娱乐/漫画与动画/动漫 |
319 |
/艺术与娱乐/漫画与动画/卡通 |
1108 |
/艺术与娱乐/娱乐业/电影与电视业/影视奖项 |
569 |
/艺术与娱乐/活动与演出 |
1273 |
/艺术与娱乐/活动与演出/直播体育赛事 |
895 |
/艺术与娱乐/幽默/现场喜剧 |
1097 |
/艺术与娱乐/电影/动作冒险片 |
1099 |
/艺术与娱乐/电影/动作冒险片/西部片 |
1095 |
/艺术与娱乐/电影/喜剧片 |
615 |
/艺术与娱乐/电影/恐怖片 |
1105 |
/艺术与娱乐/电影/音乐片 |
1310 |
/艺术与娱乐/电影/爱情片 |
616 |
/艺术与娱乐/电影/科幻片 |
1096 |
/艺术与娱乐/电影/惊悚、犯罪与悬疑片 |
35 |
/艺术与娱乐/音乐与音频 |
449 |
/艺术与娱乐/网络奇闻/神秘与超自然 |
23 |
/艺术与娱乐/表演艺术 |
894 |
/艺术与娱乐/表演艺术/表演与戏剧 |
581 |
/艺术与娱乐/表演艺术/舞蹈 |
1185 |
/艺术与娱乐/表演艺术/歌剧 |
358 |
/艺术与娱乐/电视与视频/电视节目 |
1047 |
/艺术与娱乐/电视与视频/电视节目/电视喜剧 |
1411 |
/艺术与娱乐/电视与视频/电视节目/电视纪录片与纪实片 |
1193 |
/艺术与娱乐/电视与视频/电视节目/电视剧 |
1111 |
/艺术与娱乐/电视与视频/电视节目/电视剧/罪案剧与律政剧 |
357 |
/艺术与娱乐/电视与视频/电视节目/电视剧/电视肥皂剧 |
1110 |
/艺术与娱乐/电视与视频/电视节目/面向家庭的电视节目 |
1050 |
/艺术与娱乐/电视与视频/电视节目/娱乐竞赛类电视节目 |
1049 |
/艺术与娱乐/电视与视频/电视节目/电视真人秀 |
1112 |
/艺术与娱乐/电视与视频/电视节目/科幻类电视节目 |
1410 |
/艺术与娱乐/电视与视频/电视节目/电视选秀与综艺节目 |
1048 |
/艺术与娱乐/电视与视频/电视节目/电视谈话节目 |
24 |
/艺术与娱乐/视觉艺术与设计 |
47 |
/汽车与交通工具 |
1191 |
/汽车与交通工具/自行车与配件 |
1405 |
/汽车与交通工具/自行车与配件/山地自行车 |
273 |
/汽车与交通工具/机动车(按类型)/摩托车 |
148 |
/汽车与交通工具/机动车(按类型)/越野车 |
185 |
/美容与健身/流行与时尚 |
94 |
/美容与健身/健身 |
241 |
/美容与健身/健身/健美 |
1418 |
/美容与健身/健身/健身指导与私人训练 |
46 |
/商业与工业/农业与林业 |
5 |
/计算机与电子产品 |
122 |
/食品与饮料/烹饪与食谱 |
39 |
/游戏/纸牌游戏 |
924 |
/游戏/纸牌游戏/扑克与赌场游戏 |
924 |
/游戏/纸牌游戏/扑克与赌场游戏 |
41 |
/游戏/计算机与视频游戏 |
698 |
/游戏/赌博/体育博彩/赛马与赛狗 |
939 |
/游戏/桌面游戏/台球 |
940 |
/游戏/桌面游戏/乒乓球 |
45 |
/健康 |
284 |
/爱好与休闲/手工艺 |
688 |
/爱好与休闲/户外活动 |
462 |
/兴趣与休闲/户外活动/钓鱼 |
461 |
/爱好与休闲/户外活动/狩猎与射击 |
461 |
/爱好与休闲/户外活动/狩猎与射击 |
461 |
/爱好与休闲/户外活动/狩猎与射击 |
999 |
/爱好与休闲/休闲飞行 |
678 |
/爱好与休闲/特殊场合/假日与节庆 |
459 |
/爱好与休闲/水上活动/划船 |
11 |
/家居与园艺 |
158 |
/家居与园艺/家装 |
966 |
/法律与政府/政府/州或省/自治区/直辖市政府与地方政府 |
75 |
/法律与政府/法律 |
366 |
/法律与政府/军事 |
16 |
/新闻 |
784 |
/新闻/商业资讯 |
396 |
/新闻/政治 |
1201 |
/新闻/政治/观点与评论 |
1077 |
/新闻/体育资讯 |
785 |
/新闻/科技资讯 |
63 |
/新闻/天气 |
113 |
/人与社会/种族与认同群体/女同性恋、男同性恋、双性恋与跨性别者 |
58 |
/人与社会/家庭与人际关系/家庭/育儿 |
59 |
/人与社会/宗教与信仰 |
870 |
/人与社会/励志自助 |
57 |
/人与社会/社会问题与宣传/慈善机构与慈善事业 |
82 |
/人与社会/社会问题与宣传/绿色生活与环境问题 |
886 |
/宠物与动物/宠物/狗 |
888 |
/宠物与动物/宠物/马 |
119 |
/宠物与动物/野生动物 |
119 |
/宠物与动物/野生动物 |
690 |
/参考资料/一般参考资料/传记与语录 |
694 |
/参考资料/一般参考资料/知识问答、DIY 与专家指导 |
433 |
/Reference/Humanities/History |
1288 |
/参考资料/人类学/历史/军事历史 |
174 |
/科学 |
18 |
/购物 |
64 |
/购物/古董与收藏品 |
292 |
/ 购物 / 拍卖 |
69 |
/购物/消费者资源 |
1666 |
/体育/动物运动 |
568 |
/体育/动物运动/马术 |
515 |
/体育/搏击运动/拳击 |
516 |
/体育/搏击运动/武术 |
1674 |
/体育/搏击运动/武术/综合格斗 |
512 |
/体育/搏击运动/摔跤 |
1681 |
/体育/搏击运动/摔跤/职业摔跤 |
554 |
/体育/极限运动 |
1206 |
/体育/极限运动/直线竞速赛与街头飙车 |
1000 |
/体育/个人运动 |
1016 |
/体育/个人运动/保龄球 |
458 |
/体育/个人运动/骑行 |
261 |
/体育/个人运动/高尔夫 |
519 |
/体育/个人运动/体操 |
262 |
/体育/个人运动/小球类运动 |
1376 |
/体育/个人运动/小球类运动/网球 |
541 |
体育/个人运动/跑步与步行 |
1126 |
/体育/个人运动/滑冰运动 |
518 |
/体育/个人运动/田径 |
513 |
/体育/国际体育比赛/奥运会 |
180 |
/体育/机动车运动 |
1595 |
/体育/机动车运动/汽车赛车 |
1596 |
/体育/机动车运动/摩托车赛车 |
1001 |
/体育/团体运动 |
258 |
/体育/团体运动/美式橄榄球 |
259 |
/体育/团体运动/棒球 |
264 |
/体育/团体运动/篮球 |
534 |
/体育/团体运动/啦啦队 |
296 |
/体育/团体运动/板球 |
1017 |
/体育/团体运动/手球 |
260 |
/体育/团体运动/冰球 |
517 |
/体育/团体运动/英式橄榄球 |
294 |
/体育/团体运动/足球 |
699 |
/体育/团体运动/排球 |
118 |
/体育/水上运动 |
1593 |
/体育/水上运动/冲浪 |
1594 |
/体育/水上运动/游泳 |
265 |
/体育/冬季运动 |
1149 |
/体育/冬季运动/滑冰 |
1148 |
/体育/冬季运动/滑雪与单板滑雪 |
67 |
/旅行与交通 |
Google Analytics
类别 | 信号 | 类型 | 详细说明 |
---|---|---|---|
Google Analytics 4 |
|
布尔值 |
如果有至少 1 个带有媒体资源 ID 和转化事件的转化归因于指定展示,那么返回 true 。否则,返回 false 。 |
|
整数 |
返回归因于指定展示且带有媒体资源 ID 和转化事件的转化的次数。 | |
|
双精度 |
如有归因于指定展示且带有媒体资源 ID 和转化事件的转化,返回其最高值。 如果最高转化价值为0 ,或者没有转化归因于指定展示,会返回 0 。 |
|
|
双精度 |
注意:针对采用美元作为币种的 Google Analytics 4 账号。 如有归因于指定展示且带有媒体资源 ID 和转化 ID 的转化,返回其最高值 如果最高转化价值为 |
|
|
双精度 |
如有归因于指定展示且带有媒体资源 ID 和转化事件的转化,返回权重值总和。 如果最高转化价值为 |
|
|
双精度 |
注意:针对采用美元作为币种的 Google Analytics 4 账号。 如有归因于指定展示且带有媒体资源 ID 和转化事件的转化,返回权重值总和。 如果最高转化价值为 |
限制
自定义出价脚本不支持以下各项:
- 传递具名实参:例如
func(arg1 = “abc”, arg2 = “def”)
- 下标和细分:例如
userlists[1:3]
- 引用属性:例如
domain.length
- 变量和函数名称可以来自预定义的集合
- 递归
- 高级自定义变量赋值:
- 多赋值
- 增量赋值
- 带注解的赋值
以下是自定义变量赋值不支持的语法的示例
_a, _b = 1, 2
_a, _b = _b, _a
_a = _b = 2
_idx += 1
- 不支持的关键字:
global
、nonlocal
和exec
关键字class
和类定义def
和函数定义Import
和从关键字导入lambda
和 lambda 支持break
continue
yield
raise
assert
try
finally
except
async
await
del
Pass
ellipsis
- 不支持的循环:
for
和while
循环。
- 不支持的运算符:
*
和**
,如果是在非算术语句中使用。<<
和>>
移位运算符。- 位运算符
@
修饰符。is
、not is
身份运算符