← 返回目录
📁 Use Cases › Campaign creation › Create an Upgraded Smart+ Campaign › Create Upgraded Smart+ Lead Generation Campaigns

创建以 TikTok 私信作为优化位置的升级版 Smart+ 线索收集推广系列

本文介绍如何创建以 TikTok 私信作为优化位置的升级版 Smart+ 线索收集推广系列(也称为升级版 Smart+ TikTok 私信广告)。借助这类推广系列,广告受众能够通过点击广告中的“发消息”行动引导文案按钮,直接在 TikTok 应用中向你的已授权 TikTok 账号发送消息。

前提条件

已授权 TikTok 账号的所有者已将私信权限设置为潜在联系人和 TikTok 上的其他用户可请求发送私信,允许所有用户向该 TikTok 账号发送私信。若想了解如何配置该设置,请查看如何管理谁可以向你发送私信。

步骤

根据是否计划使用商品库,为升级版 Smart+ TikTok 私信广告选择合适的设置:非商品库解决方案或商品库解决方案。

非商品库解决方案

在非商品库解决方案中,升级版 Smart+ TikTok 私信广告不集成任何商品库。配置推广系列时,确保将 catalog_enabled 设置为 false。

创建推广系列

使用 /smart_plus/campaign/create/ 接口创建推广系列。

需确保满足以下要求。完整参数列表参见 /smart_plus/campaign/create/ 接口。

设置 要求 参数 如何配置参数
推广目标 线索收集 objective_type LEAD_GENERATION
iOS 14 专属推广系列 未启用 campaign_type REGULAR_CAMPAIGN 或不传入
app_id 不传入
campaign_app_profile_page_state 不传入
使用商品库 未启用 catalog_enabled false 或不传入
推广系列名称 传入合法名称 campaign_name 传入合法值
特殊广告类别
(可选)
未启用或已启用

注意:此设置仅支持在美国或加拿大注册的广告主使用。

special_industries 不传入或传入合法值
推广系列预算策略 使用以下任意类型:
  • 推广系列预算:你的预算将自动分配给各广告组并自动优化。所有广告组必须使用相同的预算和优化设置。
  • 广告组预算:每个广告组分别使用不同的预算和优化设置,从而精确控制各广告组的消耗。
budget_optimize_on
  • 要设置自动推广系列预算,请将此字段设置为 true 或不传入。
  • 要设置自定义广告组预算,请将此字段设置为 false。
推广系列预算模式
  • 如果推广系列预算策略为推广系列预算,传入以下任意模式:
    • 日预算
    • 总预算
  • 如果推广系列预算策略为广告组预算,传入以下任意模式,以确定所有广告组的预算限制:
    • 不限
    • 日预算
    • 总预算
budget_mode
  • 当 budget_optimize_on 为 true 或不传入时,使用以下任意值:
    • BUDGET_MODE_TOTAL
    • BUDGET_MODE_DYNAMIC_DAILY_BUDGET
  • 当 budget_optimize_on 为 false 时,使用以下任意值:
    • BUDGET_MODE_INFINITE
    • BUDGET_MODE_DAY
    • BUDGET_MODE_TOTAL
基于目标增加预算
(当推广系列预算策略为推广系列预算,且推广系列预算模式为日预算时)
选择以下任意选项:
  • 已启用
  • 未启用
budget_auto_adjust_strategy 当 budget_optimize_on 为 true 或不传入,且 budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET 时:
  • 要启用该设置,使用以下值:
    • AUTO_BUDGET_INCREASE。允许系统在广告效果出色且满足目标 CPA、第 0 天目标 ROAS 和预算要求时基于目标增加预算。如果你的预算利用率至少达到 90%,日预算将自动增加 20%,每天最多可增加 10 次。你的日预算将在每天重置为原来的日预算。
  • 要禁用该设置:
    • 不传入

    注意:基于目标增加预算目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

推广系列预算
  • 如果推广系列预算策略为推广系列预算:
    • 传入合法预算。
  • 如果推广系列预算策略为广告组预算:
    • 如果预算限制为不限:
      • 未启用
    • 如果预算限制为日预算或总预算:
      • 传入合法预算
budget
  • 当 budget_optimize_on 为 true 或不传入时:
    • 传入合法值。
  • 当 budget_optimize_on 为 false 时:
    • 如果 budget_mode 为 BUDGET_MODE_INFINITE:
      • 不传入
    • 如果 budget_mode 为 BUDGET_MODE_DAY 或 BUDGET_MODE_TOTAL:
      • 传入合法值
PO 号(可选) 已启用或未启用 po_number 传入合法值或不传入

示例

请求

(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/smart_plus/campaign/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "advertiser_id": "{{advertiser_id}}",
    "request_id": "{{request_id}}",
    "objective_type": "LEAD_GENERATION",
    "campaign_name": "{{campaign_name}}",
    "budget": {{budget}}
}'
(/code)

返回

(code curl http)
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "advertiser_id": "{{advertiser_id}}",
        "budget": {{budget}},
        "budget_mode": "BUDGET_MODE_DYNAMIC_DAILY_BUDGET",
        "budget_optimize_on": true,
        "campaign_id": "{{campaign_id}}",
        "campaign_name": "{{campaign_name}}",
        "catalog_enabled": false,
        "create_time": "{{create_time}}",
        "modify_time": "{{modify_time}}",
        "objective_type": "LEAD_GENERATION",
        "operation_status": "ENABLE",
        "secondary_status": "CAMPAIGN_STATUS_ENABLE",
        "smart_plus_adgroup_mode": "MULTIPLE"
    }
}
(/code)

创建广告组

使用 /smart_plus/adgroup/create/ 接口创建广告组。

需确保满足以下要求。完整参数列表参见 /smart_plus/adgroup/create/ 接口。

设置 要求 参数 如何配置参数
广告组名称 传入合法名称 adgroup_name 传入合法值
优化和出价
· 目标
使用以下任意类型:
  • 点击
    • 向最有可能点击的用户展示你的广告。
  • 对话
    • 向最有可能发起 TikTok 私信会话的用户展示你的广告。

注意:如果你选择推广系列预算模式,此设置必须在所有广告组中保持一致。

optimization_goal 使用以下任意值:
  • CLICK
  • CONVERSATION

注意:

  • 当推广系列层级的 budget_optimize_on 为 true 时,为同一推广系列内的所有广告组传入相同的 optimization_goal。
  • 如果 optimization_goal 为 CONVERSATION,忽略 optimization_event 或将 optimization_event 设置为 MESSAGE。
优化和出价
· 优化位置
TikTok 私信:通过 TikTok 私信收集线索,并与潜在客户建立联系

注意:如果你选择推广系列预算模式,此设置必须在同一推广系列内的所有广告组中保持一致。

promotion_type LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE

注意:当推广系列层级的 budget_optimize_on 为 true 时,为同一推广系列内的所有广告组传入相同的 promotion_type。

promotion_target_type 不传入
优化和出价
· 选择 TikTok 账号
(可选)
选择合法的 TikTok 账号

注意:在 TikTok 私信广告的广告组层级选择 TikTok 账号目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

identity_type 如果你已加入白名单,可以在 TikTok 私信广告的广告组层级选择 TikTok 账号,请使用以下任意值:
  • TT_USER
  • BC_AUTH_TT

  • 若想在 TikTok 私信广告中使用广告发布身份,需拥有该广告发布身份的私信权限。若想确认是否拥有这一权限,需调用 /identity/get/ 接口或 /identity/info/ 接口,并查看返回的 can_manage_message 是否为 true。
    • 如果返回的 can_manage_message 为 false 且 identity_type 为 TT_USER,可前往广告账号用户设置页面。在“个人信息”选项卡的“基本信息”版块,点击“修改权限”,修改关联的 TikTok 账号的权限。确保你拥有该 TikTok 账号的“读取并管理你的收件箱中的消息”权限。
    • 如果返回的 can_manage_message 为 false 且 identity_type 为 BC_AUTH_TT,你可以让商务中心管理员通过 /bc/asset/assign/ 接口,为你授予与该广告发布身份关联的 TikTok 账号的私信权限。将 asset_type 设置为 TT_ACCOUNT,并确保 tt_account_roles 值至少包含 POST 和 DIRECT_MESSAGE。

注意:在 TikTok 私信广告的广告组层级选择 TikTok 账号目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

identity_id 如果你已加入白名单,可以在 TikTok 私信广告的广告组层级选择 TikTok 账号,请传入合法值。

若想获取你的广告账号下的广告发布身份列表,需使用 /identity/get/ 接口。

注意:在 TikTok 私信广告的广告组层级选择 TikTok 账号目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

