0

Ich erhalte AdAccount Felder ganz gut. Aber alle meine Versuche, die Adsets abzurufen, sind Fehler. Ich versuche, Einblicke in alle Kampagnen zu erhalten, die unter dem Adaccount laufen. Aber zuerst habe ich getestet, ob ich nur die Kampagnennamen abrufen kann, aber es funktioniert nicht. Einige Punkte zu beachten.Kann keine Adset-Felder von Facebook Ads API (PHP v2.8.1) abrufen

* Ich habe ID n Secret aus einer App (hat nichts für White Listing verwendet) registriert mit dem gleichen Konto, das Admin-Zugriff auf ein anderes Ad-Konto hat (das ist der Haupt-AdAcount, gegen den alle Anzeigen erstellt werden).

* Ich habe temporäres Zugriffstoken verwendet, das mit dem Graph-Explorer mit ads_read & ads_management-Berechtigung erstellt wurde.

* Get->v2.8->me?fields=adaccounts{campaigns{adsets{name}}} holen die Namen völlig in Ordnung auf dem Explorer.

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

Haben Sie eine Fehlerreaktion? – Tiger

+0

echo '$ u-> name' gibt mir den Namen des Kontoinhabers zurück .. danach vollständig leer .. Wenn ich' print_r (adsets) 'mache, wird ein mehrdimensionales Objektarray zurückgegeben –

Antwort

0

Versuchen Sie dies! verwenden Sie 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); 
Verwandte Themen