Получайте отчеты о рекламе с помощью Google Ads Api
Я пытаюсь получить отчеты об эффективности кампаний и рекламы. До сих пор я получал отчеты об эффективности кампании, но не могу получать отчеты об эффективности рекламы.
Я видел API объявлений Google и их примеры в клиентской библиотеке. Но я не могу понять, как получать рекламные отчеты.
Я сделал функцию, которая будет получать отчеты для меня через Google Ads API.
Google Ads Api: https://developers.google.com/google-ads/api/docs/fields/ad_group_ad
Google Ads Api Github: https://github.com/googleads/google-ads-php/
public function getAdsPerformance($customerId)
{
// Customer ID which i am using ---> 2942416690
try {
// Creates a query that retrieves all campaigns.
$query = 'SELECT ad_group_ad.ad.expanded_text_ad.description2 FROM ad_group_ad';
// Issues a search request by specifying page size.
$response = $this->googleAdsServiceClient->search($customerId, $query, ['pageSize' => $this->page_size]);
// Iterates over all rows in all pages and prints the requested field values for
// the campaign in each row.
foreach ($response->iterateAllElements() as $googleAdsRow) {
$adGroup = $googleAdsRow->getAdGroupAd();
// $customer = $googleAdsRow->getCustomer();
// $metrics = $googleAdsRow->getMetrics();
/** @var GoogleAdsRow $googleAdsRow */
$result = [
'ad' => $adGroup->getResourceName()->getValue(),
];
print "<pre>";
print_r($result);
print "</pre>";
}
} catch (GoogleAdsException $googleAdsException) {
printf(
"Request with ID '%s' has failed.%sGoogle Ads failure details:%s",
$googleAdsException->getRequestId(),
PHP_EOL,
PHP_EOL
);
foreach ($googleAdsException->getGoogleAdsFailure()->getErrors() as $error) {
$error = [
'code' => $error->getErrorCode()->getErrorCode(),
'status' => $error->getStatus(),
'message' => $error->getMessage()
];
printf(json_encode($error));
}
} catch (ApiException $apiException) {
$error = [
'code' => $apiException->getCode(),
'status' => $apiException->getStatus(),
'message' => $apiException->getBasicMessage()
];
printf(json_encode($error));
}
}
Я пытаюсь получить этот тип простых значений из API в массиве
Array
(
[campaign] => some test campaign
[currency] => PLN
[clicks] => 100
[impressions] => 300
[cost] => 250.08
[avg_position] => 1.07
[avg_cpc] => 0.8
[conversions] => 0
[cost/conv] => 0
[conv_rate] => 0
[ctr] => 0.9
[avg_cpm] => 2.5
[interaction_rate] => 0.1
[interactions] => 52
)
Любая идея о том, как я могу получить рекламные отчеты от API, кто-нибудь сделал это? Кажется, я не могу разглядеть документацию и клиентскую библиотеку.
1 ответ
Ну, я сделал это с некоторыми исследованиями. Есть два типа рекламы.
1. Расширенные текстовые объявления
2. Звоните только объявления
Я проверил, какой тип объявления показывался, и это были "Расширенные текстовые объявления". А затем выбрал поле ad_group_ad.ad.expanded_text_ad.headline_part1 из документации API здесь:
https://developers.google.com/google-ads/api/docs/fields/ad_group_ad
это полная функция:
public function getAdsPerformance($customerId)
{
try {
$query =
'SELECT ad_group_ad.ad.expanded_text_ad.headline_part1 '
. 'FROM ad_group_ad '
. 'WHERE ad_group_ad.ad.type = EXPANDED_TEXT_AD';
$response = $this->googleAdsServiceClient->search($customerId, $query, ['pageSize' => $this->page_size]);
foreach ($response->iterateAllElements() as $googleAdsRow) {
$ad = $googleAdsRow->getAdGroupAd()->getAd();
$result = [
'headline part 1' => $ad->getExpandedTextAd()->getHeadlinePart1()->getValue(),
];
print "<pre>";
print_r($result);
print "</pre>";
}
} catch (GoogleAdsException $googleAdsException) {
printf(
"Request with ID '%s' has failed.%sGoogle Ads failure details:%s",
$googleAdsException->getRequestId(),
PHP_EOL,
PHP_EOL
);
foreach ($googleAdsException->getGoogleAdsFailure()->getErrors() as $error) {
$error = [
'code' => $error->getErrorCode()->getErrorCode(),
'status' => $error->getStatus(),
'message' => $error->getMessage()
];
// return $error;
printf(json_encode($error));
}
} catch (ApiException $apiException) {
$error = [
'code' => $apiException->getCode(),
'status' => $apiException->getStatus(),
'message' => $apiException->getBasicMessage()
];
printf(json_encode($error));
}
}
И я получил результат поля:
Array
(
[headline part 1] => Small Business System
)
Не забывайте об RSA. Они немного сложнее, и активы возвращаются в диктовке, которую вам нужно проанализировать самостоятельно.