identity_authorized_bc_id 当 identity_type 为 BC_AUTH_TT 时,传入合法值
优化和出价
· 出价策略和(可选)目标 CPA
可采用以下任意出价策略:
  • 最大投放量。
  • 成本上限。你需要同时传入目标 CPA。

注意:

  • 出价策略必须在同一推广系列内的所有广告组中保持一致。
  • 如果你选择推广系列预算模式,目标 CPA(如传入)必须在所有广告组中保持一致。
  • 目标 CPA 出价策略仅支持采用日预算模式的推广系列或广告组。
bid_type
bid_price
conversion_bid_price
将 bid_type 设置为 BID_TYPE_CUSTOM 或 BID_TYPE_NO_BID。
  • 如果 optimization_goal 为 CLICK 且 bid_type 为 BID_TYPE_CUSTOM,请同时传入 bid_price。
  • 如果 optimization_goal 为 CONVERSATION 且 bid_type 为 BID_TYPE_CUSTOM,请同时传入 conversion_bid_price。

注意:

  • bid_type 必须在同一推广系列内的所有广告组中保持一致。
  • 当推广系列层级的 budget_optimize_on 为 true 时,bid_price 或 conversion_bid_price(如传入)应在同一推广系列内的所有广告组中保持一致。
  • 在以下任一场景中,你只能将 bid_type 设置为 BID_TYPE_CUSTOM:
    • 在推广系列层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
    • 在广告组层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
deep_bid_type
roas_bid
不传入
优化和出价
· 计费事件
  • 如果优化目标为点击,计费事件应为 CPC。
  • 如果优化目标为对话,计费事件应为 oCPM。
billing_event
  • 如果 optimization_goal 为 CLICK,将此字段设置为 CPC。
  • 如果 optimization_goal 为 CONVERSATION,将此字段设置为 OCPM。
优化和出价
· 投放速度
标准(默认) N/A 升级版 Smart+ 广告组默认设置为标准投放速度。
预算和排期
· 预算
  • 如果你选择推广系列预算模式:
    • 广告组预算会被禁用。推广系列层级预算将用作广告组预算。
  • 如果你选择广告组预算策略:
    • 如果广告组预算限制为不限或总预算,可使用以下任意广告组预算模式:
      • 总预算
      • 日预算
    • 如果广告组预算限制为日预算,可使用以下任意广告组预算模式:
      • 日预算

注意:广告组预算模式(如传入)必须在同一推广系列内的所有广告组中保持一致。

budget_mode
budget
  • 当推广系列层级的 budget_optimize_on 为 true 时,不支持 budget_mode 和 budget。
  • 当推广系列层级的 budget_optimize_on 为 false 且 budget_mode 为 BUDGET_MODE_INFINITE 或 BUDGET_MODE_TOTAL 时:
    • 将 budget_mode 设置为 BUDGET_MODE_TOTAL 或 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
    • 通过 budget 传入合法预算
  • 当推广系列层级的 budget_optimize_on 为 false 且 budget_mode 为 BUDGET_MODE_DAY 时:
    • 将 budget_mode 设置为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
    • 通过 budget 传入合法预算

注意:budget_mode(如传入)必须在同一推广系列内的所有广告组中保持一致。

预算和排期
· 基于目标增加预算(当出价策略为目标 CPA 时)
已启用或未启用

若想启用此设置,应满足以下条件:
  • 在推广系列层级:未启用 CBO。
  • 在广告组层级:
    • 广告组预算为日预算
    • 出价策略为目标 CPA
budget_auto_adjust_strategy 使用以下任意值:
  • AUTO_BUDGET_INCREASE:启用基于目标增加预算功能。允许系统在广告效果出色且满足目标 CPA、第 0 天目标 ROAS 和预算要求时自动增加预算。如果你的预算利用率至少达到 90%,日预算将自动增加 20%,每天最多可增加 10 次。你的日预算将在每天重置为原来的日预算。
  • UNSET:关闭基于目标增加预算功能。

如果满足以下所有条件,只能将此字段设置为 AUTO_BUDGET_INCREASE:
  • 在推广系列层级:budget_optimize_on 为 false。
  • 在广告组层级:
    • budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET。
    • bid_type 为 BID_TYPE_CUSTOM。

注意:基于目标增加预算目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

预算和排期
· 为每个广告组添加消耗目标
  · 最低日消耗
  • 如果你使用推广系列日预算,你可以启用或禁用此设置。
  • 如果你使用推广系列总预算或广告组预算,不支持此设置。
min_budget
  • 当推广系列层级的 budget_optimize_on 为 true 且 budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET 时,你可以通过这个字段传入合法值,或不传入。
  • 当推广系列层级的 budget_optimize_on 为 true 且 budget_mode 为 BUDGET_MODE_TOTAL 时,或当 budget_optimize_on 为 false 时,不支持此字段。
预算和排期
· 排期
使用以下任意类型:
  • 设置开始时间并持续投放广告组
  • 设置开始时间和结束时间

注意:在以下任意场景中,你只能选择“设置开始时间并持续投放广告组”:

  • 在推广系列层级,设置了推广系列日预算。
  • 在广告组层级,设置了广告组日预算。
schedule_type
schedule_start_time
schedule_end_time
  • 若想设置开始时间并持续投放广告组,将 schedule_type 设置为 SCHEDULE_FROM_NOW 并传入 schedule_start_time。请勿传入 schedule_end_time。
  • 若想在排定的开始时间和结束时间之间投放广告组,将 schedule_type 设置为 SCHEDULE_START_END 并传入 schedule_start_time 和 schedule_end_time。

注意:在以下任意场景中,你只能将 schedule_type 设置为 SCHEDULE_FROM_NOW:

  • 在推广系列层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
  • 在广告组层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
预算和排期
· 分时段
(可选)
使用以下任意类型:
  • 全天(默认)
  • 选择特定时段
dayparting 使用以下任意配置:
  • 传入全为 1 的值,或不传入此字段
  • 传入包含 0 的值以表示未投放
受众定向优化模式 使用以下任意模式:
  • 自动定向
    • 你可以使用自动定向来充分利用实时数据和机器学习,向最有可能与广告互动的受众定向投放广告。
  • 自定义定向
    • 你可以使用自定义定向设置,精确控制哪些受众能看到你的广告。这可能会限制广告投放并影响推广效果。

查看不同定向优化模式可用的定向设置文档,了解每种模式支持的定向设置。
targeting_optimization_mode 使用以下任意值:
  • AUTOMATIC
  • MANUAL

查看不同定向优化模式可用的定向设置文档,了解每种模式支持的定向设置。
广告位和品牌安全
· 广告位
TikTok placement_type PLACEMENT_TYPE_NORMAL
placements ["PLACEMENT_TIKTOK"]
广告位和品牌安全
· 子广告位
(广告位包含 TikTok 时选填)
不启用,或启用并带有以下选项:
  • PineDrama

注意:

  • 在广告组中使用 PineDrama 子广告位 (PINE_DRAMA) 目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

tiktok_subplacements 不传入,或传入以下值:
  • PINE_DRAMA

注意:

  • 在广告组中使用 PineDrama 子广告位 (PINE_DRAMA) 目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

广告位和品牌安全
· 品牌安全和适用性
这些设置仅应用于 TikTok 信息流广告。之前在品牌安全中心所做的任何账号层级的设置都将应用到推广系列。 N/A N/A
若想获取品牌安全中心的广告账号层级品牌安全和适用性设置,需使用 /tiktok_inventory_filters/get/ 接口。
若想配置或更新品牌安全中心的广告账号层级品牌安全和适用性设置,需使用 /tiktok_inventory_filters/update/ 接口。
广告位和品牌安全
· 用户评论
已启用或未启用 comment_disabled 传入合法值或不传入
广告位和品牌安全
· 允许下载视频
已启用或未启用 share_disabled 传入合法值或不传入
广告位和品牌安全
· 允许共享视频
已启用或未启用 video_download_disabled 传入合法值或不传入
广告位和品牌安全
· Pangle 媒体屏蔽列表
未启用 N/A N/A

示例

请求

(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/smart_plus/adgroup/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "advertiser_id": "{{advertiser_id}}",
    "campaign_id": "{{campaign_id}}",
    "request_id": "{{request_id}}",
    "adgroup_name": "{{adgroup_name}}",
    "optimization_goal": "CONVERSATION",
    "promotion_type": "LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE",
    "bid_type": "BID_TYPE_CUSTOM",
    "conversion_bid_price": {{conversion_bid_price}},
    "billing_event": "OCPM",
    "schedule_type": "SCHEDULE_START_END",
    "schedule_start_time": "{{schedule_start_time}}",
    "schedule_end_time": "{{schedule_end_time}}",
    "targeting_spec": {
        "location_ids": [
            "{{location_ids}}"
        ]
    },
    "placement_type": "PLACEMENT_TYPE_NORMAL",
    "placements": [
        "PLACEMENT_TIKTOK"
    ]
}'
(/code)

