如何使用Python从Facebook Marketing API中按名称获取特定广告系列?
问题描述:
我试图从我的Facebook商业广告帐户中使用Python中的Facebook营销API包获取特定广告系列的名称。我只想选择与某个特定名称相匹配的广告系列,但我只会列出最近创建的25个广告系列。我如何在Python中执行此操作?如何使用Python从Facebook Marketing API中按名称获取特定广告系列?
我一直没能找到任何正确的语法在“get_campaigns”命令中的“params”参数的例子。我想,如果我想只选择名为“运动-X”和“运动-Y”它可能是这个样子,如果我能在词典匹配2个值1个关键的活动:
from facebookads.api import FacebookAdsApi
from facebookads.adobjects.campaign import Campaign
app_id = 'xxxxx'
app_secret = 'xxxxx'
access_token = 'xxxxx'
FacebookAdsApi.init(app_id, app_secret, access_token)
account = AdAccount('act_xxxxxxxxx')
account.get_campaigns(fields=[Campaign.Field.name], params={'name': ['Campaign-X', 'Campaign-Y']})
答
你可以尝试使用filtering
参数要做到这一点,可以做的事情一样基于字符串匹配滤波结果:
filtering=[{'field':'campaign.name','operator':'CONTAIN','value':'Campaign-x'}]
但是,我不知道这是可以做到的OR操作与此如此您需要一种与您需要的所有广告系列相匹配的模式。
另一种方法是在代码中进行过滤。
我能够在Facebook的开发者网站上的Graph API Explorer中工作,但是我很难将其翻译成Python。当我做'account.get_campaigns(fields = [Campaign.Field.name],filtering = [{'field':'campaign.name','operator':'CONTAIN','value':'Campaign X'}] )'它说'TypeError:get_campaigns()得到了一个意外的关键字参数'filtering'' 这就是我在API Explorer中的工作正常: 'act_XXXXXXXXX/campaigns?fields = name&filtering = [{'field' :'name','operator':'EQUAL','value':'Campaign X'}]' – Jazziwicz
您需要在'params'中包含这样的内容: 'account.get_campaigns'(fields = [Campaign.Field.name],params = ['filtering':[{'field':'campaign.name','operator':'CONTAIN','va lue':'Campaign X'}]])'' –