无法从Facebook Ads API中获取任何adset字段(PHP v2.8.1)

时间:2016-12-28 07:31:49

标签: php facebook facebook-authentication facebook-ads-api facebook-marketing-api

我收到AdAccount字段就好了。但我尝试获取广告的所有尝试都失败了。我正在尝试深入了解在adaccount下运行的所有广告系列。但首先我测试的是我是否只能获取广告系列名称,但它不起作用。有些要点需要注意。

*我使用了一个应用程序的id n secret(对于白名单没有做任何事情),该帐户使用对另一个广告帐户具有管理员访问权限的同一帐户(即创建所有广告的主要adAcount)。

*我使用了使用graph explorer生成的临时访问令牌,其中包含ads_read& ads_management权限。

* Get->v2.8->me?fields=adaccounts{campaigns{adsets{name}}}在浏览器上获取完全正确的名称。

include 'vendor/autoload.php';
use FacebookAds\Api;

Api::init(APP_ID, APP_SECRET, ACCESS_TOKEN);

$api = Api::instance();

use FacebookAds\Object\AdAccount;
use FacebookAds\Object\Fields\AdAccountFields;
use FacebookAds\Object\Fields\AdSetFields;

$fields = array(
  AdAccountFields::ID,
  AdAccountFields::NAME
);

$account = new AdAccount('act_XXX');
$u=$account->read($fields);
echo $u->name.'<br>';

$adsets = $account->getAdSets(array(
  AdSetFields::NAME
));

foreach ($adsets as $adset) {
  echo $adset->name;
}

1 个答案:

答案 0 :(得分:0)

试试吧!      使用FacebookAds \ Api;

 Api::init($app_id, $app_secret, $access_token);

 use FacebookAds\Object\Campaign;
 use FacebookAds\Object\Fields\AdSetFields;

 $account = new Campaign($campaign_id);

 $objects = $account->getAdSets(array(
 AdSetFields::NAME,
 AdSetFields::ID,
 AdSetFields::STATUS,

 ));

 $objects->setUseImplicitFetch(true); // set this before loop
 foreach ($objects as $object) {
 if($object->{AdSetFields::STATUS}=='ACTIVE'){

    $adset_id= $object->{AdSetFields::ID};
    $name= $object->{AdSetFields::NAME};
    $status = $object->{AdSetFields::STATUS};

    $values[] = array(
    'adset_id' => $adset_id,
    'name' => $name,
    'status' => $status,


   );
    }
 }
 echo json_encode($values);