返回

(code curl http)
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "adgroup_id": "{{adgroup_id}}",
        "adgroup_name": "{{adgroup_name}}",
        "advertiser_id": "{{advertiser_id}}",
        "attribution_event_count": "ONCE",
        "bid_type": "BID_TYPE_CUSTOM",
        "billing_event": "OCPM",
        "budget": 0,
        "budget_mode": "BUDGET_MODE_INFINITE",
        "campaign_id": "{{campaign_id}}",
        "campaign_name": "{{campaign_name}}",
        "click_attribution_window": "SEVEN_DAYS",
        "comment_disabled": false,
        "conversion_bid_price": {{conversion_bid_price}},
        "create_time": "{{create_time}}",
        "dayparting": "{{dayparting}}",
        "engaged_view_attribution_window": "ONE_DAY",
        "incentive_offer_type": "COST_CAP_AND_MIN_ROAS",
        "min_budget": 0,
        "modify_time": "{{modify_time}}",
        "operation_status": "ENABLE",
        "optimization_event": "MESSAGE",
        "optimization_goal": "CONVERSATION",
        "pacing": "PACING_MODE_SMOOTH",
        "phone_info": {},
        "placement_type": "PLACEMENT_TYPE_NORMAL",
        "placements": [
            "PLACEMENT_TIKTOK"
        ],
        "promotion_type": "LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE",
        "schedule_end_time": "{{schedule_end_time}}",
        "schedule_start_time": "{{schedule_start_time}}",
        "schedule_type": "SCHEDULE_START_END",
        "search_result_enabled": false,
        "secondary_status": "ADGROUP_STATUS_CREATE",
        "share_disabled": false,
        "skip_learning_phase": true,
        "targeting_optimization_mode": "AUTOMATIC",
        "targeting_spec": {
            "actions": [],
            "age_groups": [
                "AGE_18_24",
                "AGE_25_34",
                "AGE_35_44",
                "AGE_45_54",
                "AGE_55_100"
            ],
            "brand_safety_type": "EXPANDED_INVENTORY",
            "gender": "GENDER_UNLIMITED",
            "location_ids": [
                "{{location_ids}}"
            ],
            "spc_audience_age": "OVER_EIGHTEEN",
            "spending_power": "ALL"
        },
        "video_download_disabled": false,
        "view_attribution_window": "ONE_DAY"
    }
}
(/code)

创建广告

使用 /smart_plus/ad/create/ 接口创建广告。

需确保满足以下要求。完整参数列表参见 /smart_plus/ad/create/ 接口。

设置 要求 参数 如何配置参数
广告名称
(可选)
默认情况下,系统将自动生成广告名称。
你可以通过传入合法的广告名称来自定义。
ad_name
  • 若想系统自动生成广告名称,需将此字段设置为 ""(空字符串)。
  • 若想自定义广告名称,需传入非空字符串值。
目标页面 TikTok 私信 page_list
landing_page_url_list
不传入
欢迎消息 已启用
在用户通过你的一个广告发起私信对话后,你的 TikTok 账号会自动向其发送一条问候消息。
auto_message_list 传入合法值。
创意素材
· 广告创意和广告文案
单个广告可添加 1-50 个广告创意,这些创意可包含以下类型:
  • 视频
  • TikTok 视频帖子
  • TikTok 照片帖子
  • 轮播

查看按广告发布身份和广告类型划分的广告创意组合文档,了解基于广告发布身份类型的可用广告创意组合。

注意:如果你的广告账号已加入白名单,可以在 TikTok 私信广告的广告组层级选择 TikTok 账号,请在广告组层级传入相同的广告发布身份信息。

ad_format 传入合法值
creative_list
video_info
image_info
music_info
ad_text_list
tiktok_item_id
通过 creative_list 传入 1-50 个广告创意。广告创意可以是以下任意类型:
  • 视频
  • TikTok 视频帖子
  • TikTok 照片帖子
  • 轮播

查看按广告发布身份和广告类型划分的广告创意组合文档,了解基于广告发布身份类型的可用广告创意组合的配置。

注意:如果你的广告账号已加入白名单,可以在 TikTok 私信广告的广告组层级选择 TikTok 账号,请在广告组层级传入广告发布身份信息(identity_id、identity_type 和 identity_authorized_bc_id [如适用])。

行动引导文案 发消息 call_to_action_id 不传入
call_to_action_list [{"call_to_action": "SEND_MESSAGE"}]
创新互动样式
(可选)
(如果广告创意包括视频或视频帖子)
未启用或已启用,最多包含一个以下类型的创新互动样式:
  • 展示卡片
interactive_add_on_list 不传入或传入以下创新互动样式类型的 ID:
  • 展示卡片

注意:

  • 如果 creative_list 包含视频创意(包括视频和 TikTok 视频帖子),你只能使用创新互动样式。

若想创建创新互动样式(创意素材包),需使用 /creative/portfolio/create/ 接口。
  • 查看卡片文档,了解如何获取展示卡片素材包 ID。
免责声明
(可选)
已启用或未启用 disclaimer 传入合法值或不传入
监测
· TikTok 事件监测
  · 应用事件
(可选)
已启用或未启用 tracking_app_id 传入合法值或不传入
监测
· 第三方监测设置
  · 展示监测 URL
(可选)
已启用或未启用 impression_tracking_url 传入合法值或不传入
监测
· 第三方监测设置
  · 点击监测 URL
(可选)
已启用或未启用 click_tracking_url 传入合法值或不传入

示例

请求

(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/smart_plus/ad/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "advertiser_id": "{{advertiser_id}}",
    "adgroup_id": "{{adgroup_id}}",
    "ad_name": "{{ad_name}}",
    "auto_message_list": [
        {
            "auto_message_id": "{{auto_message_id}}"
        }
    ],
    "creative_list": [
        {
            "creative_info": {
                "ad_format": "CAROUSEL_ADS",
                "image_info": [
                    {
                        "web_uri": "{{web_uri}}"
                    }
                ],
                "music_info": {
                    "music_id": "{{music_id}}"
                },
                "identity_type": "TT_USER",
                "identity_id": "{{identity_id}}"
            }
        },
        {
            "creative_info": {
                "ad_format": "SINGLE_VIDEO",
                "video_info": {
                    "video_id": "{{video_id}}"
                },
                "image_info": [
                    {
                        "web_uri": "{{web_uri}}"
                    }
                ],
                "identity_type": "TT_USER",
                "identity_id": "{{identity_id}}"
            }
        },
        {
            "creative_info": {
                "ad_format": "SINGLE_VIDEO",
                "tiktok_item_id": "{{tiktok_item_id}}",
                "identity_type": "TT_USER",
                "identity_id": "{{identity_id}}"
            }
        }
    ],
    "ad_text_list": [
        {
            "ad_text": "{{ad_text}}"
        },
        {
            "ad_text": "{{ad_text}}"
        },
        {
            "ad_text": "{{ad_text}}"
        },
        {
            "ad_text": "{{ad_text}}"
        },
        {
            "ad_text": "{{ad_text}}"
        }
    ],
    "call_to_action_list": [
        {
            "call_to_action": "SEND_MESSAGE"
        }
    ]
}'
(/code)

返回

