【问题标题】:Facebook API (PHP) : Get Full Ads ListFacebook API (PHP) : 获取完整的广告列表
【发布时间】:2019-04-21 18:07:23
【问题描述】:

我正在使用 Facebook API 来获取完整的广告列表。

代码有效,但如果我的帐户中有 150 多个广告,它只会返回 25 个广告。

我猜这是因为 Facebook API 的查询限制。

我的代码:

$account = new AdAccount('act_<AD_ACCOUNT_ID>');
$account->read();

$fields_adset = array(
  AdSetFields::ID,
  AdSetFields::NAME,
  AdSetFields::CAMPAIGN_ID,
  AdSetFields::STATUS,
);

$ads = $account->getAds($fields_adset);

foreach ($ads as $adset) {
    $adset_id = $adset->{AdSetFields::ID};
    echo  $adset_id;
    //print_r($adset);
    //exit();
}

所以,他们在文档中提到:

使用异步请求查询海量数据

参考(1):https://developers.facebook.com/docs/marketing-api/best-practices/

参考(2):https://developers.facebook.com/docs/marketing-api/insights/best-practices/#asynchronous

但是,我无法将“异步”请求应用于我的代码以获取完整的广告列表,

请帮我获取完整的广告列表

谢谢。

【问题讨论】:

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


    【解决方案1】:

    您应该实施分页(或要求更高的限制)。使用 PHP SDK,您可以将光标实现为described in the doc here,或者更简单地设置Implicit Fetching,例如:

    ..
    use FacebookAds\Cursor;
    
    ...
    Cursor::setDefaultUseImplicitFetch(true);
    
    
    $account = new AdAccount('act_<AD_ACCOUNT_ID>');
    $account->read();
    
    $fields_adset = array(
      AdSetFields::ID,
      AdSetFields::NAME,
      AdSetFields::CAMPAIGN_ID,
      AdSetFields::STATUS,
    );
    
    $ads = $account->getAds($fields_adset);
    
    foreach ($ads as $adset) {
        $adset_id = $adset->{AdSetFields::ID};
        echo  $adset_id;
        //print_r($adset);
        //exit();
    }
    

    希望有帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-17
      • 1970-01-01
      • 2018-01-30
      • 1970-01-01
      相关资源
      最近更新 更多