Facebook Graph API如何配置OR条件过滤规则?
Facebook Graph API OR过滤规则配置方案
核心实现逻辑
Facebook Marketing API的filtering参数支持嵌套过滤规则实现OR逻辑:你只需定义一个顶级过滤项,将operator设置为OR,新增filters字段并把所有需要满足任意其一的过滤条件放入该数组即可。
示例1:原有AND逻辑改OR
你原有的AND逻辑过滤配置:
'filtering': "[{'field':'ad.impressions','operator':'GREATER_THAN','value':0}, {'field':'ad.effective_status','operator':'IN','value':['ACTIVE', 'PAUSED']}]"
调整为OR逻辑(满足展示大于0或状态为ACTIVE/PAUSED任意一个条件即可)的写法:
'filtering': "[{ 'operator':'OR', 'filters': [ {'field':'ad.impressions','operator':'GREATER_THAN','value':0}, {'field':'ad.effective_status','operator':'IN','value':['ACTIVE', 'PAUSED']} ] }]"
示例2:广告账户洞察接口OR过滤配置
以你给出的洞察查询接口为例,要添加OR条件(比如满足action_type为mobile_app_install,或花费大于100),完整请求写法如下:
/act_<yourAdAccount>/insights ?level=campaign &fields=actions,spend &time_increment=all_days &time_range={'since':'2017-07-07','until':'2017-12-12'} &filtering=[ { "operator": "OR", "filters": [ {"field": "action_type","operator":"IN", "value": ["mobile_app_install"]}, {"field": "spend","operator":"GREATER_THAN", "value": 100} ] } ] &use_account_attribution_setting=true
注意事项
- 支持复杂逻辑嵌套:如果需要实现(A OR B) AND C这类复合规则,可以外层用
operator: "AND",filters数组中放入OR规则项和C的过滤规则项即可。 - 请求时所有参数需要做URL编码,避免特殊字符导致解析失败。
- 该规则在v12及以上版本的Marketing API中验证可用,低版本建议先升级接口版本再测试。
内容的提问来源于stack exchange,提问作者Chris
相关产品推荐
相关产品推荐