(code curl http)
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "ad_configuration": {
            "phone_info": {},
            "tracking_info": {},
            "utm_params": []
        },
        "ad_name": "{{ad_name}}",
        "ad_text_list": [
            {
                "ad_text": "{{ad_text}}"
            },
            {
                "ad_text": "{{ad_text}}"
            },
            {
                "ad_text": "{{ad_text}}"
            },
            {
                "ad_text": "{{ad_text}}"
            },
            {
                "ad_text": "{{ad_text}}"
            }
        ],
        "adgroup_id": "{{adgroup_id}}",
        "adgroup_name": "{{adgroup_name}}",
        "advertiser_id": "{{advertiser_id}}",
        "auto_message_list": [
            {
                "auto_message_id": "{{auto_message_id}}"
            }
        ],
        "call_to_action_list": [
            {
                "call_to_action": "SEND_MESSAGE"
            }
        ],
        "campaign_id": "{{campaign_id}}",
        "campaign_name": "{{campaign_name}}",
        "create_time": "{{create_time}}",
        "creative_list": [
            {
                "ad_material_id": "{{ad_material_id}}",
                "creative_info": {
                    "ad_format": "SINGLE_VIDEO",
                    "identity_id": "{{identity_id}}",
                    "identity_type": "TT_USER",
                    "image_info": [
                        {
                            "web_uri": "{{web_uri}}"
                        }
                    ],
                    "material_name": "{{material_name}}",
                    "video_info": {
                        "file_name": "{{file_name}}",
                        "video_id": "{{video_id}}"
                    }
                },
                "material_operation_status": "ENABLE"
            },
            {
                "ad_material_id": "{{ad_material_id}}",
                "creative_info": {
                    "ad_format": "SINGLE_VIDEO",
                    "identity_id": "{{identity_id}}",
                    "identity_type": "TT_USER",
                    "tiktok_item_id": "{{tiktok_item_id}}"
                },
                "material_operation_status": "ENABLE"
            },
            {
                "ad_material_id": "{{ad_material_id}}",
                "creative_info": {
                    "ad_format": "CAROUSEL_ADS",
                    "identity_id": "{{identity_id}}",
                    "identity_type": "TT_USER",
                    "image_info": [
                        {
                            "web_uri": "{{web_uri}}"
                        }
                    ],
                    "material_name": "{{material_name}}",
                    "music_info": {
                        "music_id": "{{music_id}}"
                    }
                },
                "material_operation_status": "ENABLE"
            }
        ],
        "deeplink_list": [],
        "interactive_add_on_list": [],
        "landing_page_url_list": [],
        "modify_time": "{{modify_time}}",
        "operation_status": "ENABLE",
        "page_list": [],
        "secondary_status": "AD_STATUS_AUDIT",
        "smart_plus_ad_id": "{{smart_plus_ad_id}}"
    }
}
(/code)

商品库解决方案

在商品库解决方案中,升级版 Smart+ TikTok 私信广告与汽车库存商品库或汽车车型商品库集成。配置推广系列时,确保将 catalog_enabled 设置为 true。

使用商品库解决方案的前提条件

若想为升级版 Smart+ TikTok 私信广告使用商品库解决方案,需先在商务中心设置汽车库存商品库或汽车车型商品库。

设置商品库的步骤: 1. 使用 /catalog/create/ 接口创建汽车库存商品库或汽车车型商品库。 2. 使用 /catalog/product/upload/ 接口(JSON 结构)、/catalog/product/file/ 接口(CSV 文件模板)或 /catalog/feed/create/ 接口(在线数据流上传)将商品上传至商品库。 3. 查看商品处理结果。 - 对于CSV 文件和 JSON 结构,使用 /catalog/product/log/ 接口。 - 传入第 2 步获得的 feed_log_id。如果返回的 error_affected_products 字段不为空,查看问题详细信息,并回到第 2 步重新上传商品。 - 对于在线数据流,使用/catalog/feed/log/接口。 - 传入第 2 步获得的 feed_log_id。如果返回的 error_count 字段不为 0,查看在线数据流文件,并回到第 2 步重新上传商品。 4. (可选)使用 /catalog/set/create/ 接口创建汽车库存商品系列或汽车车型商品系列。
若想在广告层级从商品系列中选择商品,必须创建商品系列。否则可跳过这一步。 5. (可选)使用 /bc/member/invite/ 接口邀请成员加入商务中心并授予管理员权限。
你还可以选择要分配给受邀成员的 advertiser_role。 6. (可选)使用 /bc/asset/assign/ 接口向成员分享商品库,并授予商品库管理权限。
务必在 asset_type 字段中传入 CATALOG,在 catalog_role 字段中传入 ADMIN。

创建推广系列

使用 /smart_plus/campaign/create/ 接口创建推广系列。

需确保满足以下要求。完整参数列表参见 /smart_plus/campaign/create/ 接口。

设置 要求 参数 如何配置参数
推广目标 线索收集 objective_type LEAD_GENERATION
iOS 14 专属推广系列 未启用 campaign_type REGULAR_CAMPAIGN 或不传入
app_id 不传入
campaign_app_profile_page_state 不传入
使用商品库 已启用
若想创建不使用商品库的升级版 Smart+ TikTok 私信广告,请查看非商品库解决方案。
catalog_enabled true
推广系列名称 传入合法名称 campaign_name 传入合法值
特殊广告类别(可选) 未启用或已启用

注意:此设置仅支持在美国或加拿大注册的广告主使用。

special_industries 不传入或传入合法值
推广系列预算策略 使用以下任意类型:
  • 推广系列预算:你的预算将自动分配给各广告组并自动优化。所有广告组必须使用相同的预算和优化设置。
  • 广告组预算:每个广告组分别使用不同的预算和优化设置,从而精确控制各广告组的消耗。
budget_optimize_on
  • 要设置自动推广系列预算,请将此字段设置为 true 或不传入。
  • 要设置自定义广告组预算,请将此字段设置为 false。
推广系列预算模式
  • 如果推广系列预算策略为推广系列预算,传入以下任意模式:
    • 日预算
    • 总预算
  • 如果推广系列预算策略为广告组预算,传入以下任意模式,以确定所有广告组的预算限制:
    • 不限
    • 日预算
    • 总预算
budget_mode
  • 当 budget_optimize_on 为 true 或不传入时,使用以下任意值:
    • BUDGET_MODE_TOTAL
    • BUDGET_MODE_DYNAMIC_DAILY_BUDGET
  • 当 budget_optimize_on 为 false 时,使用以下任意值:
    • BUDGET_MODE_INFINITE
    • BUDGET_MODE_DAY
    • BUDGET_MODE_TOTAL
基于目标增加预算
(当推广系列预算策略为推广系列预算,且推广系列预算模式为日预算时)
选择以下任意选项:
  • 已启用
  • 未启用
budget_auto_adjust_strategy 当 budget_optimize_on 为 true 或不传入,且 budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET 时:
  • 要启用该设置,使用以下值:
    • AUTO_BUDGET_INCREASE。允许系统在广告效果出色且满足目标 CPA、第 0 天目标 ROAS 和预算要求时基于目标增加预算。如果你的预算利用率至少达到 90%,日预算将自动增加 20%,每天最多可增加 10 次。你的日预算将在每天重置为原来的日预算。
  • 要禁用该设置:
    • 不传入

    注意:基于目标增加预算目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

推广系列预算
  • 如果推广系列预算策略为推广系列预算:
    • 传入合法预算。
  • 如果推广系列预算策略为广告组预算:
    • 如果预算限制为不限:
      • 未启用
    • 如果预算限制为日预算或总预算:
      • 传入合法预算
budget
  • 当 budget_optimize_on 为 true 或不传入时:
    • 传入合法值。
  • 当 budget_optimize_on 为 false 时:
    • 如果 budget_mode 为 BUDGET_MODE_INFINITE:
      • 不传入
    • 如果 budget_mode 为 BUDGET_MODE_DAY 或 BUDGET_MODE_TOTAL:
      • 传入合法值
PO 号(可选) 已启用或未启用 po_number 传入合法值或不传入

示例

请求

(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/smart_plus/campaign/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "advertiser_id": "{{advertiser_id}}",
    "request_id": "{{request_id}}",
    "objective_type": "LEAD_GENERATION",
    "campaign_name": "{{campaign_name}}",
    "catalog_enabled": true,
    "budget_mode": "BUDGET_MODE_DYNAMIC_DAILY_BUDGET",
    "budget": {{budget}}
}'
(/code)

返回

(code curl http)
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "advertiser_id": "{{advertiser_id}}",
        "budget": 50.01,
        "budget_mode": "BUDGET_MODE_DYNAMIC_DAILY_BUDGET",
        "budget_optimize_on": true,
        "campaign_id": "{{campaign_id}}",
        "campaign_name": "{{campaign_name}}",
        "catalog_enabled": true,
        "create_time": "{{create_time}}",
        "is_promotional_campaign": false,
        "modify_time": "{{modify_time}}",
        "objective_type": "LEAD_GENERATION",
        "operation_status": "ENABLE",
        "secondary_status": "CAMPAIGN_STATUS_ENABLE",
        "smart_plus_adgroup_mode": "MULTIPLE"
    }
}
(/code)

创建广告组

使用 /smart_plus/adgroup/create/ 接口创建广告组。

需确保满足以下要求。完整参数列表参见 /smart_plus/adgroup/create/ 接口。

设置 要求 参数 如何配置参数
广告组名称 传入合法名称 adgroup_name 传入合法值
商品库 传入至少包含 1 个通过审核的商品的汽车库存商品库或汽车车型商品库 catalog_id
catalog_authorized_bc_id
传入合法值。

