2016-02-05 137 views
0

我想从Facebook广告API的活动列表我使用下面的代码Fb广告api如何获得仅活动的FB活动?

 $account = new AdAccount('act_' . $account_id); 
     $campaignSets = $account->getCampaigns(array(
      CampaignFields::ID, 
      CampaignFields::NAME, 
      CampaignFields::START_TIME, 
      CampaignFields::STOP_TIME, 
      CampaignFields::SPEND_CAP, 
      'effective_status' 
       )); 

但我只需要活动活动列表,所以我怎么能过滤由Camapign状态列表=只有主动

谢谢, Ronak沙阿

回答

2

如果您检查方法声明AdAccount->getCampaigns,你会看到,它接受两个参数$fields$params$fields为您要检索的字段,和$params作为过滤器。在你的情况下的例子(测试V2.5): -

$account = new AdAccount('act_' . $account_id); 

$fields = array(
    CampaignFields::ID, 
    CampaignFields::NAME, 
    CampaignFields::START_TIME, 
    CampaignFields::STOP_TIME, 
    CampaignFields::SPEND_CAP, 
    'effective_status' 
); 

$params = array(
    'effective_status' => array(
     Campaign::STATUS_ACTIVE 
    ), 
); 

$campaignSets = $account->getCampaigns($fields, $params); 

希望这会有所帮助! :)

+0

抱歉,这不是一个正确的答案如果你正确地阅读我的问题,我想按状态过滤活动列表,这是可能实现的吗? –

+0

当我使用上面的代码时,我的$ campaignSets只包含有效性状态为'ACTIVE'的广告系列。我尝试过使用CampaignFields :: STATUS,但似乎已经在v2.5中弃用了。我想你也是这样想的,因为你对'effective_status'进行了质疑。 @RonakShah – wai

+0

是它的工作,但我需要一个问题ACTIVE,PAUSED和DELETED活动,如果我使用像这个'effective_status'=>数组( 'ACTIVE','PAUSED','DELETED' ),那么它会给出错误为“无效的参数“,如果我从数组中删除”DELETED“,那么我在那里工作是什么问题? –

1

我可以告诉你如何使用原始REST-API(我选择不使用FB的不必要的复杂SDK(Python))来实现这一点。

https://graph.facebook.com/v2.11/act_99999999999999/campaigns?status=[ “ACTIVE”, “暂停”, “已存档”, “PENDING_REVIEW”, “DISAPPROVED”, “预先批准”, “PENDING_BILLING_INFO”, “CAMPAIGN_PAUSED”, “ARCHIVED”, “ADSET_PAUSED”] &格式= JSON &方法获得=漂亮& = 1个&限= 250 &字段= FIELD1,FIELD2 & TIME_RANGE = { “因为”: “2017年11月1日”, “直到”: “2017年12月5日”} & =的access_token XXX

这里的关键是status=[] GET参数。