You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

关于Facebook Marketing API AdCreative添加方式的技术问询

解决Facebook Marketing API中通过AdCreative规格创建广告的问题

我来帮你搞定这个问题!你遇到的问题大概率是因为creative字段的嵌套格式不符合API要求——当你选择直接传入AdCreative规格(而非创意ID)时,API对格式有明确的规定,不是简单套一层"creative"字典就行的。

问题根源

你当前的写法多嵌套了一层不必要的"creative"键,Facebook API无法识别这种格式,正确的做法是用"creative_spec"来包裹你的创意参数。

错误示例(你的当前写法)

ad = Ad(parent_id=self.parent_id)
ad[Ad.Field.name] = advert_name
ad[Ad.Field.adset_id] = group_id
ad[Ad.Field.creative] = { 
    "creative": {"name": advert_name, ...}  # 这里的嵌套层级错误
}

正确代码示例

from facebookads.objects import Ad, AdField

# 1. 构造符合要求的AdCreative规格字典
creative_spec = {
    "name": advert_name,
    # 根据你的广告类型填写对应的object_story_spec,这里以链接广告为例
    "object_story_spec": {
        "page_id": "你的Facebook页面ID",
        "link_data": {
            "link": "https://你的广告目标链接",
            "message": "你的广告文案内容",
            "image_hash": "如果用图片的话填图片哈希值"  # 可选,根据需求添加
        }
    }
}

# 2. 初始化Ad对象并设置字段
ad = Ad(parent_id=self.parent_id)
ad[AdField.name] = advert_name
ad[AdField.adset_id] = group_id
# 关键:用"creative_spec"作为键来传入创意规格
ad[AdField.creative] = {
    "creative_spec": creative_spec
}

# 3. 执行广告创建操作(可选设置状态为ACTIVE)
ad.remote_create(params={"status": Ad.Status.ACTIVE})

额外注意事项

  • 如果你是使用已创建好的AdCreative ID,格式才是{"creative_id": "你的创意ID"},和直接传规格的格式完全不同,别搞混。
  • object_story_spec的内容要和你的广告类型匹配:比如图片广告需要image_data,视频广告需要video_data,请根据你的广告目标调整字段。

内容的提问来源于stack exchange,提问作者Александр Яцков

火山引擎 最新活动