汽车库存商品库或汽车车型商品库 (catalog_id) 需至少包含 1 个通过审核的商品。可查看从 /catalog/overview/ 接口返回的 approved 值进行验证,该值应至少为 1。

如需了解如何创建汽车库存商品库或汽车车型商品库,请查看使用商品库解决方案的前提条件。
优化和出价
· 目标
使用以下任意类型:
  • 点击
    • 向最有可能点击的用户展示你的广告。
  • 对话
    • 向最有可能发起 TikTok 私信会话的用户展示你的广告。

注意:如果你选择推广系列预算模式,此设置必须在所有广告组中保持一致。

optimization_goal 使用以下任意值:
  • CLICK
  • CONVERSATION

注意:

  • 当推广系列层级的 budget_optimize_on 为 true 时,为同一推广系列内的所有广告组传入相同的 optimization_goal。
  • 如果 optimization_goal 为 CONVERSATION,忽略 optimization_event 或将 optimization_event 设置为 MESSAGE。

优化和出价
· 优化位置
TikTok 私信:通过 TikTok 私信收集线索,并与潜在客户建立联系

注意:如果你选择推广系列预算模式,此设置必须在同一推广系列内的所有广告组中保持一致。

promotion_type LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE

注意:当推广系列层级的 budget_optimize_on 为 true 时,为同一推广系列内的所有广告组传入相同的 promotion_type。

promotion_target_type 不传入
优化和出价
· 出价策略和(可选)目标 CPA
可采用以下任意出价策略:
  • 最大投放量。
  • 成本上限。你需要同时传入目标 CPA。

注意:

  • 出价策略必须在同一推广系列内的所有广告组中保持一致。
  • 如果你选择推广系列预算模式,目标 CPA(如传入)必须在所有广告组中保持一致。
  • 目标 CPA 出价策略仅支持采用日预算模式的推广系列或广告组。

bid_type
bid_price
conversion_bid_price
将 bid_type 设置为 BID_TYPE_CUSTOM 或 BID_TYPE_NO_BID。
  • 如果 optimization_goal 为 CLICK 且 bid_type 为 BID_TYPE_CUSTOM,请同时传入 bid_price。
  • 如果 optimization_goal 为 CONVERSATION 且 bid_type 为 BID_TYPE_CUSTOM,请同时传入 conversion_bid_price。

注意:

  • bid_type 必须在同一推广系列内的所有广告组中保持一致。
  • 当推广系列层级的 budget_optimize_on 为 true 时,bid_price 或 conversion_bid_price(如传入)应在同一推广系列内的所有广告组中保持一致。
  • 在以下任一场景中,你只能将 bid_type 设置为 BID_TYPE_CUSTOM:
    • 在推广系列层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
    • 在广告组层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
deep_bid_type
roas_bid
不传入
优化和出价
· 计费事件
  • 如果优化目标为点击,计费事件应为 CPC。
  • 如果优化目标为对话,计费事件应为 oCPM。
billing_event
  • 如果 optimization_goal 为 CLICK,将此字段设置为 CPC。
  • 如果 optimization_goal 为 CONVERSATION,将此字段设置为 OCPM。
优化和出价
· 投放速度
标准(默认) N/A 升级版 Smart+ 广告组默认设置为标准投放速度。
预算和排期
· 预算
  • 如果你选择推广系列预算模式:
    • 广告组预算会被禁用。推广系列层级预算将用作广告组预算。
  • 如果你选择广告组预算策略:
    • 如果广告组预算限制为不限或总预算,可使用以下任意广告组预算模式:
      • 总预算
      • 日预算
    • 如果广告组预算限制为日预算,可使用以下任意广告组预算模式:
      • 日预算

注意:广告组预算模式(如传入)必须在同一推广系列内的所有广告组中保持一致。

budget_mode
budget
  • 当推广系列层级的 budget_optimize_on 为 true 时,不支持 budget_mode 和 budget。
  • 当推广系列层级的 budget_optimize_on 为 false 且 budget_mode 为 BUDGET_MODE_INFINITE 或 BUDGET_MODE_TOTAL 时:
    • 将 budget_mode 设置为 BUDGET_MODE_TOTAL 或 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
    • 通过 budget 传入合法预算
  • 当推广系列层级的 budget_optimize_on 为 false 且 budget_mode 为 BUDGET_MODE_DAY 时:
    • 将 budget_mode 设置为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
    • 通过 budget 传入合法预算

注意:budget_mode(如传入)必须在同一推广系列内的所有广告组中保持一致。

预算和排期
· 基于目标增加预算(当出价策略为目标 CPA 时)
已启用或未启用

若想启用此设置,应满足以下条件:
  • 在推广系列层级:未启用 CBO。
  • 在广告组层级:
    • 广告组预算为日预算
    • 出价策略为目标 CPA
budget_auto_adjust_strategy 使用以下任意值:
  • AUTO_BUDGET_INCREASE:启用基于目标增加预算功能。允许系统在广告效果出色且满足目标 CPA、第 0 天目标 ROAS 和预算要求时自动增加预算。如果你的预算利用率至少达到 90%,日预算将自动增加 20%,每天最多可增加 10 次。你的日预算将在每天重置为原来的日预算。
  • UNSET:关闭基于目标增加预算功能。

如果满足以下所有条件,只能将此字段设置为 AUTO_BUDGET_INCREASE:
  • 在推广系列层级:budget_optimize_on 为 false。
  • 在广告组层级:
    • budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET。
    • bid_type 为 BID_TYPE_CUSTOM。

注意:基于目标增加预算目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

预算和排期
· 为每个广告组添加消耗目标
  · 最低日消耗
  • 当使用推广系列日预算时:
    • 如果出价策略为最大投放量(最大量),你可以启用或禁用此设置。
    • 如果出价策略为目标 CPA 或目标 ROAS,不支持此设置。
  • 如果你使用推广系列总预算或广告组预算,不支持此设置。
min_budget
  • 当推广系列层级的 budget_optimize_on 为 true 且 budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET 时:
    • 当广告组层级的 bid_type 为 BID_TYPE_NO_BID 时,你可以通过这个字段传入合法值,或不传入。
    • 当广告组层级的 bid_type 为 BID_TYPE_CUSTOM 或 deep_bid_type 为 VO_HIGHEST_VALUE 时,不支持此字段。
  • 当推广系列层级的 budget_optimize_on 为 true 且 budget_mode 为 BUDGET_MODE_TOTAL 时,或当 budget_optimize_on 为 false 时,不支持此字段。
预算和排期
· 排期
使用以下任意类型:
  • 设置开始时间并持续投放广告组
  • 设置开始时间和结束时间

注意:在以下任意场景中,你只能选择“设置开始时间并持续投放广告组”:

  • 在推广系列层级,设置了推广系列日预算。
  • 在广告组层级,设置了广告组日预算。

schedule_type
schedule_start_time
schedule_end_time
  • 若想设置开始时间并持续投放广告组,将 schedule_type 设置为 SCHEDULE_FROM_NOW 并传入 schedule_start_time。请勿传入 schedule_end_time。
  • 若想在排定的开始时间和结束时间之间投放广告组,将 schedule_type 设置为 SCHEDULE_START_END 并传入 schedule_start_time 和 schedule_end_time。

注意:在以下任意场景中,你只能将 schedule_type 设置为 SCHEDULE_FROM_NOW:

  • 在推广系列层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
  • 在广告组层级,budget_mode 为 BUDGET_MODE_DYNAMIC_DAILY_BUDGET
预算和排期
· 分时段(可选)
使用以下任意类型:
  • 全天(默认)
  • 选择特定时段
dayparting 使用以下任意配置:
  • 传入全为 1 的值,或不传入此字段
  • 传入包含 0 的值以表示未投放
受众定向优化模式 使用以下任意模式:
  • 自动定向
    • 你可以使用自动定向来充分利用实时数据和机器学习,向最有可能与广告互动的受众定向投放广告。
  • 自定义定向
    • 你可以使用自定义定向设置,精确控制哪些受众能看到你的广告。这可能会限制广告投放并影响推广效果。
查看不同定向优化模式可用的定向设置文档,了解每种模式支持的定向设置。
targeting_optimization_mode 使用以下任意值:
  • AUTOMATIC
  • MANUAL
查看不同定向优化模式可用的定向设置文档,了解每种模式支持的定向设置。
广告位和品牌安全
· 广告位
TikTok placement_type PLACEMENT_TYPE_NORMAL
placements ["PLACEMENT_TIKTOK"]
广告位和品牌安全
· 子广告位
(广告位包含 TikTok 时选填)
不启用,或启用并带有以下选项:
  • PineDrama

