创建覆盖和频次广告
本章将介绍如何创建覆盖和频次广告。创建流程如下:
- 创建覆盖和频次推广系列。
- 获取广告库存预估。
- [可选] 创建一个展示量&预算或覆盖量&预算图表。
- 创建广告组。
- 创建广告。
注意
覆盖和频次广告目前已全量发布。开发者可以使用本功能进行开发。但是广告账号需要在本功能的白名单内,才能正常使用相关应用。如需将广告账号加入该功能的白名单,请联系您的TikTok销售代表。
前提条件
您已申请白名单并签订品牌商务合同;
1. 创建覆盖和频次推广系列
使用/campaign/create/接口创建覆盖和频次推广系列。
- 推广目标:目前覆盖和频次广告仅支持RF_REACH推广目标。因此在设置objective_type时,请选择RF_REACH。
2. 获取广告库存预估
使用/rf/inventory/estimate/接口获取广告库存预估。广告库存是根据推广目标、版位、定向、排期、展示频次和预订方式预估生成的。
- 库存预估方法
-
您可以按照固定预算、固定展示量或固定覆盖量进行预订。
-
按照固定预算购买
设置rf_purchased_type为FIXED_BUDGET,在budget字段中输入预算值。系统会根据固定预算预测展示量、覆盖量、展示频次和CPM。 - 按照固定展示量购买
设置rf_purchased_type为FIXED_SHOW,在purchased_impression字段中输入展示量。系统会根据固定展示量预测覆盖量、展示频次、CPM和预算。 - 按照固定覆盖量购买
设置rf_purchased_type为FIXED_REACH,在purchased_reach字段中输入您想要覆盖的受众数量。系统会根据固定覆盖量预测展示量、展示频次、CPM和预算。
根据您所指定的固定值,我们将在返回中的default_result对象中返回相应的预测值。例如,如果您将rf_purchased_type设置为FIXED_SHOW,并在purchased_impression中指定固定值,那么我们将根据您设置的展示量进行计算,并在default_result中返回budget、cpm、reach和average_frequency的预估值。
注意
您在budget、purchased_impression或purchased_reach中输入的金额必须在results中base_info对象返回的最小值和最大值范围内。否则,default_result将返回最大预估值,而不是使用固定金额预定的值。
示例:
下面是选择FIXED_SHOW作为预定方式的示例。
请求示例
(code)
{
"advertiser_id": "123",
"audience_info": {
"location_ids": [
"6252001"
],
"network_types": ["5G"],
"carrier_ids":["3100000", "3100001", "3100002", "3100003"],
"operating_systems": ["IOS"],
"brand_safety_type":"LIMITED_INVENTORY",
"contextual_tag_ids":[18,19]
},
"schedule_start_time": "2022-09-28 05:00:00",
"schedule_end_time": "2022-10-02 04:59:59",
"frequency": 3,
"frequency_schedule": 5,
"objective_type": "RF_REACH",
"rf_purchased_type": "FIXED_SHOW",
"purchased_impression":800
}
(/code)
返回示例
(code)
{
"code": 0,
"message": "OK",
"request_id": "202209150956440102452480581B06C634",
"data": {
"default_result": {
"base_info": {
"impression": 800,
"cpm": 5.78,
"budget": 4624.12,
"reach": 520,
"average_frequency": 1.54
},
"frequency_per_person": [
{
"percentage": 0.56,
"frequency": 1
},
{
"percentage": 0.26,
"frequency": 2
},
{
"percentage": 0.18,
"frequency": 3
}
],
"daily_cost": [
{
"cost": 2357.82,
"date": "2022-09-28"
},
{
"cost": 2296.15,
"date": "2022-09-29"
},
{
"cost": 1728.11,
"date": "2022-09-30"
},
{
"cost": 1956.63,
"date": "2022-10-01"
}
]
},
"results": [
{
"base_info": {
"impression": 131,
"cpm": 4.19,
"budget": 549.11,
"reach": 104,
"average_frequency": 1.26
},
"frequency_per_person": [
{
"percentage": 0.77,
"frequency": 1
},
{
"percentage": 0.21,
"frequency": 2
},
{
"percentage": 0.02,
"frequency": 3
}
],
"daily_cost": [
{
"cost": 152.83,
"date": "2022-09-28"
},
{
"cost": 148.31,
"date": "2022-09-29"
},
{
"cost": 140.64,
"date": "2022-09-30"
},
{
"cost": 107.33,
"date": "2022-10-01"
}
]
},
{
"base_info": {
"impression": 140,
"cpm": 4.21,
"budget": 589.73,
"reach": 111,
"average_frequency": 1.26
},
"frequency_per_person": [
{
"percentage": 0.76,
"frequency": 1
},
{
"percentage": 0.22,
"frequency": 2
},
{
"percentage": 0.02,
"frequency": 3
}
],
"daily_cost": [
{
"cost": 172.76,
"date": "2022-09-28"
},
{
"cost": 154.3,
"date": "2022-09-29"
},
{
"cost": 141.89,
"date": "2022-09-30"
},
{
"cost": 120.77,
"date": "2022-10-01"
}
]
},
{
"base_info": {
"impression": 150,
"cpm": 4.27,
"budget": 639.83,
"reach": 118,
"average_frequency": 1.27
},
"frequency_per_person": [
{
"percentage": 0.75,
"frequency": 1
},
{
"percentage": 0.23,
"frequency": 2
},
{
"percentage": 0.02,
"frequency": 3
}
],
"daily_cost": [
{
"cost": 174.2,
"date": "2022-09-28"
},
{
"cost": 174.44,
"date": "2022-09-29"
},
{
"cost": 152.61,
"date": "2022-09-30"
},
{
"cost": 138.58,
"date": "2022-10-01"
}
]
}
]
}
}
(/code)
- 或者您不设定固定预算、展示量或覆盖量预测广告库存, 那们可以在返回的results里选择和您期望值最近的预算、展示量或覆盖量预测值。
- 投放时间
目前,系统目前支持的库存预估最小单位为天。因此您需要在请求中将schedule_start_time设置为投放地时区的YYYY-MM-DD HH:00:00,schedule_end_time需要是投放地时区的YYYY-MM-DD HH:59:59。
示例: 假设您是 UTC-5 时区的广告主,并希望创建一个排期为 2020-11-03 到 2020-11-10 的覆盖和频次广告组,需要填写的参数为:
(code)
{
"schedule_start_time": "2020-11-03 05:00:00", # UTC+0 time
"schedule_end_time": "2020-11-11 04:59:59" # UTC+0 time
}
(/code)
注意
由于库存状态是实时变化的,库存预估结果的参考价值具有一定时效性。如果您的库存预定时间和查询时间间隔太久,可能由于系统库存不足/展示量&预算曲线变化而导致订单创建失败。
库存预估接口返回的展示量(impression)和覆盖量(reach)以1000为单位。若返回impression = 200, reach=140,真实的预估展示量为200*1000,覆盖人数为140*1000。
3. [可选] 创建一个展示量&预算或覆盖量&预算图表
根据库存预估接口返回的预算、展示量和覆盖量,您可以生成一条展示量&预算或覆盖量&预算曲线。
以下代码示例从返回的results中提取了预算和展示量的数值,生成了一条曲线。
(code example python)
import json
import numpy as np
import matplotlib.pyplot as plt
f = open('result.json')
data = json.load(f)
results = data['data']['results']
budget = []
impression = []
for result in results:
budget.append(result['base_info']['budget'])
impression.append(result['base_info']['impression'])
line = plt.plot(budget, impression)
plt.show()
f.close()
(/code);
4. 创建广告组
使用接口/adgroup/rf/create/创建覆盖和频次广告组。
- 受众定向:支持年龄、性别、语言、地域和操作系统定向受众人群。
- 版位:系统默认R&F版位为TikTok。您不需要在请求中指定这个字段。
- 排期(
schedule_start_time和schedule_end_time):- 覆盖和频次广告会在开始投放5分钟前锁定预算。若广告组创建时间距离投放地时间第二天 00:00 小于5分钟,您需要将开始日期选择范围设定为
[后天, 今天+90 天],否则请设置为[明天, 今天+90 天]。 - 系统目前支持的库存预估最小单位为天。因此您需要在请求中将
schedule_start_time设置为投放地时区的YYYY-MM-DD HH:00:00,schedule_end_time需要是投放地时区的YYYY-MM-DD HH:59:59。 schedule_start_time和schedule_end_time之间的时间间隔不超过90天。
- 覆盖和频次广告会在开始投放5分钟前锁定预算。若广告组创建时间距离投放地时间第二天 00:00 小于5分钟,您需要将开始日期选择范围设定为
示例: 假设您是 UTC-5 时区的广告主,并希望创建一个排期为 2020-11-03 到 2020-11-10 的覆盖和频次广告组,需要填写的参数为:
(code)
{
"schedule_start_time": "2020-11-03 05:00:00", # UTC+0 time
"schedule_end_time": "2020-11-11 04:59:59" # UTC+0 time
}
(/code)
-
预定方式
- 设置
rf_purchased_type为FIXED_SHOW,FIXED_REACH或FIXED_BUDGET,作为您的预定和购买方式。 -
根据/rf/inventory/estimate/返回的数据,指定
budget,purchased_impression和purchased_reach的数值。- 如果您在/rf/inventory/estimate/中指定了
rf_purchased_type,并传入了budget,purchased_impression或purchased_reach的固定值,那么您可以在base_info(位于default_result中)中查看对应的预估值。下一步是将这些值传入/adgroup/rf/create/中的budget、purchased_impression和purchased_reach字段。
- 如果您在/rf/inventory/estimate/中指定了
-
或者如果您没有在/rf/inventory/estimate/中指定
budget,purchased_impression或purchased_reach的固定值,那么您可以在返回的base_info(位于default_result中)中选择您想要的预算、展示量和覆盖量。下一步是将这些值传入/adgroup/rf/create/中的budget、purchased_impression和purchased_reach字段。 - 优化目标:广告组层级的优化目标(
optimization_goal)必须和推广系列层级的推广目标(objective_type)一致。 - 频次:使用
frequency和frequency_schedule决定用户看到您广告的频次。
- 设置
示例:
请求参数
(code)
{
"comment_disabled": false,
"share_disabled": false,
"optimization_goal": "REACH",
"rf_purchased_type": "FIXED_SHOW",
"purchased_reach": 520,
"purchased_impression": 800,
"video_download_disabled": false,
"age_groups": ["AGE_18_24"],
"operating_systems": ["IOS"],
"network_types": ["WIFI"],
"brand_safety_type": "NO_BRAND_SAFETY",
"external_action": "STANDARD_FEED",
"advertiser_id":{{advertise_id}},
"schedule_start_time":"2023-01-10 05:00:00",
"schedule_end_time":"2023-02-12 04:59:59",
"frequency":3,
"frequency_schedule":7,
"objective_type":"RF_REACH",
"location_ids":["6252001"],
"request_id":{{request_Id}},
"campaign_id":{{campaign_id}},
"rf_buy_type":"FIXED_SHOW",
"optimize_goal":"REACH",
"budget":4624.12,
"adgroup_name":"xxx",
"promotion_type":"APP_IOS",
"display_mode":"STANDARD",
"excluded_audience_ids": [
{{excluded_audience_ids}}
]
}
(/code)
5. 创建广告
使用/ad/create/接口创建覆盖和频次广告。
注意
覆盖和频次广告只支持视频类广告。