You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用TikTok Marketing API获取报表时遇无效指标错误,求解决方案

解决TikTok Ads API无效指标字段问题

问题概述

调用TikTok Ads集成报表API时,收到错误提示部分字段无效,无效字段包括campaign_name、page_content_view_events、ad_name、conversion_rate_v2、engagements,调整data_level参数后问题仍未解决。

核心原因与修正方案

  1. 字段类型混淆:维度与指标放错位置
    campaign_name和ad_name是维度字段(用于数据分组),而非计算类指标,不能放在metrics数组中,需要移到dimensions数组内。同时,当前设置的data_level: "AUCTION_ADVERTISER"是账户层级,无法返回广告/活动维度的数据,需要将data_level调整为AUCTION_AD(广告层级)或AUCTION_CAMPAIGN(活动层级)。

  2. 指标与报表类型不匹配

    • conversion_rate_v2:BASIC类型报表不支持该字段,保留conversion_rate即可;若需要V2版本的转化率,需将report_type切换为CONVERSION。
    • engagements:BASIC报表无该聚合字段,可替换为具体的互动指标(如likes、comments、shares),或切换到支持互动聚合的报表类型。
    • page_content_view_events:属于自定义转化事件,需将report_type设为CONVERSION,且确保已在TikTok Ads Manager中配置并启用该事件追踪。

修正后的代码示例

import requests
import json
import pandas as pd
from datetime import date

# API端点与参数配置
url = "https://business-api.tiktok.com/open_api/v1.2/reports/integrated/get/"
params = {
    "advertiser_id": " ",  # 替换为你的广告主ID
    "report_type": "BASIC",  # 若需要转化事件可改为"CONVERSION"
    "start_date": "2024-06-10",
    "end_date": str(date.today()),  # 需转为字符串格式
    "data_level": "AUCTION_AD",  # 调整为广告层级以获取ad_name、campaign_name
    "dimensions": json.dumps(["advertiser_id", "stat_time_day", "campaign_name", "ad_name"]),
    "page_size": 1000,
    "metrics": json.dumps([
        "cpc",
        "cpm",
        "impressions",
        "clicks",
        "ctr",
        "reach",
        "conversion",
        "cost_per_conversion",
        "conversion_rate",
        "video_watched_2s",
        "video_watched_6s",
        "engaged_view"
        # 若切换为CONVERSION类型报表,可添加page_content_view_events等转化指标
    ])
}

headers = {
    "Access-Token": " "  # 替换为你的访问令牌
}

# 发送请求并处理响应
response = requests.get(url, headers=headers, params=params)

if response.status_code == 200:
    data = response.json()
    print(json.dumps(data, indent=4))

    if "data" in data and "list" in data["data"]:
        df = pd.DataFrame(data["data"]["list"])
        print(df)
    else:
        print("响应中无数据或结构错误")
else:
    print(f"请求错误: {response.status_code}")
    print(response.text)

额外注意事项

  • 若需要获取page_content_view_events,需确保:
    1. 将report_type改为CONVERSION
    2. 在TikTok Ads Manager中完成该事件的配置与验证
    3. 确认指标名称与后台配置的事件名称完全一致
  • 所有日期参数需为字符串格式,原代码中date.today()需转为str(date.today()),否则会导致参数格式错误。

内容的提问来源于stack exchange,提问作者Ferdiansyah Ersatiyo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.21 19:10:55