注意:

  • 在广告组中使用 PineDrama 子广告位 (PINE_DRAMA) 目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

tiktok_subplacements 不传入,或传入以下值:
  • PINE_DRAMA

注意:

  • 在广告组中使用 PineDrama 子广告位 (PINE_DRAMA) 目前为白名单功能。如需使用此功能,请联系你的 TikTok 销售代表。

广告位和品牌安全
· 品牌安全和适用性
这些设置仅应用于 TikTok 信息流广告和搜索广告。之前在品牌安全中心所做的任何账号层级的设置都将应用到推广系列。 N/A N/A
若想获取品牌安全中心的广告账号层级品牌安全和适用性设置,需使用 /tiktok_inventory_filters/get/ 接口。
若想配置或更新品牌安全中心的广告账号层级品牌安全和适用性设置,需使用 /tiktok_inventory_filters/update/ 接口。
广告位和品牌安全
· 用户评论
已启用或未启用 comment_disabled 传入合法值或不传入
广告位和品牌安全
· 允许下载视频
已启用或未启用 share_disabled 传入合法值或不传入
广告位和品牌安全
· 允许共享视频
已启用或未启用 video_download_disabled 传入合法值或不传入
广告位和品牌安全
· Pangle 媒体屏蔽列表
未启用 N/A N/A

示例

请求

(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/smart_plus/adgroup/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "advertiser_id": "{{advertiser_id}}",
    "campaign_id": "{{campaign_id}}",
    "request_id": "{{request_id}}",
    "adgroup_name": "{{adgroup_name}}",
    "catalog_id": "{{catalog_id}}",
    "catalog_authorized_bc_id": "{{catalog_authorized_bc_id}}",
    "optimization_goal": "CONVERSATION",
    "promotion_type": "LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE",
    "bid_type": "BID_TYPE_CUSTOM",
    "conversion_bid_price": {{conversion_bid_price}},
    "billing_event": "OCPM",
    "schedule_type": "SCHEDULE_START_END",
    "schedule_start_time": "{{schedule_start_time}}",
    "schedule_end_time": "{{schedule_end_time}}",
    "targeting_spec": {
        "location_ids": [
            "6252001"
        ]
    },
    "placement_type": "PLACEMENT_TYPE_NORMAL",
    "placements": [
        "PLACEMENT_TIKTOK"
    ]
}'
(/code)
(code curl http)
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "adgroup_id": "{{adgroup_id}}",
        "adgroup_name": "{{adgroup_name}}",
        "advertiser_id": "{{advertiser_id}}",
        "attribution_event_count": "ONCE",
        "bid_type": "BID_TYPE_CUSTOM",
        "billing_event": "OCPM",
        "budget": 0,
        "budget_mode": "BUDGET_MODE_INFINITE",
        "campaign_id": "{{campaign_id}}",
        "campaign_name": "{{campaign_name}}",
        "catalog_authorized_bc_id": "{{catalog_authorized_bc_id}}",
        "catalog_id": "{{catalog_id}}",
        "click_attribution_window": "SEVEN_DAYS",
        "comment_disabled": false,
        "conversion_bid_price": {{conversion_bid_price}},
        "create_time": "{{create_time}}",
        "dayparting": "111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111111",
        "engaged_view_attribution_window": "ONE_DAY",
        "is_hfss": false,
        "is_lhf_compliance": false,
        "min_budget": 0,
        "modify_time": "{{modify_time}}",
        "operation_status": "ENABLE",
        "optimization_event": "MESSAGE",
        "optimization_goal": "CONVERSATION",
        "pacing": "PACING_MODE_SMOOTH",
        "phone_info": {},
        "placement_type": "PLACEMENT_TYPE_NORMAL",
        "placements": [
            "PLACEMENT_TIKTOK"
        ],
        "promotion_type": "LEAD_GEN_CLICK_TO_TT_DIRECT_MESSAGE",
        "schedule_end_time": "{{schedule_end_time}}",
        "schedule_start_time": "{{schedule_start_time}}",
        "schedule_type": "SCHEDULE_START_END",
        "search_result_enabled": false,
        "secondary_status": "ADGROUP_STATUS_CREATE",
        "share_disabled": false,
        "skip_learning_phase": true,
        "targeting_optimization_mode": "AUTOMATIC",
        "targeting_spec": {
            "actions": [],
            "age_groups": [
                "AGE_18_24",
                "AGE_25_34",
                "AGE_35_44",
                "AGE_45_54",
                "AGE_55_100"
            ],
            "brand_safety_type": "EXPANDED_INVENTORY",
            "gender": "GENDER_UNLIMITED",
            "location_ids": [
                "6252001"
            ],
            "spc_audience_age": "OVER_EIGHTEEN",
            "spending_power": "ALL"
        },
        "video_download_disabled": false,
        "view_attribution_window": "ONE_DAY"
    }
}
(/code)

创建广告

使用 /smart_plus/ad/create/ 接口创建广告。

需确保满足以下要求。完整参数列表参见 /smart_plus/ad/create/ 接口。

设置 要求 参数 如何配置参数
广告名称(可选) 默认情况下,系统将自动生成广告名称。
你可以通过传入合法的广告名称来自定义。
ad_name
  • 若想系统自动生成广告名称,需将此字段设置为 ""(空字符串)。
  • 若想自定义广告名称,需传入非空字符串值。
商品数据源详细信息
· 商品
选择以下任意选项:
  • 所有商品
  • 商品系列
  • 特定商品,最多 20 个商品
product_specific_type
product_set_id
product_ids
将 product_specific_type 设置为 ALL、PRODUCT_SET 或 CUSTOMIZED_PRODUCTS。
  • 如果将 product_specific_type 设置为 ALL,无需传入 product_set_id 和 product_ids。
  • 如果将 product_specific_type 设置为 PRODUCT_SET,需传入 product_set_id,无需传入 product_ids。
  • 如果将 product_specific_type 设置为 CUSTOMIZED_PRODUCTS,需通过 product_ids 传入最多 20 个可用商品,无需传入 product_set_id。
    • 若想获取每个汽车库存商品库或汽车车型商品库商品的 ID (product_id),需使用 /catalog/product/get/ 接口。
广告发布身份
· 选择 TikTok 账号
选择合法的 TikTok 账号 identity_type 使用以下任意值:
  • TT_USER
  • BC_AUTH_TT
若想在 TikTok 私信广告中使用广告发布身份,需拥有该广告发布身份的私信权限。若想确认是否拥有这一权限,需调用 /identity/get/ 接口或 /identity/info/ 接口,并查看返回的 can_manage_message 是否为 true。
  • 如果返回的 can_manage_message 为 false 且 identity_type 为 TT_USER,可前往广告账号用户设置页面。在“个人信息”选项卡的“基本信息”版块,点击“修改权限”,修改关联的 TikTok 账号的权限。确保你拥有该 TikTok 账号的“读取并管理你的收件箱中的消息”权限。
  • 如果返回的 can_manage_message 为 false 且 identity_type 为 BC_AUTH_TT,你可以让商务中心管理员通过 /bc/asset/assign/ 接口,为你授予与该广告发布身份关联的 TikTok 账号的私信权限。将 asset_type 设置为 TT_ACCOUNT,并确保 tt_account_roles 值至少包含 POST 和 DIRECT_MESSAGE。
identity_id 传入合法值。
若想获取你的广告账号下的广告发布身份列表,需使用 /identity/get/ 接口。
identity_authorized_bc_id 当 identity_type 为 BC_AUTH_TT 时,传入合法值
目标页面 TikTok 私信 page_list
landing_page_url_list
不传入
消息模板
(欢迎消息)
已启用
在用户通过你的一个广告发起私信对话后,你的 TikTok 账号会自动向其发送一条问候消息。
auto_message_list 传入合法值。
创意素材
· 从商品库创建商品库轮播
选择以下任意选项:
  • 已启用(推荐)
  • 未启用
    • 你商品库中的图片和视频将不会用于为你的商品自动生成经过优化的、所有样式的商品库广告。系统将使用你传入的内容自动创建单视频广告。
    • 要求:
      • 传入共 1-50 个商品,可以是单个视频、视频帖子或两者混合:
        • 对于 Spark Ads 提取,传入视频帖子。
        • 对于 Spark Ads 推送,传入带封面图片的视频。
      • 传入 1-5 个广告文案

注意:不使用商品库作为创意,可能会限制潜在的广告效果。

catalog_creative_toggle
video_info
image_info
music_info
ad_text_list
ad_format

