您可以使用函数和信号来创建自定义出价脚本。此脚本将通过改进目标关键绩效指标 (KPI) 来帮助构建自定义出价模型。
本页内容
语法规则
您可以使用第一方数据为自定义出价脚本提供相关信息,从而提高展示机会价值。Display & Video 360 支持以下来源的第一方数据:
创建自定义出价脚本时,您应使用以下语法规则:
- 将所有条件放置在方括号
[ ]中 - 逗号
,也表示“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比较运算符
您可以使用比较运算符向模型中添加或从中排除某个元素。
# 排除日期
if date == 20180711:
return None
可以通过返回 None 的方式来指定要在训练自定义出价模型时排除的展示数据。在训练自定义出价模型时,您可以使用返回 None 的语句来指定要排除的展示数据。
以下脚本从自定义出价模型中排除了一种广告类型:
# 排除一个细分 (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 |
bool(x) | 返回布尔值:true 或 false。 |
float |
float(x) | 转换数字或字符串数据类型:返回一个浮点数。
示例: |
|
int |
int(x) | 转换数字或字符串数据类型,并返回一个整数。
示例: |
|
str |
str(object) | 转换数据类型,并返回字符串。
示例: |
|
| 数学函数 | log |
log(x[, base]) | 使用 1 个实参:返回 x 的自然对数(以 e 为底数)。
使用 2 个实参:返回 x 的对数(使用给定底数),计算方式为 log(x)/log(base)。 |
信号
Display & Video 360 自定义出价函数接受以下信号类别的数据:
- 维度变量:在基于变量进行评分的脚本中使用的信号。
- 转化:在基于转化结果进行评分的脚本中使用的信号。
- Google Analytics:在基于 Google Analytics 数据进行评分的脚本中使用的信号。
维度变量
| 类别 | 信号 | 类型 | 具体说明 |
| 常规 | advertiser_id |
整数 | Display & Video 360 中的广告客户标识符。 |
|---|---|---|---|
insertion_order_id |
整数 | Display & Video 360 中的广告订单标识符。 | |
line_item_id |
整数 | Display & Video 360 中的订单项标识符。 | |
| 日期/时间 | date |
整数 | 相应展示的发生日期。
格式:yyyymmdd |
day_of_week |
整数 | 与相应展示发生于周几对应的数字代码。
|
|
hour_of_day |
整数 | 相应展示的发生时段,以浏览器的本地时区表示,采用 24 小时制格式。
有效输入:0 - 23 |
|
utc_date |
整数 | 相应展示的发生日期,以世界协调时间 (UTC) 表示。
格式:yyyymmdd |
|
utc_hour_of_day |
整数 | 相应展示的发生时段,以世界协调时间 (UTC) 表示,采用 24 小时制格式。
有效输入:0 - 23 |
|
| 地理位置 | city_id |
整数 | 城市标识符。
您可以通过使用 Display & Video 360 API 或下载 SDF 元数据,生成 city_id。 |
|
|
字符串 |
国家/地区代码。 您可以下载一个包含国家/地区代码对应关系的 PDF 文件作为参考。 |
|
|
|
整数 |
国家或地区标识符。 您可以下载一个包含国家/地区 ID 对应关系的 PDF 文件作为参考。 |
|
|
|
整数 |
特定媒体市场区域 (DMA) 标识符。 |
|
|
|
字符串 |
邮政编码。 您可以通过使用 Display & Video 360 API 或下载 SDF 元数据,查找可用邮政编码的列表。 |
|
| 广告素材(常规) |
|
整数 |
用于表示广告格式的数值代码:
|
|
|
整数 |
广告素材高度(以像素为单位)。 注意:仅适用于展示广告素材。 |
|
|
|
整数 |
Display & Video 360 中显示的广告素材 ID。 |
|
|
|
整数 |
广告素材宽度(以像素为单位)。 注意:仅适用于展示广告素材。 |
|
| 计算机系统 | browser_reportable_id |
整数 |
浏览器标识符。 下载自定义出价 ID 表格(.xlsx 格式)即可获取这些 ID。 使用公共 API ID。 您也可在最新的 SDF 元文件中或通过使用数据传输文件找到 ID。 注意:为了使整个 Display & Video 360 中的 ID 空间保持一致, |
|
|
整数 |
浏览器所用的有效时区与 GMT-12 之间的时差(以分钟为单位)。 示例: 1320 表示浏览器时区为 GMT+10 |
|
|
|
整数 |
用于表示设备类型的数值代码:
|
|
|
|
整数 |
用于表示广告投放环境的数值代码。
|
|
isp_reportable_isp |
整数 |
网络服务提供商 (ISP) 标识符。 下载自定义出价 ID 表格(.xlsx 格式)即可获取这些 ID。 使用公共 API ID。 您也可在最新的 SDF 元文件中或通过使用数据传输文件找到 ID。 注意:为了使整个 Display & Video 360 中的 ID 空间保持一致, |
|
|
|
字符串 |
浏览器的语言设置。 |
|
mobile_make_reportable_id |
整数 |
移动设备品牌标识符。 下载自定义出价 ID 表格(.xlsx 格式)即可获取这些 ID。 使用公共 API ID。 您也可在最新的 SDF 元文件中或通过使用数据传输文件找到 ID。 注意:为了使整个 Display & Video 360 中的 ID 空间保持一致, |
|
mobile_model_reportable_id |
整数 |
移动设备型号标识符。 下载自定义出价 ID 表格(.xlsx 格式)即可获取这些 ID。 使用公共 API ID。 您也可在最新的 SDF 元文件中或通过使用数据传输文件找到 ID。 注意:为了使整个 Display & Video 360 中的 ID 空间保持一致, |
|
|
|
整数 |
用于表示在相应展示发生时检测到的网速的数值代码:
|
|
operating_system_reportable_id |
整数 |
操作系统标识符。 下载自定义出价 ID 表格(.xlsx 格式)即可获取这些 ID。 使用公共 API ID。 您也可在最新的 SDF 元文件中或通过使用数据传输文件找到 ID 注意:为了使整个 Display & Video 360 中的 ID 空间保持一致, |
|
| 投放(常规) |
|
整数 |
用于表示广告展示位置的数值代码:
|
|
|
整数列表 |
网页类别标识符。 如需查看类别 ID 对应关系的完整列表,请访问 AdWords API 参考文档。 |
|
|
|
整数列表 |
Display & Video 360 中的渠道标识符。 |
|
|
|
字符串 |
注意:联网电视订单项不支持域名。 对于联网电视订单项,请使用 根域名,由域名和顶级域名组成。 此信号会映射到报告维度“应用/网址”。 示例:网址 http://www.domain.com 的根域名是 domain.com。 |
|
|
|
整数 |
广告交易平台标识符。 |
|
|
|
整数 |
网站标识符。 此信号会映射到报告维度“应用/网址 ID”。 |
|
| 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。 |
browser_id、isp_id、mobile_make_id、mobile_model_id 和 operating_system_id。请更新脚本,改用 browser_reportable_id、isp_reportable_id、mobile_make_reportable_id、mobile_model_reportable_id 和 operating_system_reportable_id。此项更改可使“自定义出价”机制中使用的 ID 空间与 Display & Video 360 的其余部分(包括最新的 SDF 文件、API 和 Data Transfer v2)保持一致。转化次数
|
类别 |
信号 |
类型 |
具体说明 |
| 转化信号 |
|
双精度 |
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 |
|
布尔值 |
如果有至少 1 个带有媒体资源 ID 和转化事件的转化归因于指定展示,那么返回 true。否则,返回 false。 |
|
|
整数 |
返回归因于指定展示且带有媒体资源 ID 和转化事件的转化的次数。 | |
|
|
双精度 |
如有归因于指定展示且带有媒体资源 ID 和转化事件的转化,返回其最高值。 如果最高转化价值为0,或者没有转化归因于指定展示,会返回 0。 |
|
|
|
双精度 |
注意:针对采用美元作为币种的 Google Analytics 账号。 如有归因于指定展示且带有媒体资源 ID 和转化 ID 的转化,返回其最高值 如果最高转化价值为 |
|
|
|
双精度 |
如有归因于指定展示且带有媒体资源 ID 和转化事件的转化,返回权重值总和。 如果最高转化价值为 |
|
|
|
双精度 |
注意:针对采用美元作为币种的 Google Analytics 账号。 如有归因于指定展示且带有媒体资源 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 支持breakcontinueyieldraiseasserttryfinallyexceptasyncawaitdelPassellipsis
- 不支持的循环:
for和while循环。
- 不支持的运算符:
*和**,如果是在非算术语句中使用。<<和>>移位运算符。- 位运算符
@修饰符。is、not is身份运算符