Чтобы регистрировать конверсии, необходимо включить отслеживание конверсий в аккаунте Google Рекламы. В этом руководстве рассказывается, как проверить, включено ли отслеживание конверсий, включить его, если оно ещё не включено, и получить информацию о существующих действиях-конверсиях.
Для большинства действий-конверсий также требуются дополнительные действия с вашей стороны, чтобы отслеживать их. Подробнее о типах действий-конверсий и требованиях к ним рассказывается в статьях Категории действий-конверсий и Как создать действия-конверсии.
Как подготовиться к предоставлению согласия
При импорте конверсий или пользовательских данных необходимо подтвердить, что у вас есть разрешение на передачу данных о конверсиях в Google. Это можно сделать двумя способами:
- Настройте параметры согласия по умолчанию на уровне аккаунта. В интерфейсе Google Рекламы нажмите Инструменты > Менеджер данных > Настройки согласия > Настройки согласия по умолчанию.
- Установите поле согласия в каждой полезной нагрузке импортированных данных о конверсиях или пользовательских данных (например,
ClickConversion.consent,CallConversion.consentилиUserData.consent).
Как настроить отслеживание конверсий на сайте
Если вы отслеживаете конверсии на сайте или расширенное отслеживание конверсий для потенциальных клиентов, сначала настройте теги на сайте. Выполните инструкции из статьи Как настроить тег Google для расширенного отслеживания конверсий лидов или Как настроить Google Менеджер тегов для расширенного отслеживания конверсий лидов.
Включите отслеживание конверсий в аккаунте конверсий Google Рекламы
Чтобы проверить настройки отслеживания конверсий в аккаунте и создать или найти действия-конверсии, выполните следующие действия:
Как включить отслеживание конверсий
Как получить информацию о настройке отслеживания конверсий
Вы можете проверить настройки отслеживания конверсий в аккаунте и убедиться, что оно включено, отправив запрос к ресурсу Customer для ConversionTrackingSetting.
Выполните следующий запрос с помощью GoogleAdsService.SearchStream:
SELECT
customer.conversion_tracking_setting.google_ads_conversion_customer,
customer.conversion_tracking_setting.conversion_tracking_status,
customer.conversion_tracking_setting.conversion_tracking_id,
customer.conversion_tracking_setting.cross_account_conversion_tracking_id
FROM customer
Поле google_ads_conversion_customer указывает на аккаунт Google Рекламы, в котором создаются и управляются конверсии для этого клиента. Для клиентов, использующих отслеживание конверсий в нескольких аккаунтах, это идентификатор управляющего аккаунта. Идентификатор клиента, связанный с конверсиями Google Рекламы, должен быть указан как customer_id в запросах Google Ads API на создание и управление конверсиями. Обратите внимание, что это поле заполняется, даже если отслеживание конверсий не включено.
Поле conversion_tracking_status указывает, включено ли отслеживание конверсий и используется ли в аккаунте отслеживание конверсий в управляющем аккаунте.
Создайте действие-конверсию в аккаунте клиента, который отслеживает конверсии Google Рекламы
Если значение conversion_tracking_status – NOT_CONVERSION_TRACKED, отслеживание конверсий в аккаунте не включено. Включите отслеживание конверсий, создав хотя бы одно ConversionAction в аккаунте для обработки конверсий Google Рекламы, как показано в примере ниже. Вы также можете создать действие-конверсию в интерфейсе, следуя инструкциям в Справочном центре Google Рекламы для нужного типа конверсий.
Обратите внимание, что расширенное отслеживание конверсий включается автоматически, если данные передаются через Google Ads API, но его можно отключить в интерфейсе Google Рекламы.
Пример кода
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId) { // Creates a ConversionAction. ConversionAction conversionAction = ConversionAction.newBuilder() // Note that conversion action names must be unique. If a conversion action already // exists with the specified conversion_action_name the create operation will fail with // a ConversionActionError.DUPLICATE_NAME error. .setName("Earth to Mars Cruises Conversion #" + getPrintableDateTime()) .setCategory(ConversionActionCategory.DEFAULT) .setType(ConversionActionType.WEBPAGE) .setStatus(ConversionActionStatus.ENABLED) .setViewThroughLookbackWindowDays(15L) .setValueSettings( ValueSettings.newBuilder() .setDefaultValue(23.41) .setAlwaysUseDefaultValue(true) .build()) .build(); // Creates the operation. ConversionActionOperation operation = ConversionActionOperation.newBuilder().setCreate(conversionAction).build(); try (ConversionActionServiceClient conversionActionServiceClient = googleAdsClient.getLatestVersion().createConversionActionServiceClient()) { MutateConversionActionsResponse response = conversionActionServiceClient.mutateConversionActions( Long.toString(customerId), Collections.singletonList(operation)); System.out.printf("Added %d conversion actions:%n", response.getResultsCount()); for (MutateConversionActionResult result : response.getResultsList()) { System.out.printf( "New conversion action added with resource name: '%s'%n", result.getResourceName()); } } }
C#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V25.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V25::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V25::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
Убедитесь, что для параметра type задано правильное значение ConversionActionType. Дополнительные сведения о создании действий-конверсий с помощью Google Ads API можно найти в статье Создание действий-конверсий.
Как получить существующее действие-конверсию
Чтобы получить информацию о существующем действии-конверсии, выполните следующий запрос: Убедитесь, что в запросе указан идентификатор клиента, который вы определили ранее как клиента, связанного с конверсиями Google Рекламы, а тип действия-конверсии имеет правильное значение ConversionActionType.
SELECT
conversion_action.id,
conversion_action.resource_name,
conversion_action.name,
conversion_action.type,
conversion_action.category,
conversion_action.status
FROM conversion_action
WHERE conversion_action.type = 'INSERT_CONVERSION_ACTION_TYPE'
Отслеживание конверсий в управляющем аккаунте
Отслеживание конверсий в управляющем аккаунте позволяет импортировать конверсии в аккаунты Google Рекламы от имени других аккаунтов, в которых могли быть размещены объявления, приведшие к конверсиям. Это упростит интеграцию, поскольку вы сможете объединить аккаунты, отправляющие запросы на импорт.
Как включить отслеживание конверсий в управляющем аккаунте с помощью Google Ads API
Вы можете включить отслеживание конверсий на нескольких платформах при создании или изменении клиентских аккаунтов с помощью Google Ads API.
В ресурсе Customer задайте для поля conversion_tracking_setting.google_ads_conversion_customer название ресурса управляющего аккаунта, который должен управлять действиями-конверсиями от имени клиентского аккаунта.
Запросы, изменяющие клиента, совершившего конверсию, в клиентском аккаунте, должны отправляться из управляющего аккаунта, который становится новым клиентом, совершившим конверсию, для клиентского аккаунта.
Для этого задайте для параметра login-customer-id идентификатор управляющего аккаунта.
При переходе на отслеживание конверсий в управляющем аккаунте или смене управляющего аккаунта для отслеживания конверсий в существующем клиентском аккаунте действуют те же ограничения, что и при внесении изменений в интерфейсе. А именно:
- В клиентском аккаунте будут использоваться правила ценности конверсий и цели по жизненному циклу клиентов, заданные по умолчанию в новом менеджере отслеживания конверсий.
- Кампании, в которых задано определенное действие-конверсия, будут переключены на цели конверсий по умолчанию из управляющего аккаунта. Если вы продолжите задавать определенное действие-конверсию, это может привести к непоследовательному поведению, поскольку в управляющем аккаунте могут быть заданы другие цели, чем в клиентском аккаунте. Убедитесь, что ваши кампании оптимизированы для достижения нужных целей.
- Если аккаунт связан с несколькими управляющими аккаунтами, в нем могут использоваться действия-конверсии только из одного из них. Если аккаунт для отслеживания конверсий не указан, по умолчанию будет использоваться текущий аккаунт.
Импорт конверсий в разных аккаунтах
Если отслеживание конверсий в управляющем аккаунте включено, клиентские и управляющие аккаунты могут импортировать конверсии от имени аккаунта для показа рекламы. Это позволяет упростить логику импорта, чтобы вам не приходилось определять аккаунт показа для каждой конверсии во время импорта. Вы можете просто выбрать один аккаунт из дерева аккаунтов, чтобы импортировать все конверсии.
Чтобы загрузка конверсии прошла успешно, у аккаунта, из которого она выполняется, должен быть доступ к действию-конверсии. В иерархии отслеживания нескольких аккаунтов аккаунт, в который загружаются данные, имеет доступ к действию, если он является родительским (управляющим) или дочерним по отношению к владельцу действия-конверсии в дереве аккаунтов.
На диаграмме ниже показана структура авторизации для импорта конверсий. Здесь C1 – это клиентский аккаунт, в котором было показано объявление, вызвавшее конверсию, а M2 – владелец действия-конверсии и родительский аккаунт для отслеживания конверсий аккаунта C1. Аккаунты, выделенные зеленым цветом, могут импортировать конверсии от имени C1, а аккаунты, выделенные красным, – нет.

Создайте действия-конверсии
Чтобы отслеживать конверсии, настройте ConversionAction для type действия-конверсии, которое хотите отслеживать.
Например, для онлайн-покупки и телефонного звонка требуются разные действия-конверсии.
Лучший способ настроить новые действия-конверсии в API – использовать пример кода для добавления действия-конверсии. В образце реализованы все фоновые задачи аутентификации, а также пошаговые инструкции по созданию ConversionAction.
Для большинства действий-конверсий также требуются дополнительные действия с вашей стороны, чтобы отслеживать их. Например, чтобы отслеживать конверсии на сайте, нужно добавить на страницу конверсии фрагмент кода, который называется тегом. Подробные требования к другим типам действий-конверсий можно найти в статье Справочного центра Google Рекламы о типах конверсий.
Если вы используете отслеживание конверсий в управляющем аккаунте, функция ConversionActionService возвращает следующие действия-конверсии:
- Все действия-конверсии, заданные в управляющем аккаунте, который используется для отслеживания конверсий в нескольких аккаунтах.
- Все действия-конверсии, по которым у клиента собрана статистика, включая действия, заданные системой, и действия, принадлежащие управляющему аккаунту, даже если он впоследствии будет отменен.
- Все действия, которые клиент определил в своем аккаунте.
- Конверсии Аналитики, созданные в связанных ресурсах Google Аналитики.
Сюда входят действия для конверсий Аналитики, не импортированных в Google Рекламу, которые имеют статус
HIDDEN.
Пример кода
В примере кода ниже показано, как создать новое действие-конверсию. В частности, он создает действие-конверсию со значением UPLOAD_CLICKS для параметра type.
Также для параметра category задается значение DEFAULT.
По умолчанию применяются следующие настройки:
Google Ads API автоматически задает значение поля
primary_for_goal, но вы можете указать его вручную, чтобы контролировать, как действие-конверсия влияет на отчеты и назначение ставок в вашем аккаунте, когда оно объединяется с целями конверсий.Google Ads API автоматически устанавливает для параметра
counting_typeзначениеMANY_PER_CLICK. Подробнее о настройках учета конверсий…Google Ads API задает модель атрибуции На основе данных, установив для поля
attribution_model_settingsзначениеGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVENизAttributionModel. Подробнее о моделях атрибуции…
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId) { // Creates a ConversionAction. ConversionAction conversionAction = ConversionAction.newBuilder() // Note that conversion action names must be unique. If a conversion action already // exists with the specified conversion_action_name the create operation will fail with // a ConversionActionError.DUPLICATE_NAME error. .setName("Earth to Mars Cruises Conversion #" + getPrintableDateTime()) .setCategory(ConversionActionCategory.DEFAULT) .setType(ConversionActionType.WEBPAGE) .setStatus(ConversionActionStatus.ENABLED) .setViewThroughLookbackWindowDays(15L) .setValueSettings( ValueSettings.newBuilder() .setDefaultValue(23.41) .setAlwaysUseDefaultValue(true) .build()) .build(); // Creates the operation. ConversionActionOperation operation = ConversionActionOperation.newBuilder().setCreate(conversionAction).build(); try (ConversionActionServiceClient conversionActionServiceClient = googleAdsClient.getLatestVersion().createConversionActionServiceClient()) { MutateConversionActionsResponse response = conversionActionServiceClient.mutateConversionActions( Long.toString(customerId), Collections.singletonList(operation)); System.out.printf("Added %d conversion actions:%n", response.getResultsCount()); for (MutateConversionActionResult result : response.getResultsList()) { System.out.printf( "New conversion action added with resource name: '%s'%n", result.getResourceName()); } } }
C#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V25.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V25::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V25::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
Этот пример можно найти в папке Remarketing клиентской библиотеки и в коллекции примеров кода: Пример кода для добавления действия-конверсии.
Проверка
Google Реклама и Google Ads API поддерживают множество действий-конверсий, поэтому некоторые правила проверки зависят от type действия.
Самая распространенная ошибка при создании действия-конверсии – DUPLICATE_NAME. Убедитесь, что для каждого действия-конверсии используется уникальное название.
Вот несколько советов по настройке полей ConversionAction:
- Все поля перечислений
- При попытке задать для любого поля перечисления значение
UNKNOWNвозникает ошибкаRequestError.INVALID_ENUM_VALUE. app_id- Атрибут
app_idнельзя изменить. Его можно задать только при создании конверсии в приложении. attribution_model_settings- Если задать устаревший вариант, возникнет ошибка
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS. Google Реклама поддерживает толькоGOOGLE_ADS_LAST_CLICKиGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN. click_through_lookback_window_daysЕсли задать для этого атрибута значение, выходящее за пределы допустимого диапазона, возникнет ошибка
RangeError.TOO_LOWилиRangeError.TOO_HIGH.Для действия-конверсии
AD_CALLилиWEBSITE_CALLзначение этого атрибута должно быть в диапазоне от 1 до 60 дней. Для большинства других действий-конверсий допустимый диапазон составляет от 1 до 90 дней.include_in_conversions_metricЕсли задать это значение в операции
createилиupdate, произойдет ошибкаFieldError.IMMUTABLE_FIELD. Вместо этого настройтеprimary_for_goal, как описано в руководстве по целям конверсий.phone_call_duration_secondsЕсли попытаться задать этот атрибут для действия-конверсии, не связанного со звонками, возникнет ошибка
FieldError.VALUE_MUST_BE_UNSET.typeАтрибут
typeнельзя изменить. Его можно задать только при создании новой конверсии.При попытке обновить действие-конверсию, задав для параметра
typeзначениеUNKNOWN, возникает ошибкаMutateError.MUTATE_NOT_ALLOWED.value_settingsvalue_settingsдля действия-конверсииWEBSITE_CALLилиAD_CALLдолжен иметь значениеalways_use_default_value, равноеtrue. Если при создании или изменении этого значения указатьfalse, возникнет ошибкаINVALID_VALUE.view_through_lookback_window_daysЕсли задать для этого атрибута значение, выходящее за пределы допустимого диапазона, возникнет ошибка
RangeError.TOO_LOWилиRangeError.TOO_HIGH. Для большинства действий-конверсий допустимый диапазон составляет от 1 до 30 дней.Этот атрибут нельзя задать для действий-конверсий
AD_CALLилиWEBSITE_CALL. Если указать значение, возникнет ошибкаVALUE_MUST_BE_UNSET.