创建应用预注册广告
本文介绍了创建应用预注册广告的具体步骤。
简介
应用预注册是一种应用推广类型,用于鼓励用户在游戏发布前预注册,以便在发布当天自动下载应用。通过使用应用预注册,您可以在游戏发布前建立用户基础,宣传游戏,扩大知名度,为在 TikTok 平台上建立活跃的用户社区打下基础。
您可以使用推广系列API创建应用预注册广告。这将帮助您简化广告创建流程,提高推广系列的运营效率和管理规模。
前提条件
- 您已经拥有TikTok API for Business的使用权限。详见快速入门 - 具体步骤 。
- 若要创建应用预注册广告,您需要获取相关的权限。参阅API参考了解使用相关接口(包括“步骤”部分列出的接口)所需的权限。参阅更新应用权限范围了解如何设置权限。
- 应用预注册目前为白名单功能。如需使用此功能,请联系您的TikTok销售代表。
步骤
1. 创建推广系列
使用/campaign/create/接口创建一个推广系列。需确保满足以下要求:
| 设置 | 要求 | 参数 | 如何设置该参数 |
|---|---|---|---|
| 推广目标 | 应用推广 | objective_type |
APP_PROMOTION |
| 应用推广类型 | 应用预注册 | app_promotion_type |
APP_PREREGISTRATION |
| iOS 14专属推广系列 | 未启用 | campaign_type |
设置为REGULAR_CAMPAIGN或不传入 |
app_id |
不传入 | ||
campaign_app_profile_page_state |
不传入 | ||
| Smart+ 推广系列 | 未启用 若您想查看推广系列是否启用了 Smart+ 推广系列设置,可使用/campaign/get/返回的 is_smart_performance_campaign字段进行确认。 |
/ |
/ |
示例
请求
(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/campaign/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
"advertiser_id": "{{advertiser_id}}",
"objective_type": "APP_PROMOTION",
"app_promotion_type": "APP_PREREGISTRATION",
"campaign_name": "{{}}",
"campaign_type": "REGULAR_CAMPAIGN",
"budget_mode":"BUDGET_MODE_TOTAL",
"budget": {{budget}}
}'
(/code)
返回
(code curl http)
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"campaign_id": "{{campaign_id}}",
"app_promotion_type": "APP_PREREGISTRATION",
"is_new_structure": true,
"deep_bid_type": null,
"modify_time": "2023-07-24 02:55:32",
"advertiser_id": "{{advertiser_id}}",
"create_time": "2023-07-24 02:55:32",
"budget_mode": "BUDGET_MODE_TOTAL",
"roas_bid": 0,
"budget": {{budget}},
"campaign_app_profile_page_state": "UNSET",
"objective_type": "APP_PROMOTION",
"operation_status": "ENABLE",
"secondary_status": "CAMPAIGN_STATUS_ENABLE",
"objective": "LANDING_PAGE",
"campaign_type": "REGULAR_CAMPAIGN",
"is_smart_performance_campaign": false,
"campaign_name": "{{campaign_name}}"
}
}
(/code)
2. 创建广告组
使用/adgroup/create/接口创建一个广告组。需确保满足以下要求:
| 设置 {18%}| 要求{27%} | 参数 {20%}| 如何设置该参数 {35%}|
|---|---|---|---|
| 推广对象类型 <br>(优化位置) | 选择以下类型之一:<ul><li>网站</li><li>TikTok 即时体验页面</li></ul> | `promotion_type`<br> `promotion_website_type` | <ul><li>若要将推广类型设置为网站,需:<ul><li>将`promotion_type`设置为`WEBSITE`</li><li>将 `promotion_website_type` 设置为 `UNSET` 或不传入此字段</li></ul></li><li>若要将推广类型设置为 TikTok 即时体验页面,需:<ul><li>将`promotion_type` 设置为`WEBSITE`</li><li>将 `promotion_website_type` 设置为`TIKTOK_NATIVE_PAGE`</li></ul></li></ul> |
| App | 指定一个可用于预注册的 App | `app_id` | 传入合法值 |
| 优化事件 | 需选择优化事件<br><p><span style="color:darkred"><b>注意</b></span>: 若推广类型为TikTok 即时体验页面, 则仅唯一支持的优化事件为点击按钮。 | `optimization_event` | 需传入该参数<br><p><span style="color:darkred"><b>注意</b></span>: 若 `promotion_website_type` 设置为 `TIKTOK_NATIVE_PAGE`,则本字段仅支持设置为 `BUTTON`。 |
| Pixel | <ul><li>推广类型为网站时,需指定 Pixel。</li><li>推广类型为 TikTok 即时体验页面时,不支持指定 Pixel。</li></ul> | `pixel_id` | <ul><li>若 `promotion_website_type`设置为 `UNSET` 或未传入,则本字段必填。</li><li>若`promotion_website_type`设置为`TIKTOK_NATIVE_PAGE`,则不支持本字段。</li></ul> |
| 版位 | 推广类型为 TikTok 即时体验页面时,版位中需至少包含 TikTok 或 Pangle。 | `placement_type`<br>`placements` | 若 `promotion_website_type`设置为`TIKTOK_NATIVE_PAGE`,您可以:<ul><li>将 `placement_type`设置为 `PLACEMENT_TYPE_AUTOMATIC`,</li><li>或将`placement_type`设置为 `PLACEMENT_TYPE_NORMAL`,同时确保`placements`的值中至少包含`PLACEMENT_TIKTOK`或`PLACEMENT_PANGLE`。</li></ul> |
|优化目标| 仅支持转化 | `optimization_goal` | `CONVERT`|
|计费事件| 仅支持oCPM | `billing_event`| `OCPM`|
|出价前品牌安全筛选<br>(库存筛选)| 未启用| `brand_safety_type`|不传入或设置为 `NO_BRAND_SAFETY`|
|出价前品牌安全筛选| 未启用| `brand_safety_partner`|不传入|
|拆分对比测试|未启用<br><br>应用预注册广告组不支持传入 [/split_test/create/](https://ads.tiktok.com/marketing_api/docs?id=1742666471475201)用于创建拆分对比测试。|/|/|
示例 - 推广类型为网站
请求
(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/adgroup/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
"advertiser_id": "{{advertiser_id}}",
"campaign_id": "{{campaign_id}}",
"adgroup_name": "{{adgroup_name}}",
"app_id": "{{app_id}}",
"promotion_type": "WEBSITE",
"pixel_id": "{{pixel_id}}",
"optimization_event": "ON_WEB_DETAIL",
"placement_type": "PLACEMENT_TYPE_NORMAL",
"placements": ["PLACEMENT_TIKTOK","PLACEMENT_PANGLE"],
"location_ids": ["6252001"],
"budget_mode": "BUDGET_MODE_TOTAL",
"budget":{{budget}},
"schedule_type": "SCHEDULE_START_END",
"schedule_start_time": "{{schedule_start_time}}",
"schedule_end_time":"{{schedule_end_time}}",
"optimization_goal": "CONVERT",
"bid_type": "BID_TYPE_CUSTOM",
"conversion_bid_price": {{conversion_bid_price}},
"billing_event": "OCPM",
"pacing": "PACING_MODE_SMOOTH"
}'
(/code)
返回
(code curl http)
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"billing_event": "OCPM",
"device_price_ranges": null,
"excluded_audience_ids": [],
"share_disabled": false,
"package": "{{package}}",
"schedule_type": "SCHEDULE_START_END",
"age_groups": null,
"conversion_window": null,
"pixel_id": "{{pixel_id}}",
"rf_estimated_frequency": null,
"placements": [
"PLACEMENT_TIKTOK",
"PLACEMENT_PANGLE"
],
"create_time": "2023-07-24 03:03:27",
"adgroup_app_profile_page_state": null,
"interest_category_ids": [],
"schedule_end_time": "{{schedule_end_time}}",
"deep_bid_type": null,
"advertiser_id": "{{advertiser_id}}",
"ios14_targeting": "UNSET",
"adgroup_name": "{{adgroup_name}}",
"interest_keyword_ids": [],
"frequency": null,
"is_new_structure": true,
"secondary_optimization_event": null,
"app_download_url": "{{app_download_url}}",
"statistic_type": null,
"operation_status": "ENABLE",
"category_id": "0",
"budget_mode": "BUDGET_MODE_TOTAL",
"creative_material_mode": "CUSTOM",
"brand_safety_partner": null,
"bid_price": 0,
"frequency_schedule": null,
"gender": "GENDER_UNLIMITED",
"modify_time": "2023-07-24 03:03:27",
"ios14_quota_type": "UNOCCUPIED",
"app_id": "{{app_id}}",
"rf_purchased_type": null,
"deep_cpa_bid": 0,
"actions": [],
"audience_ids": [],
"secondary_status": "ADGROUP_STATUS_CREATE",
"search_result_enabled": true,
"purchased_reach": null,
"app_type": "APP_IOS",
"dayparting": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"comment_disabled": false,
"feed_type": null,
"isp_ids": [],
"schedule_infos": null,
"campaign_name": "{{campaign_name}}",
"pacing": "PACING_MODE_SMOOTH",
"scheduled_budget": 0,
"location_ids": [
"6252001"
],
"delivery_mode": null,
"video_download_disabled": true,
"inventory_filter_enabled": false,
"schedule_start_time": "{{schedule_start_time}}",
"network_types": [],
"category_exclusion_ids": [],
"optimization_goal": "CONVERT",
"skip_learning_phase": true,
"purchased_impression": null,
"bid_type": "BID_TYPE_CUSTOM",
"bid_display_mode": "CPMV",
"promotion_type": "WEBSITE",
"next_day_retention": null,
"languages": [],
"conversion_bid_price": 1,
"brand_safety_type": "NO_BRAND_SAFETY",
"rf_estimated_cpr": null,
"optimization_event": "ON_WEB_DETAIL",
"operating_systems": [],
"auto_targeting_enabled": false,
"placement_type": "PLACEMENT_TYPE_NORMAL",
"campaign_id": "{{campaign_id}}",
"is_hfss": false,
"promotion_website_type": "UNSET",
"adgroup_id": "{{adgroup_id}}",
"keywords": null,
"budget": {{budget}}
}
}
(/code)
示例 - 推广类型为 TikTok 即时体验页面
请求
(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/adgroup/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
"advertiser_id": "{{advertiser_id}}",
"campaign_id": "{{campaign_id}}",
"adgroup_name": "{{adgroup_name}}",
"app_id": "{{app_id}}",
"promotion_type": "WEBSITE",
"promotion_website_type":"TIKTOK_NATIVE_PAGE",
"optimization_event": "BUTTON",
"placement_type": "PLACEMENT_TYPE_NORMAL",
"placements": ["PLACEMENT_TIKTOK","PLACEMENT_PANGLE"],
"location_ids": ["6252001"],
"budget_mode": "BUDGET_MODE_TOTAL",
"budget":{{budget}},
"schedule_type": "SCHEDULE_START_END",
"schedule_start_time": "{{schedule_start_time}}",
"schedule_end_time":"{{schedule_end_time}}",
"optimization_goal": "CONVERT",
"bid_type": "BID_TYPE_NO_BID",
"billing_event": "OCPM",
"pacing": "PACING_MODE_SMOOTH"
}'
(/code)
返回
(code curl http)
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"optimization_event": "BUTTON",
"auto_targeting_enabled": false,
"keywords": null,
"secondary_optimization_event": null,
"age_groups": null,
"category_exclusion_ids": [],
"next_day_retention": null,
"promotion_website_type": "TIKTOK_NATIVE_PAGE",
"schedule_start_time": "{{schedule_start_time}}",
"create_time": "2023-07-24 03:23:17",
"deep_cpa_bid": 0,
"location_ids": [
"6252001"
],
"device_price_ranges": null,
"app_download_url": "{{app_download_url}}",
"audience_ids": [],
"search_result_enabled": true,
"scheduled_budget": 0,
"brand_safety_type": "NO_BRAND_SAFETY",
"share_disabled": false,
"dayparting": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
"promotion_type": "WEBSITE",
"frequency_schedule": null,
"purchased_reach": null,
"campaign_id": "{{campaign_id}}",
"interest_keyword_ids": [],
"schedule_end_time": "{{schedule_end_time}}",
"isp_ids": [],
"is_new_structure": true,
"pixel_id": null,
"feed_type": null,
"campaign_name": "{{campaign_name}}",
"bid_type": "BID_TYPE_NO_BID",
"languages": [],
"modify_time": "2023-07-24 03:23:17",
"optimization_goal": "CONVERT",
"package": "{{package}}",
"deep_bid_type": null,
"ios14_quota_type": "UNOCCUPIED",
"skip_learning_phase": true,
"excluded_audience_ids": [],
"category_id": "0",
"conversion_window": null,
"pacing": "PACING_MODE_SMOOTH",
"operating_systems": [],
"frequency": null,
"gender": "GENDER_UNLIMITED",
"bid_price": 0,
"placements": [
"PLACEMENT_TIKTOK",
"PLACEMENT_PANGLE"
],
"schedule_infos": null,
"placement_type": "PLACEMENT_TYPE_NORMAL",
"creative_material_mode": "CUSTOM",
"actions": [],
"delivery_mode": null,
"rf_estimated_cpr": null,
"app_id": "{{app_id}}",
"is_hfss": false,
"adgroup_app_profile_page_state": null,
"comment_disabled": false,
"bid_display_mode": "CPMV",
"operation_status": "ENABLE",
"inventory_filter_enabled": false,
"budget_mode": "BUDGET_MODE_TOTAL",
"rf_estimated_frequency": null,
"network_types": [],
"billing_event": "OCPM",
"conversion_bid_price": 0,
"schedule_type": "SCHEDULE_START_END",
"statistic_type": null,
"brand_safety_partner": null,
"video_download_disabled": true,
"interest_category_ids": [],
"budget": 40,
"app_type": "APP_IOS",
"advertiser_id": "{{advertiser_id}}",
"adgroup_id": "{{adgroup_id}}",
"purchased_impression": null,
"ios14_targeting": "UNSET",
"rf_purchased_type": null,
"secondary_status": "ADGROUP_STATUS_CREATE",
"adgroup_name": "{{adgroup_name}}"
}
}
(/code)
3. 创建广告
使用/ad/create/接口创建一个广告。需确保满足以下要求:
| 设置 {12%}| 要求{37%} | 参数 {15%}| 如何设置该参数 {36%}|
|---|---|---|---|
| 目标页面 | <ul><li>若广告组层级推广类型设置为网站,需指定落地页 URL 。</li><li>若广告组层级推广类型设置为 TikTok 即时体验页面,需指定 TikTok 即时体验页面 </li></ul> | `landing_page_url`<br>`page_id`<br>`creative_type` |<ul><li>若广告组层级`promotion_website_type`设置为 `UNSET` 或未传入,您需传入`landing_page_url`。</li><li>若广告组层级`promotion_website_type`设置为 `TIKTOK_NATIVE_PAGE`,您需通过`page_id`指定 TikTok 即时体验页面。<ul><li>同时您可省略`creative_type`参数,该参数将默认设置为`CUSTOM_INSTANT_PAGE`。您也可以将 `creative_type` 字段手动设置为`CUSTOM_INSTANT_PAGE`。</li></ul></li></ul> |
| 深度链接 | 未启用 | `deeplink` <br>`deeplink_type`| 不传入 |
示例 - 推广类型为网站
请求
(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/ad/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
"advertiser_id": "{{advertiser_id}}",
"adgroup_id": "{{adgroup_id}}",
"creatives": [{
"ad_name": "{{ad_name}}",
"identity_id":"{{identity_id}}",
"identity_type":"CUSTOMIZED_USER",
"ad_format": "SINGLE_VIDEO",
"video_id":"{{video_id}}",
"image_ids":["{{image_id}}"],
"ad_text": "{{ad_text}}",
"call_to_action": "SIGN_UP",
"landing_page_url":"{{landing_page_url}}"
}]
}'
(/code)
返回
(code curl http)
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"ad_ids": [
"{{ad_id}}"
],
"need_audit": false,
"creatives": [
{
"ad_name": "{{ad_name}}",
"call_to_action": "SIGN_UP",
"vast_moat_enabled": false,
"tracking_offline_event_set_ids": [
"{{tracking_offline_event_set_id}}",
"{{tracking_offline_event_set_id}}"
],
"playable_url": "",
"is_aco": false,
"app_name": "",
"identity_type": "CUSTOMIZED_USER",
"profile_image_url": "{{profile_image_url}}",
"creative_authorized": false,
"advertiser_id": "{{advertiser_id}}",
"display_name": "{{display_name}}",
"deeplink": "",
"operation_status": "ENABLE",
"page_id": null,
"ad_format": "SINGLE_VIDEO",
"brand_safety_postbid_partner": "UNSET",
"call_to_action_id": null,
"impression_tracking_url": null,
"adgroup_id": "{{adgroup_id}}",
"campaign_id": "{{campaign_id}}",
"create_time": "2023-07-24 03:07:21",
"identity_id": "{{identity_id}}",
"creative_type": null,
"landing_page_urls": null,
"is_new_structure": true,
"click_tracking_url": "{{click_tracking_url}}",
"tracking_pixel_id": {{tracking_pixel_id}},
"ad_texts": null,
"avatar_icon_web_uri": "{{avatar_icon_web_uri}}",
"video_id": "{{video_id}}",
"viewability_postbid_partner": "UNSET",
"modify_time": "2023-07-24 03:07:21",
"ad_id": "{{ad_id}}",
"ad_text": "{{ad_text}}",
"adgroup_name": "{{adgroup_name}}",
"campaign_name": "{{campaign_name}}",
"ad_ref_pixel_id": {{ad_ref_pixel_id}},
"optimization_event": "ON_WEB_DETAIL",
"music_id": null,
"deeplink_type": "NORMAL",
"viewability_vast_url": null,
"card_id": null,
"landing_page_url": "{{landing_page_url}}",
"brand_safety_vast_url": null,
"tracking_app_id": "{{tracking_app_id}}",
"image_ids": [
"{{image_ids}}"
]
}
]
}
}
(/code)
示例 - 推广类型为 TikTok 即时体验页面
请求
(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/ad/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
"advertiser_id": "{{advertiser_id}}",
"adgroup_id": "{{adgroup_id}}",
"creatives": [{
"ad_name": "{{ad_name}}",
"identity_id":"{{identity_id}}",
"identity_type":"CUSTOMIZED_USER",
"ad_format": "SINGLE_VIDEO",
"video_id":"{{video_id}}",
"image_ids":["{{image_id}}"],
"ad_text": "{{ad_text}}",
"call_to_action": "SIGN_UP",
"page_id": "{{page_id}}"
}]
}'
(/code)
返回
(code curl http)
{
"code": 0,
"message": "OK",
"request_id": "{{request_id}}",
"data": {
"ad_ids": [
"{{ad_id}}"
],
"need_audit": false,
"creatives": [
{
"brand_safety_vast_url": null,
"viewability_postbid_partner": "UNSET",
"tracking_app_id": "{{tracking_app_id}}",
"landing_page_urls": null,
"creative_type": "CUSTOM_INSTANT_PAGE",
"tracking_pixel_id": 0,
"playable_url": "",
"video_id": "{{video_id}}",
"is_aco": false,
"brand_safety_postbid_partner": "UNSET",
"page_id": {{page_id}},
"ad_name": "{{ad_name}}",
"click_tracking_url": "{{click_tracking_url}}",
"creative_authorized": false,
"ad_format": "SINGLE_VIDEO",
"landing_page_url": "",
"viewability_vast_url": null,
"app_name": "",
"optimization_event": "BUTTON",
"music_id": null,
"ad_text": "{{ad_text}}",
"ad_ref_pixel_id": {{ad_ref_pixel_id}},
"identity_id": "{{identity_id}}",
"modify_time": "2023-07-24 03:25:53",
"identity_type": "CUSTOMIZED_USER",
"call_to_action_id": null,
"impression_tracking_url": null,
"adgroup_name": "{{adgroup_name}}",
"call_to_action": "SIGN_UP",
"tracking_offline_event_set_ids": [
"{{tracking_offline_event_set_id}}",
"{{tracking_offline_event_set_id}}"
],
"image_ids": [
"{{image_id}}"
],
"deeplink": null,
"campaign_id": "{{campaign_id}}",
"ad_id": "{{ad_id}}",
"adgroup_id": "{{adgroup_id}}",
"avatar_icon_web_uri": "{{avatar_icon_web_uri}}",
"profile_image_url": "{{profile_image_url}}",
"vast_moat_enabled": false,
"create_time": "2023-07-24 03:25:53",
"is_new_structure": true,
"ad_texts": null,
"advertiser_id": "{{advertiser_id}}",
"campaign_name": "{{campaign_name}}",
"operation_status": "ENABLE",
"card_id": null,
"display_name": "{{display_name}}"
}
]
}
}
(/code)