如何使用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操作与此如此您需要一种与您需要的所有广告系列相匹配的模式。

另一种方法是在代码中进行过滤。

+0

我能够在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

+0

您需要在'params'中包含这样的内容: 'account.get_campaigns'(fields = [Campaign.Field.name],params = ['filtering':[{'field':'campaign.name','operator':'CONTAIN','va lue':'Campaign X'}]])'' –