我的代码允许我检索特定日期之间的所有广告,但这包括不再有效的广告。检索帐户中所有有效广告的Facebook Insights?
我想仅显示ACTIVE广告的见解。 如何在帐户中检索所有有效广告的Facebook Insights?
public function getInsights($levelType, $id, $aggLevel, $start, $end) {
if ($levelType) {
if ($id == null) {
abort(400, '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; //TODO: avoid hard-coding class paths as strings
$level = new $variableClassWithNamespace($id);
$fields = [
InsightsFields::SPEND,
InsightsFields::CAMPAIGN_ID,
InsightsFields::CAMPAIGN_NAME,
InsightsFields::ADSET_ID,
InsightsFields::ADSET_NAME,
InsightsFields::AD_ID,
InsightsFields::AD_NAME,
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();
}
我使用Facebook的PHP广告SDK 2.8(在composer.json
"facebook/php-ads-sdk": "2.8.*"
)。 documentation is here。
我很乐意接受您的回答,但我一直无法找到有关'filtering'或'delivery_info'的文档。例如。 https://www.google.com/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=site:developers.facebook.com+delivery_info&*的结果中没有一项指定了这种方式的效果。你可以发送一个链接或一个更具体的使用过滤器的' - > getInsights()'调用的工作示例吗? – Ryan
@Ryan,我编辑了我的答案,希望能给你一些背景。 –
该页面的顶部显示“此文档是指在Marketing API v2.7之后删除的功能。”也许这个功能不再被支持。无论如何,我会接受你的回答,因为我很欣赏你的努力。 – Ryan