注意:当 catalog_creative_toggle 为 true 时,image_info 和 music_info 为必填字段。

  • 若想禁用自动选择商品库创意,将 catalog_creative_toggle 设置为 false:
    • 将 ad_format 设置为 SINGLE_VIDEO,并传入 1-5 个广告文案 (ad_text_list)
    • 传入共 1-50 个商品,可以是单个视频、视频帖子或两者混合:
      • 若想从 TikTok 账号提取现有 TikTok 帖子以创建 Spark Ads,需通过 tiktok_item_id 传入视频帖子
      • 若想将视频推送到 TikTok 账号以创建 Spark Ads,需通过 video_info 传入 1-50 个视频,并通过 image_info 传入封面图片
创意素材
· 商品信息
(对于汽车库存商品库,此为选填字段)
  • 如果已在广告组层级传入汽车库存商品库,并已启用“从商品库创建商品库轮播”设置:
    • 未启用或已启用最多两种商品属性,在广告中与车辆标题一起显示:
      • 经销商名称
      • 品牌
      • 车型
      • 年份
      • 里程
      • 外观颜色
      • 内饰等级
      • 城市
      • 车辆状态
      • 价格
      • 促销价
      所选商品详情将自动从你的商品库添加到你的广告中,以实现最佳成效。
      默认情况下,广告中仅显示每个商品的标题
  • 如果未启用“从商品库创建商品库轮播”设置:
    • 未启用
product_display_field_list
  • 如果已在广告组层级通过 catalog_id 传入汽车库存商品库,且 catalog_creative_toggle 设置为 true:
    • 不传入或从以下值中传入最多两个属性:
      • DEALER_NAME
      • MAKE
      • MODEL
      • YEAR
      • MILEAGE
      • EXTERIOR_COLOR
      • TRIM
      • ADDRESS_CITY
      • VEHICLE_STATE
      • PRICE
      • SALE_PRICE
      车辆标题将在广告中与传入的属性一起自动显示。
      例如,如果你将此字段设置为 ["MAKE","PRICE"],车辆的标题、品牌和价格将在你的广告中显示。
      默认情况下,广告中仅显示每个商品的标题。
  • 当 catalog_creative_toggle 设置为 false 时:
    • 不传入
创意素材
· 片尾卡片
  • 如果启用“从商品库创建商品库轮播”设置:
    • 已启用。选择要在轮播中展示的最后一张图片,吸引受众浏览全部库存。
  • 如果未启用“从商品库创建商品库轮播”设置:
    • 未启用
-
image_info
  • 当 catalog_creative_toggle 为 true 时:
    • 传入 1 张片尾卡片。片尾卡片将在轮播结束时展示。
      若想获取图片 ID,需使用 /file/image/ad/upload/ 接口或 /file/image/ad/search/ 接口。
      图片应同时满足以下要求:
      • 规格:
        • 文件类型:JPG、JPEG 或 PNG。
        • 图片分辨率:不超过 1242 x 2340 px 或 2340 x 1242 px。
        • 宽高比:不超过 9:20 或 20:9。
        • 文件大小:小于 50 MB。
      • 从 /file/image/ad/search/ 接口返回的图片参数 is_carousel_usable 的值为 true。
  • 当 catalog_creative_toggle 设置为 false 时:
    • 不传入
创意素材
· 片尾卡片的行动引导文案
  • 如果启用“从商品库创建商品库轮播”设置:
    • 启用以下任一选项:
      • 搜索库存(推荐)
      • 查看详情
      • 去逛逛
      • 立即注册
      • 联系我们
      • 立即预约
      • 阅读更多
      • 立即查看
      • 立即下单
      • 发消息
  • 如果未启用“从商品库创建商品库轮播”设置:
    • 未启用
end_card_cta
  • 当 catalog_creative_toggle 为 true 时:
    • 启用以下任意值:
      • SEARCH_INVENTORY(推荐)
      • LEARN_MORE
      • SHOP_NOW
      • SIGN_UP
      • CONTACT_US
      • BOOK_NOW
      • READ_MORE
      • VIEW_MORE
      • ORDER_NOW
      • SEND_MESSAGE
  • 当 catalog_creative_toggle 设置为 false 时:
    • 不传入
创意素材
· 免责声明
(对于汽车车型商品库,此为选填字段)
  • 如果已在广告组层级传入汽车车型商品库,并已启用“从商品库创建商品库轮播”设置:
    • 未启用或已启用以下任意选项:
      • 碳排放免责声明
      • 折扣或优惠免责声明

      注意:使用任何类型的免责声明前,确保已为汽车车型商品库中的每个车辆传入必要的免责声明详细信息。

      • 使用碳排放免责声明时,确保针对每个车辆提供以下详细信息:
        • 碳排放免责声明
        • 碳排放免责声明 URL
        • 碳排放免责声明摘要
        • 碳排放图片
      • 使用折扣或优惠免责声明时,确保针对每个车辆提供以下详细信息:
        • 优惠免责声明
        • 优惠免责声明 URL
  • 如果未启用“从商品库创建商品库轮播”设置:
    • 未启用
auto_disclaimer_types
  • 如果已在广告组层级通过 catalog_id 传入汽车车型商品库,且 catalog_creative_toggle 设置为 true:
    • 未启用或已启用以下任意值:
      • EMISSION
      • DISCOUNT

      注意:使用任何类型的免责声明前,确保已为汽车车型商品库中的每个车辆传入必要的免责声明详细信息。

      • 使用碳排放免责声明时,确保针对每个车辆提供以下详细信息:
        • emission_disclaimer
        • emission_disclaimer_url
        • emission_overlay_disclaimer
        • emission_image_link
      • 使用折扣或优惠免责声明时,确保针对每个车辆提供以下详细信息:
        • offer_disclaimer
        • offer_disclaimer_url
      若想获取汽车车型商品库中车辆的属性,需使用 /catalog/product/get/ 接口。
      若想更新汽车车型商品库中车辆的属性,需使用 /catalog/product/update/ 接口。

  • 当 catalog_creative_toggle 设置为 false 时:
    • 不传入
行动引导文案 发消息 call_to_action_id 不传入
call_to_action_list [{"call_to_action": "SEND_MESSAGE"}]
创新互动样式
(可选)
未启用或已启用库存卡片

已启用创新互动样式时:
  • 对于单视频广告样式的汽车库存广告或汽车车型广告,自动生成的车辆卡片将在视频播放 2 秒后展示。如果受众继续滑动车辆卡片,库存卡片将在视频结尾展示。
  • 车辆卡片展示商品库中定义的以下车辆属性,以及将用户跳转到第三方落地页的 CTA 按钮。
    • 主图片
    • 标题
    • 车辆状态
    • 里程
    • 价格
  • 库存卡片包括:
    • 自定义图片
    • 自定义描述
    • 预估商品库规模
    • “搜索库存”CTA 按钮,可将受众跳转到自动生成的即时体验商品页
interactive_add_on_list 不传入或传入库存卡片素材包 ID。
若想获取库存卡片素材包 ID (creative_portfolio_id),查看卡片文档。

注意:你可以将汽车库存广告或汽车车型广告中的库存卡片素材包更新为其他库存卡片素材包。

已启用创新互动样式时:
  • 车辆卡片展示 CTA 按钮以及车辆的以下属性:
    • image_url
    • title
    • state_of_vehicle
    • mileage
    • price
  • 若想获取车辆属性,需使用 /catalog/product/get/ 接口。
  • 库存卡片包含 CTA 按钮、预估商品库规模以及库存卡片的以下属性:
    • image_id
    • description
  • 若想获取库存卡片的详细信息,需使用 /creative/portfolio/list/ 接口。
监测
· TikTok 事件监测
  · 应用事件(可选)
已启用或未启用 tracking_app_id 传入合法值或不传入
监测
· 第三方监测设置
  · 展示监测 URL(可选)
已启用或未启用 impression_tracking_url 传入合法值或不传入
监测
· 第三方监测设置
  · 点击监测 URL(可选)
已启用或未启用 click_tracking_url 传入合法值或不传入

自定义适用于升级版 Smart+ TikTok 私信广告的商品库解决方案中的广告样式组合

如果在适用于升级版 Smart+ TikTok 私信广告的商品库解决方案中启用自动选择商品库创意(catalog_creative_toggle 为 true),系统将使用两种可能的样式组合自动创建广告:商品库轮播和单视频广告。

下表列出了可用的广告样式组合。

商品库轮播样式是否可用? 单视频广告样式是否可用? 你的广告的广告样式组合
✅ ❌ 仅商品库轮播
✅ ✅ 商品库轮播和单视频广告

为确保某些广告样式可在适用于升级版 Smart+ TikTok 私信广告的商品库解决方案中使用,请遵循下表中的说明。

