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!
Dank! Dann habe ich das gelernt: http://stackoverflow.com/a/40423552/470749 – Ryan
Das war auch hilfreich: https://stackoverflow.com/a/31354218/470749 – Ryan