2017-02-06 2 views
1

Ich bin ziemlich glücklich mit einem Facebook Ads Reporting-Tool, das ich gebaut habe.Wie erhält man die Facebook-Beitrags-ID von einer Anzeige mithilfe der API?

Es listet alle Kampagnen innerhalb eines Anzeigenkontos auf, sowie alle Anzeigen innerhalb jeder Kampagne und alle Anzeigen in jedem Anzeigenset.

Und es zeigt die Metriken, die mir wichtig sind.

Ich konnte jedoch nicht herausfinden, wie eine Beitrags-ID in einer Anzeige abgerufen werden kann.

Es scheint, dass das Feld nicht in dem Insights Rande erwähnt wird (nicht verfügbar in InsightsFields), vielleicht muß ich auf einem anderen API-Aufruf ein „join“ tun.

Mein Hauptcode für das Abrufen von Einsichten ist:

public function getInsights($levelType, $id, $aggLevel, $start, $end) { 
    if ($levelType) { 
     if ($id == null) { 
      abort(500, 'You must provide the ID for the object you want to retrieve.'); 
     } 
    } else { 
     $levelType = \AdAccount::class; 
     $id = ACT_PREPEND . $this->fbConfig['account_id']; 
     $aggLevel = AdsInsightsLevelValues::CAMPAIGN; 
    } 
    $variableClassWithNamespace = '\FacebookAds\Object\\' . $levelType; 
    $level = new $variableClassWithNamespace($id); 
    $fields = [ 
     InsightsFields::CAMPAIGN_ID, 
     InsightsFields::CAMPAIGN_NAME, 
     InsightsFields::ADSET_ID, 
     InsightsFields::ADSET_NAME, 
     InsightsFields::AD_ID, 
     InsightsFields::AD_NAME, 
     InsightsFields::SPEND, 
     InsightsFields::UNIQUE_IMPRESSIONS, 
     InsightsFields::INLINE_LINK_CLICKS, 
     InsightsFields::INLINE_LINK_CLICK_CTR, 
     InsightsFields::COST_PER_INLINE_LINK_CLICK, 
     InsightsFields::ACTIONS, 
     InsightsFields::COST_PER_ACTION_TYPE, 
     InsightsFields::CPM, 
    ]; 
    $params = [ 
     AdReportRunFields::LEVEL => $aggLevel, 
    ]; 
    if ($start) { 
     $params[AdReportRunFields::TIME_RANGE]['since'] = $start; 
     if (!$end) { 
      $params[AdReportRunFields::TIME_RANGE]['until'] = (new \DateTime("+2 year"))->format('Y-m-d'); 
     } 
    } 
    if ($end) { 
     $params[AdReportRunFields::TIME_RANGE]['until'] = $end; 
     if (!$start) { 
      $params[AdReportRunFields::TIME_RANGE]['since'] = (new \DateTime("-1 year"))->format('Y-m-d'); 
     } 
    } 
    if (!$start && !$end) { 
     $params[AdReportRunFields::DATE_PRESET] = InsightsPresets::LIFETIME; 
    } 
    $insights = $level->getInsights($fields, $params); 
    return $insights->getResponse()->getBody(); 
} 

Also, auf ein absolutes Minimum, ich würde gerne diese einfache Frage zu beantworten: vorausgesetzt, ich alle erforderlichen API Berechtigungen verfügen (was natürlich Tue ich), wie kann ich mit einer Anzeigen-ID die ID des "Posts" in dieser Anzeige abrufen?

Und im Idealfall würde ich gerne beantworten: Wie kann ich diese Beitrags-ID innerhalb einer einzigen API-Abfrage abrufen, während ich alle Einsichten abrufe, die ich möchte (siehe oben)?

Danke!

Antwort

2

Die Post-ID ist ein einfacher Anzeigenparameter, kein Tageswert, den Sie aus Einsichten erhalten. Deshalb kann es nirgends auf den Endpunkten der Einsichten gefunden werden.

Angenommen, Sie alle Anzeigen-IDs kennen, können Sie sie in alle auf einmal abgefragt werden (es kann in einzelnen Anforderung einige nicht dokumentierte Grenzen für die Höhe sein) wie folgt aus:

/v2.8/?ids=6068303632680,6074066638080&fields=creative{effective_object_story_id} 

die in der Tat ist eine Abkürzung für diese beiden Abfragen tun

/v2.8/6068303632680?fields=creative{effective_object_story_id} 
/v2.8/6074066638080?fields=creative{effective_object_story_id} 

Sie mehr über erweiterte API-Nutzung finden here in FB docs, in Abschnitt Multiple-ID-Leseanforderungen

+0

Dank! Dann habe ich das gelernt: http://stackoverflow.com/a/40423552/470749 – Ryan

+0

Das war auch hilfreich: https://stackoverflow.com/a/31354218/470749 – Ryan

0

Falls Sie die Facebook-Anzeigen-ID mit der Facebook-Video-ID verknüpfen möchten, können Sie eine ähnliche Abfrage verwenden.

/v2.9/6087224935451?fields=creative{ name, title, video_id, status } 

Ergebnis:

{ 
    "creative": { 
    "name": "Ad from a Page post 24", 
    "video_id": "745639641594227", 
    "status": "ACTIVE", 
    "id": "6087045300251" 
    }, 
    "id": "6087224935451" 
} 
Verwandte Themen