Facebook API (PHP):获取完整广告列表
Facebook API (PHP) : Get Full Ads List
我正在使用 Facebook API 获取完整的广告列表。
代码有效,但如果我的帐户中有 150+ 个广告,它 return 只有 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();
}
因此,他们在文档中提到:
Use Asynchronous Requests to query a huge amount of data
参考文献(1):https://developers.facebook.com/docs/marketing-api/best-practices/
参考文献(2):https://developers.facebook.com/docs/marketing-api/insights/best-practices/#asynchronous
但是,我无法将 "Asynchronous" 请求应用于我的代码以获取完整的广告列表,
请帮我获取完整的广告列表
谢谢。
您应该实施分页(或请求更高的限制)。使用 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();
}
希望对您有所帮助
我正在使用 Facebook API 获取完整的广告列表。
代码有效,但如果我的帐户中有 150+ 个广告,它 return 只有 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();
}
因此,他们在文档中提到:
Use Asynchronous Requests to query a huge amount of data
参考文献(1):https://developers.facebook.com/docs/marketing-api/best-practices/
参考文献(2):https://developers.facebook.com/docs/marketing-api/insights/best-practices/#asynchronous
但是,我无法将 "Asynchronous" 请求应用于我的代码以获取完整的广告列表,
请帮我获取完整的广告列表
谢谢。
您应该实施分页(或请求更高的限制)。使用 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();
}
希望对您有所帮助