Как фильтровать объявления с определенными показателями с помощью Graph Api SDK v.19Php

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как фильтровать объявления с определенными показателями с помощью Graph Api SDK v.19

Сообщение Anonymous »

Я пытаюсь получить все объявления из рекламного аккаунта Facebook, в показателях которого для параметра «Расходы» установлено значение 0, а для параметра «Охват» установлено значение 1, с помощью GRAPH API SDK v.19. Однако, если «охват» не существует, этот фильтр пропускает объявления, у которых «расходы» равны 0. С другой стороны, если в моем фильтре я ставлю «охват» на 0 и «расходы» на 0, это дает мне все объявления рекламного аккаунта (+5000), даже если у них нет показателей на указанную дату. Как я могу решить эту проблему и получать только те объявления, у которых показатель «расходы» больше или равен 0, за исключением тех, у которых его нет.
Я попробовал использовать Facebook Graph Explorer, чтобы получить все объявления. в рекламном аккаунте с метриками. Я использовал поле «фильтрация» в своем запросе, чтобы отфильтровать результаты на основе этих критериев: расходы больше или равны 0 и охват больше или равен 1. Однако, если «охват» не существует, этот фильтр игнорирует объявления, которые иметь «расходы» на уровне 0. С другой стороны, если в моем фильтре я поставлю «охват» на 0 и «траты» на 0, это приведет ко мне ко всем объявлениям в рекламном аккаунте, даже если они не имеют показателей по указанному дата. Я надеялся получить только те объявления, у которых есть показатели.
Я делюсь URL-адресом обозревателя графиков:
act_384943998894065/ads?fields=id,name, effect_status,created_time,insights.time_range({'since':'2024-06-19','until':'2024-06-19'}){ad_id,reach,spend,objective,actions,cost_per_action_type}&filtering=[ {"field":"spend","operator":"GREATER_THAN_OR_EQUAL","value":0},{"field":"reach","operator":"GREATER_THAN_OR_EQUAL","value":0}]&time_range= {'since':'2024-06-19','until':'2024-06-19'
прикрепленное изображение результатов графического обозревателя:
{
"id": "120208793679360133",
"name": "CE1705202404",
"effective_status": "ACTIVE",
"created_time": "2024-05-17T14:59:20-0500"
},
{
"id": "120208458805660133",
"name": "CE202404301910",
"effective_status": "ACTIVE",
"created_time": "2024-05-09T12:23:30-0500",
"insights": {
"data": [
{
"ad_id": "120208458805660133",
"spend": "0",
"objective": "OUTCOME_ENGAGEMENT",
"actions": [
{
"action_type": "onsite_conversion.messaging_welcome_message_view",
"value": "1"
}
],
"cost_per_action_type": [
{
"action_type": "onsite_conversion.messaging_welcome_message_view",
"value": "0"
}
],
"date_start": "2024-06-19",
"date_stop": "2024-06-19"
}
],
"paging": {
"cursors": {
"before": "MAZDZD",
"after": "MAZDZD"
}
}
}
},

Прикрепляю свой PHP-код:
public function getAdsByAccountId($date)
{
try {
$date_range = "{'since':'$date','until':'$date'}";
$time_range = "&time_range=$date_range";
$fields = [
"id", "campaign_id", "adset_id", "adset{promoted_object}", "creative{id,image_url,video_id,object_story_spec}", "name", "created_time", "status", "effective_status", "configured_status",
"campaign{id,account_id, name, objective, effective_status, status, configured_status, created_time}",
"insights.time_range($date_range){ad_id,reach,spend,objective,actions,cost_per_action_type}",
];

$string_fields = $this->buildFields($fields);
$filtering = "&filtering=[{'field':'spend','operator':'GREATER_THAN_OR_EQUAL','value':0},{'field':'reach','operator':'GREATER_THAN_OR_EQUAL','value':1}]";
$limit = "&limit=200";

$url = "/" . $this->BUSINESS_ACCOUNT_ID . "/ads" . $string_fields . $filtering . $time_range . $limit;
$response = $this->FB_SDK->get($url, $this->ACCESS_TOKEN);

$response = json_decode($response->getBody());
$ads = $response->data;

$data = $this->getAdsFromNextPages($response, $ads);
$ads = $data->ads;
$response = $data->response;

return (object) [
"ads" => $ads,
"response" => $response,
];
} catch (\Facebook\Exceptions\FacebookResponseException $e) {
Log::error('FacebookAdsService::getAdsByAccountId Graph returned an error: ' . $e->getMessage());
throw $e;
} catch (\Facebook\Exceptions\FacebookSDKException $e) {
Log::error('FacebookAdsService::getAdsByAccountId Facebook SDK returned an error: ' . $e->getMessage());
throw $e;
}
}


Подробнее здесь: https://stackoverflow.com/questions/786 ... i-sdk-v-19
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»