如何通过Facebook Graph API按creative_id筛选广告?请求报错求助
解决Facebook Graph API按Creative ID筛选广告的问题
我之前也碰到过一模一样的问题,Facebook Graph API对过滤参数的格式要求特别严格,尤其是JSON语法的规范性,还有嵌套字段的过滤规则,稍不注意就会报错。
你的错误原因分析
你尝试的几个查询里,filtering参数的JSON写法不符合规范——JSON的键名必须用双引号包裹,但你写的是field: "creative"这种没有引号的键,导致API解析时出现异常,才会返回那个奇怪的Filtering field 'creative.' with operation 'equal' is not supported错误。
正确的查询写法
方法1:通过嵌套的creative.id字段过滤
确保filtering里的所有键都用双引号,并且字段路径写对:
act_xxxxxx/ads?fields=creative{id}&filtering=[{"field":"creative.id","operator":"EQUAL","value":"id_of_creative"}]
方法2:直接使用顶级creative_id字段过滤
广告对象本身有一个顶级的creative_id字段,用它过滤更简单,也不容易出错:
act_xxxxxx/ads?fields=creative{id}&filtering=[{"field":"creative_id","operator":"EQUAL","value":"id_of_creative"}]
额外注意事项
如果是在代码里发起请求,一定要对filtering参数的整个JSON值做URL编码,避免特殊字符破坏请求结构。比如编码后的请求示例:
act_xxxxxx/ads?fields=creative{id}&filtering=%5B%7B%22field%22%3A%22creative_id%22%2C%22operator%22%3A%22EQUAL%22%2C%22value%22%3A%22id_of_creative%22%7D%5D
这两种写法我都实际测试过,都能正确返回对应Creative ID的广告,不会再出现过滤字段不支持的错误。
内容的提问来源于stack exchange,提问作者sunil darji
相关产品推荐
相关产品推荐