广告样式 广告样式描述 如何确保广告样式可用 如何配置参数
商品库轮播 以幻灯片样式展示 2-20 个商品。此样式将同时展示你商品库中最多 20 个商品的图片。 商品库需至少包含两个支持轮播广告的商品。 确保商品库 (catalog_id) 至少包含两个通过审核的商品。可查看从 /catalog/overview/ 接口返回的 approved 值进行验证,该值应至少为 2。
  • 轮播图片选择范围:系统将动态选择商品库 (catalog_id) 中商品的图片,作为正在投放的商品库轮播广告中展示的图片。商品图片的选择范围由传入的 product_specific_type 参数决定:
    • 如果 product_specific_type 设置为 ALL,系统将从商品库的所有商品中动态选择轮播图片。
    • 如果 product_specific_type 设置为 PRODUCT_SET,系统将从传入商品系列 (product_set_id) 的商品中动态选择轮播图片。
    • 如果 product_specific_type 设置为 CUSTOMIZED_PRODUCTS,系统将从自定义范围(最多 20 个商品(product_ids))的商品中动态选择轮播图片。
  • 轮播图片类型:
    • 使用商品主图片:默认情况下,动态选择的商品库商品的主图片 URL 将用作轮播图片。
传入支持商品库轮播广告的音乐。 通过 music_info 传入 1 个可用于商品库轮播广告的音乐 ID。

若想获取合法音乐 ID,可采用以下任意方式:
  • 在 /file/music/get/ 接口中将 music_scene 指定为 CATALOG_CAROUSEL,为广告账号下的商品库轮播广告筛选音乐。
  • 通过以下任意方式,将用于商品库轮播广告的自定义音乐上传到广告账号:
    • 在 /file/music/upload/ 接口中将 music_scene 指定为 CATALOG_CAROUSEL 并传入 music_file 和 music_signature。
    • 在 /file/music/upload/ 接口中将 music_scene 指定为 CATALOG_CAROUSEL,以及将 upload_type 指定为 UPLOAD_BY_FILE_ID,并传入 file_id。
传入片尾卡片图片 通过 image_info 传入 1 张可用于汽车商品库轮播广告的片尾卡片图片。
若想获取图片 ID,需使用 /file/image/ad/upload/ 接口或 /file/image/ad/search/ 接口。
图片应同时满足以下要求:
  • 规格:
    • 文件类型:JPG、JPEG 或 PNG。
    • 图片分辨率:不超过 1242 x 2340 px 或 2340 x 1242 px。
    • 宽高比:不超过 9:20 或 20:9。
    • 文件大小:小于 50 MB。
  • 从 /file/image/ad/search/ 接口返回的图片参数 is_carousel_usable 的值为 true。
单视频广告 使用传入的视频创意推广你的商品。 传入其他视频或 TikTok 视频帖子 传入共 1-50 个商品,可以是单个视频、视频帖子或两者混合。
  • 对于 Spark Ads 提取,通过 tiktok_item_id 传入其他 TikTok 视频帖子。
  • 对于 Spark Ads 推送,通过 video_info 传入其他视频,并通过 image_info 传入封面图片。

示例

请求

(code curl http)
curl --location --request POST 'https://business-api.tiktok.com/open_api/v1.3/smart_plus/ad/create/' \
--header 'Access-Token: {{Access-Token}}' \
--header 'Content-Type: application/json' \
--data '{
    "advertiser_id": "{{advertiser_id}}",
    "adgroup_id": "{{adgroup_id}}",
    "ad_name": "{{ad_name}}",
    "creative_list": [
        {
            "creative_info": {
                "ad_format": "CATALOG_CAROUSEL",
                "image_info": [
                    {
                        "web_uri": "{{web_uri}}"
                    }
                ],
                "music_info": {
                    "music_id": "{{music_id}}"
                },
                "identity_type": "TT_USER",
                "identity_id": "{{identity_id}}"
            }
        },
        {
            "creative_info": {
                "ad_format": "SINGLE_VIDEO",
                "video_info": {
                    "video_id": "{{video_id}}"
                },
                "image_info": [
                    {
                        "web_uri": "{{web_uri}}"
                    }
                ],
                "identity_type": "TT_USER",
                "identity_id": "{{identity_id}}"
            }
        },
        {
            "creative_info": {
                "ad_format": "SINGLE_VIDEO",
                "tiktok_item_id": "{{tiktok_item_id}}",
                "identity_type": "TT_USER",
                "identity_id": "{{identity_id}}"
            }
        }
    ],
    "auto_message_list": [
        {
            "auto_message_id": "{{auto_message_id}}"
        }
    ],
    "ad_text_list": [
        {
            "ad_text": "ad_text"
        },
        {
            "ad_text": "ad_text"
        },
        {
            "ad_text": "ad_text"
        },
        {
            "ad_text": "ad_text"
        },
        {
            "ad_text": "ad_text"
        }
    ],
    "call_to_action_list": [
        {
            "call_to_action": "SEND_MESSAGE"
        }
    ],
    "interactive_add_on_list": [
        {
            "card_id": "{{card_id}}"
        }
    ],
    "ad_configuration": {
        "product_specific_type": "ALL",
        "catalog_creative_toggle": true,
        "end_card_cta": "SEND_MESSAGE"
    }
}'
(/code)

返回

(code curl http)
{
    "code": 0,
    "message": "OK",
    "request_id": "{{request_id}}",
    "data": {
        "ad_configuration": {
            "catalog_creative_toggle": true,
            "dark_post_status": "OFF",
            "deeplink_utm_params": [],
            "end_card_cta": "SEND_MESSAGE",
            "phone_info": {},
            "product_specific_type": "ALL",
            "tracking_info": {},
            "utm_params": []
        },
        "ad_name": "{{ad_name}}",
        "ad_text_list": [
            {
                "ad_text": "ad_text"
            },
            {
                "ad_text": "ad_text"
            },
            {
                "ad_text": "ad_text"
            },
            {
                "ad_text": "ad_text"
            },
            {
                "ad_text": "ad_text"
            }
        ],
        "adgroup_id": "{{adgroup_id}}",
        "adgroup_name": "{{adgroup_name}}",
        "advertiser_id": "{{advertiser_id}}",
        "auto_message_list": [
            {
                "auto_message_id": "{{auto_message_id}}"
            }
        ],
        "call_to_action_list": [
            {
                "call_to_action": "SEND_MESSAGE"
            }
        ],
        "campaign_id": "{{campaign_id}}",
        "campaign_name": "{{campaign_name}}",
        "create_time": "{{create_time}}",
        "creative_list": [
            {
                "ad_material_id": "{{ad_material_id}}",
                "creative_info": {
                    "ad_format": "SINGLE_VIDEO",
                    "identity_id": "{{identity_id}}",
                    "identity_type": "TT_USER",
                    "image_info": [
                        {
                            "web_uri": "{{web_uri}}"
                        }
                    ],
                    "material_name": "",
                    "video_info": {
                        "file_name": "",
                        "video_id": "{{video_id}}"
                    }
                },
                "material_operation_status": "ENABLE"
            },
            {
                "ad_material_id": "{{ad_material_id}}",
                "creative_info": {
                    "ad_format": "SINGLE_VIDEO",
                    "identity_id": "{{identity_id}}",
                    "identity_type": "TT_USER",
                    "tiktok_item_id": "{{tiktok_item_id}}"
                },
                "material_operation_status": "ENABLE"
            },
            {
                "ad_material_id": "{{ad_material_id}}",
                "creative_info": {
                    "ad_format": "CATALOG_CAROUSEL",
                    "identity_id": "{{identity_id}}",
                    "identity_type": "TT_USER",
                    "image_info": [
                        {
                            "web_uri": "{{web_uri}}"
                        }
                    ],
                    "material_name": "catalog_carousel",
                    "music_info": {
                        "music_id": "{{music_id}}"
                    }
                },
                "material_operation_status": "ENABLE"
            }
        ],
        "custom_product_page_list": [],
        "deeplink_list": [],
        "interactive_add_on_list": [
            {
                "card_id": "{{card_id}}"
            }
        ],
        "landing_page_url_list": [],
        "modify_time": "{{modify_time}}",
        "operation_status": "ENABLE",
        "page_list": [],
        "secondary_status": "AD_STATUS_AUDIT",
        "smart_plus_ad_id": "{{smart_plus_ad_id}}"
    }
}
(/code)

内容来源:TikTok API for Business 官方文档 · 本地归档

在接这个接口时卡住了?
Stuck wiring this API into production? We build ad-delivery tooling on these platforms — campaign automation, reporting pipelines, error-handling and migration between API versions.
联系我们 · Talk to us 每日平台更新简报 →