【问题标题】:Fb Ads api How to get Active only FB Campaigns?Fb Ads api 如何获得仅活跃的 FB 广告系列?
【发布时间】:2017-12-06 17:48:24
【问题描述】:

我正在尝试从我正在使用以下代码的 facebook 广告 api 获取广告系列列表

        $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'
                ));

但我只需要活动广告系列列表,那么如何按活动状态 = 仅活动过滤列表

谢谢, 罗纳克·沙阿

【问题讨论】:

    标签: php facebook facebook-graph-api facebook-ads-api


    【解决方案1】:

    如果您检查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);
    

    希望这会有所帮助! :)

    【讨论】:

    • 对不起,这不是一个正确的答案如果您正确阅读了我的问题,我想按状态过滤广告系列列表,这可以实现吗?
    • 当我使用上面的代码时,我的 $campaignSets 只包含有效状态为 'ACTIVE' 的活动。我尝试使用 CampaignFields::STATUS 但它似乎在 v2.5 中已被弃用。我想你也明白了,因为你查询了“有效状态”。 @RonakShah
    • 是的,它可以工作,但是我需要活动、暂停和删除活动的一个问题,如果我像这样使用 'effective_status' => array('ACTIVE', 'PAUSED', 'DELETED') 然后它给出错误为“无效参数”,如果我从数组中删除“删除”,那么我的工作是什么问题?
    • @RonakShah 我尝试了和你一样的事情,得到了同样的异常 '无效参数' 'error_user_title' => 'Cannot Request for Deleted Objects', 'error_user_msg' => 'Requesting for deleted此端点不支持对象。我想你必须直接联系 FB 询问他们为什么会这样,如果你的要求仍然要求你获取已删除的广告系列。似乎没有办法“取消删除”一旦删除的活动,所以我猜“删除”状态只是 FB 在自己的数据库中标记为软删除的一种方式。
    【解决方案2】:

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

    https://graph.facebook.com/v2.11/act_99999999999999/campaigns?status=["ACTIVE","PAUSED","ARCHIVED","PENDING_REVIEW","DISAPPROVED","PREAPPROVED","PENDING_BILLING_INFO","CAMPAIGN_PAUSED","ARCHIVED","ADSET_PAUSED"]&format=json&method= get&pretty=1&limit=250&fields=field1,field2&time_range={"since": "2017-11-01", "until": "2017-12-05"}&access_token=XXX

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-11-04
      • 2021-06-15
      • 1970-01-01
      • 2019-08-05
      • 1970-01-01
      • 1970-01-01
      • 2019-09-09
      • 2021-09-12
      相关资源
      最近更新 更多