Я очень доволен инструментом для создания объявлений в Facebook, который я создал.Как получить идентификатор сообщения Facebook из рекламы с использованием API?
В нем перечислены все кампании в учетной записи объявления, а также все объявления в каждой кампании и все объявления в каждом рекламном объявлении.
И это показывает показатели, которые меня волнуют.
Но я не смог выяснить, как получить идентификатор сообщения из объявления.
кажется, что это поле не упоминается в Insights края (не доступен в InsightsFields
), так что, может быть, я должен сделать «присоединиться» на другой вызов API.
Мой основной код для получения прозрений является:
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();
}
Таким образом, на минимум, я хотел бы ответить на этот простой вопрос: если предположить у меня есть все необходимые разрешения API (который, конечно, Я), учитывая идентификатор объявления, как я могу получить идентификатор «сообщения», отображаемого в этом объявлении?
И в идеале, что я хотел бы ответить: как я могу получить этот идентификатор сообщения только в одном запросе API, поскольку я извлекаю все идеи, которые я хочу (показано выше)?
Спасибо!
Спасибо! Затем я узнал об этом: http://stackoverflow.com/a/40423552/470749 – Ryan
Это тоже полезно: https://stackoverflow.com/a/31354218/470749 – Ryan