В этом руководстве представлен список различных типов действий-конверсий, которые можно создать с помощью API Google Рекламы, информация о том, как они сопоставляются с веб-интерфейсом Google Рекламы, а также подробный пример кода, демонстрирующий, как создавать новые действия-конверсии.
Чтобы отслеживать конверсии, настройте ConversionAction
для того type
действия-конверсии, которое вы хотите отслеживать. Например, онлайн-покупка и телефонный звонок требуют разных конверсионных действий.
Лучший способ настроить новые действия-конверсии в API — использовать приведенный ниже пример кода «Добавить действие-конверсию» . Образец выполняет все задачи фоновой проверки подлинности и помогает создать ConversionAction
.
Большинство действий-конверсий также требуют дополнительных действий с вашей стороны для их отслеживания. Например, чтобы отслеживать конверсии на вашем веб-сайте, вам необходимо добавить фрагмент кода, называемый тегом, на страницу конверсий на вашем веб-сайте. Подробные требования к другим типам действий-конверсий можно найти в статье нашего Справочного центра .
Конверсии веб-сайта
Преобразование веб-сайта позволяет отслеживать действия на веб-сайте, такие как онлайн-продажи, клики по ссылкам, просмотры страниц и регистрации.
Чтобы отслеживать конверсии на своем веб-сайте, необходимо создать ConversionAction
с ConversionActionType
, установленным на WEBPAGE
, и добавить фрагмент кода, называемый тегом, на страницу конверсии на вашем веб-сайте.
ConversionAction
охватывает несколько типов конверсий веб-сайта, которые в API различаются по полю type
в каждом TagSnippet
, указанном в поле tag_snippets ConversionAction
.
TagSnippet
предоставляет код отслеживания, который необходимо включить на ваш веб-сайт, чтобы отслеживать ваши действия-конверсии. Для конверсий по кликам на веб-сайте и по номеру телефона требуется event_snippet
, который следует размещать на веб-страницах, обозначающих действие-конверсию, например страница подтверждения оформления заказа или отправки формы для потенциальных клиентов, а также global_site_tag
, который необходимо установить на каждой странице вашего веб-сайта. Вы можете получить оба этих атрибута с помощью ConversionActionService
. Посетите наш Справочный центр для получения дополнительной информации о том, как пометить свои страницы.
В следующей таблице показаны эквивалентные параметры API, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип кода отслеживания | Источник Google Рекламы |
---|---|
WEBPAGE | Веб-сайт, Веб-сайт (Google Analytics (GA4)) |
WEBPAGE_ONCLICK | Веб-сайт, Веб-сайт (Google Analytics (GA4)) |
CLICK_TO_CALL | Клики по номеру телефона |
Конверсии приложений
Конверсия приложения позволяет отслеживать установки мобильных приложений или покупки приложений в Google Play Store .
В следующей таблице показаны эквивалентные параметры API ConversionActionType
, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип действия-конверсии | Источник Google Рекламы |
---|---|
GOOGLE_PLAY_DOWNLOAD | Google Play > Установки |
GOOGLE_PLAY_IN_APP_PURCHASE | Google Play > Покупки в приложении |
Чтобы отслеживать другие действия в мобильном приложении с помощью свойств Google Аналитики 4 или сторонней аналитики приложений , см. Дополнительные типы действий-конверсий .
Конверсии по телефонным звонкам
Отслеживание конверсий по телефонным звонкам позволяет отслеживать звонки по рекламе, звонки на номера на вашем веб-сайте и клики по номерам на мобильных сайтах.
В следующей таблице показаны эквивалентные параметры API ConversionActionType
, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип действия-конверсии | Источник Google Рекламы |
---|---|
AD_CALL | Звонки из рекламы с использованием номеров телефонов или объявлений только с номером телефона. |
WEBSITE_CALL | Звонки на номер телефона, указанный на вашем сайте |
CLICK_TO_CALL | Клики по номеру на вашем мобильном сайте |
AD_CALL
Действие-конверсия AD_CALL
отображается как конверсия «Звонки из рекламы» в веб-интерфейсе Google Рекламы. После создания действия-конверсии AD_CALL
укажите имя его ресурса в поле call_conversion_action
при создании CallAsset
. Объекты звонков позволяют показывать номер телефона прямо в объявлениях.
Звонок считается конверсией, если он длится дольше указанной продолжительности. Значение по умолчанию — 60 секунд.
WEBSITE_CALL
Действие-конверсия WEBSITE_CALL
отображается как конверсия «Звонки с веб-сайта» в веб-интерфейсе Google Рекламы.
В отличие от AD_CALL
, этот трекер требует добавления event_snippet
и global_site_tag
на ваш веб-сайт, чтобы получить динамический номер переадресации Google для отслеживания вызовов по номерам, указанным на вашем веб-сайте. Кроме того, вам необходимо настроить актив звонка и связать его на уровне клиента, кампании или группы объявлений .
CLICK_TO_CALL
Действие-конверсия CLICK_TO_CALL
отображается как конверсия «Клик по вашему номеру на мобильном веб-сайте» в веб-интерфейсе Google Рекламы.
Тип CLICK_TO_CALL
отличается от типа AD_CALL
тем, что он не отслеживает реальные телефонные звонки. Вместо этого CLICK_TO_CALL
отслеживает только клики по номеру телефона с мобильного устройства. Это полезно, если вы не можете использовать номер Google для переадресации для отслеживания телефонных звонков.
Импортировать офлайн-конверсии
В следующей таблице показаны эквивалентные параметры API ConversionActionType
, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы, а также ссылка на документацию для каждого конкретного типа действия-конверсии:
Тип действия-конверсии | Источник Google Рекламы | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Отслеживайте конверсии по кликам и расширенному конверсиям для потенциальных клиентов. | Руководство по загрузке кликов Руководство по расширенному отслеживанию конверсий для потенциальных клиентов |
UPLOAD_CALLS | Отслеживайте конверсии по звонкам | Руководство по настройке API |
STORE_SALES | Отслеживание конверсий и продаж в магазине | Руководство по настройке API |
Расширенное преобразование
Расширенное отслеживание конверсий помогает повысить точность измерения конверсий, дополняя существующие теги конверсий собственными данными о конверсиях, такими как адрес электронной почты, имя, домашний адрес и номер телефона.
В следующей таблице показаны эквивалентные параметры API, которые можно использовать для каждого типа расширенного преобразования :
Тип действия-конверсии | Расширенный тип конверсии | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Улучшенные конверсии для потенциальных клиентов Улучшает измерение офлайн-транзакций, совершенных лидом или посетителем веб-сайта. | Руководство по настройке API |
WEBPAGE | Расширенное отслеживание конверсий для Интернета Улучшает измерение онлайн-конверсий. | Руководство по настройке API |
Дополнительные типы действий-конверсий
API Google Рекламы делает дополнительные типы действий-конверсий доступными в отчетах, но может ограничивать или запрещать создание или изменение этих действий.
Конверсии SKAdNetwork
Если вы запускаете кампании для приложений iOS и внедрили SKAdNetwork , вы можете получить доступ к данным SKAdNetwork, предоставленным Google, на уровне Customer
и Campaign
, используя следующие ресурсы:
Поле отчета | Описание |
---|---|
metrics.sk_ad_network_installs | Количество установок, о которых сообщает Apple. Этот показатель можно сегментировать только по любой комбинации segments.sk_ad_network_conversion_value и сегментов, связанных с датой. |
metrics.sk_ad_network_total_conversions | Общее количество конверсий, включая установки и другие типы конверсий, о которых сообщает Apple. Эту метрику можно сегментировать только по сегментам, связанным с SKAdNetwork, и сегментам, связанным с датами. |
segments.sk_ad_network_ad_event_type | Тип события, произошедшего при конкретной конверсии. |
segments.sk_ad_network_attribution_credit | Как атрибуция учитывается для конкретной конверсии. |
segments.sk_ad_network_fine_conversion_value | Ценность конверсии, указанная Apple. Этот сегмент нельзя применять ни к каким показателям, кроме Значение |
segments.sk_ad_network_coarse_conversion_value | Грубое значение для отдельного преобразования. |
segments.sk_ad_network_postback_sequence_index | Позиция обратной передачи в последовательности для конкретного преобразования. |
segments.sk_ad_network_source_app.sk_ad_network_source_app_id | Идентификатор приложения, в котором было показано объявление, которое привело к установке в рекламной сети iOS Store Kit. |
segments.sk_ad_network_source_domain | Веб-сайт, на котором было показано объявление, которое привело к установке рекламной сети iOS Store Kit. Нулевое значение означает, что этот сегмент неприменим (например, для кампании, отличной от iOS) или не присутствовал ни в одной обратной передаче, отправленной Apple. |
segments.sk_ad_network_source_type | Тип источника, в котором было показано объявление, которое привело к установке рекламной сети iOS Store Kit. Нулевое значение означает, что этот сегмент неприменим (например, кампания, отличная от iOS), или ни исходный домен, ни исходное приложение не присутствовали ни в каких обратных передачах, отправленных Apple. |
segments.sk_ad_network_user_type | Тип пользователя, совершившего конкретную конверсию. |
segments.sk_ad_network_redistributed_fine_conversion_value | Ценность конверсии в этом сегменте включает нулевые значения, которые были перераспределены в ценность конверсии. Этот сегмент представляет собой сумму наблюдаемых значений штрафных конверсий, возвращенных Apple, и смоделированных нулевых значений от Google. |
segments.sk_ad_network_version | Используемая версия API рекламной сети iOS Store Kit. |
Вы также можете сохранить сопоставление ценности конверсии SKAdNetwork для конкретных клиентов, связанных с приложениями iOS, с помощью CustomerSkAdNetworkConversionValueSchema
.
Пример кода Python
#!/usr/bin/env python # Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import argparse import sys from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.errors import GoogleAdsException def main(client, customer_id): """Adds a keyword plan, campaign, ad group, etc. to the customer account. Also handles errors from the API and prints them. Args: client: An initialized instance of GoogleAdsClient customer_id: A str of the customer_id to use in requests. """ res = update_skan_cv_schema( client, customer_id, "my_app_id", "account_link_id" ) print(res) def update_skan_cv_schema(client, customer_id, app_id, account_link_id): skan_service = client.get_service( "CustomerSkAdNetworkConversionValueSchemaService" ) req = client.get_type( "MutateCustomerSkAdNetworkConversionValueSchemaRequest" ) operation = client.get_type( "CustomerSkAdNetworkConversionValueSchemaOperation" ) schema_instance = client.get_type( "CustomerSkAdNetworkConversionValueSchema" ) new_schema = operation.update new_schema.resource_name = ( skan_service.customer_sk_ad_network_conversion_value_schema_path( "customer_id", "account_link_id" ) ) new_schema.schema.app_id = app_id new_schema.schema.measurement_window_hours = 48 skan_cv_mapping = ( schema_instance.SkAdNetworkConversionValueSchema.FineGrainedConversionValueMappings() ) skan_cv_mapping.fine_grained_conversion_value = 0 # 0 - 63 skan_cv_mapping.conversion_value_mapping.min_time_post_install_hours = 0 skan_cv_mapping.conversion_value_mapping.max_time_post_install_hours = 48 skan_cv_event = schema_instance.SkAdNetworkConversionValueSchema.Event() skan_cv_event.mapped_event_name = "TEST" skan_cv_event.event_revenue_value = 10 skan_cv_mapping.conversion_value_mapping.mapped_events.append(skan_cv_event) new_schema.schema.fine_grained_conversion_value_mappings.append( skan_cv_mapping ) req.operation = operation req.customer_id = customer_id res = skan_service.mutate_customer_sk_ad_network_conversion_value_schema( req ) return res if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. googleads_client = GoogleAdsClient.load_from_storage( version="v19" ) parser = argparse.ArgumentParser( description="Creates a keyword plan for specified customer." ) # The following argument(s) should be provided to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Google Ads customer ID.", ) args = parser.parse_args() try: main(googleads_client, args.customer_id) except GoogleAdsException as ex: print( f'Request with ID "{ex.request_id}" failed with status ' f'"{ex.error.code().name}" and includes the following errors:' ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1)
Гугл Аналитика
Конверсии из связанного ресурса Google Analytics имеют одно из следующих значений type
:
Преобразование ресурса GA4:
-
GOOGLE_ANALYTICS_4_CUSTOM
-
GOOGLE_ANALYTICS_4_PURCHASE
Вы также можете получить идентификатор ресурса GA4, название свойства и название события из поля
google_analytics_4_settings
.-
Вы можете внести следующие изменения в преобразование ресурса GA4:
- Импортируйте конверсию из своего ресурса GA4 в свой аккаунт Google Реклама, изменив ее
status
соHIDDEN
наENABLED
. - Измените поля
primary_for_goal
иcategory
, чтобы указать, как это должно повлиять на ставки и отчеты Google Рекламы . - Обновите его
name
илиvalue_settings
. - Удалите конверсию из своего аккаунта Google Рекламы с помощью операции
remove
.
Любая попытка изменить другие атрибуты импортированной конверсии GA4 или любые атрибуты импортированной конверсии Universal Analytics приводит к ошибке MUTATE_NOT_ALLOWED
. Вы можете внести эти изменения только с помощью пользовательского интерфейса Google Рекламы.
Аналитика Firebase и сторонних приложений
Чтобы импортировать аналитику сторонних приложений или конверсии Firebase , измените status
ConversionAction
со HIDDEN
на ENABLED
с помощью метода mutate
ConversionActionService
. Обновление app_id
не поддерживается для этих действий-конверсий.
-
FIREBASE_ANDROID_FIRST_OPEN
-
FIREBASE_ANDROID_IN_APP_PURCHASE
-
FIREBASE_ANDROID_CUSTOM
-
FIREBASE_IOS_FIRST_OPEN
-
FIREBASE_IOS_IN_APP_PURCHASE
-
FIREBASE_IOS_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM
Продажи в магазине: загрузка в действие-конверсию с отчетами
Хотя вы не можете создавать действия-конверсии STORE_SALES
или STORE_SALES_DIRECT_UPLOAD
с помощью API Google Рекламы, API поддерживает загрузку транзакций продаж в магазине .
-
STORE_SALES
-
STORE_SALES_DIRECT_UPLOAD
Типы действий-конверсий, доступных только для чтения
Следующие типы действий-конверсий доступны только для чтения в API Google Рекламы и предоставляются для целей отчетности.
-
ANDROID_APP_PRE_REGISTRATION
-
ANDROID_INSTALLS_ALL_OTHER_APPS
-
FLOODLIGHT_ACTION
-
FLOODLIGHT_TRANSACTION
-
GOOGLE_HOSTED
-
LEAD_FORM_SUBMIT
-
SALESFORCE
-
SEARCH_ADS_360
-
SMART_CAMPAIGN_AD_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_DIRECTIONS
-
SMART_CAMPAIGN_TRACKED_CALLS
-
STORE_VISITS
-
WEBPAGE_CODELESS
Неизвестный
Если ваш аккаунт Google Реклама включает другие типы действий-конверсий, вы можете обнаружить, что запросы и отчеты возвращают действия-конверсии, в которых ConversionAction.type
имеет значение UNKNOWN
. API не поддерживает управление этими действиями-конверсиями, но возвращает их в отчетах, чтобы предоставить полные результаты для ключевых показателей конверсий, таких как metrics.conversions
и metrics.conversions_value
.
Пример кода
В следующем примере кода показан процесс создания нового действия-конверсии. В частности, он создает действие-конверсию с type
UPLOAD_CLICKS
. Это тот же процесс пользовательского интерфейса Google Рекламы, что и при создании нового действия-конверсии с помощью команды «Импорт» > «Импорт вручную с помощью API» или «Загрузка» > «Отслеживание конверсий по кликам» . Он также устанавливает category
DEFAULT
.
Применяются следующие настройки по умолчанию:
API Google Рекламы автоматически задает поле
primary_for_goal
, но вы можете установить это поле явно, чтобы контролировать, как действие-конверсия влияет на отчеты и ставки в вашем аккаунте в сочетании с целями конверсии .API Google Рекламы автоматически устанавливает для
counting_type
значениеMANY_PER_CLICK
Дополнительные сведения см. в разделе О параметрах подсчета конверсий .API Google Рекламы устанавливает модель атрибуции на основе данных, устанавливая в поле
attribution_model_settings
значениеGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
AttributionModel
. Дополнительную информацию о моделях атрибуции можно найти в этой статье Справочного центра .
Ява
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()); } } }
С#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V19.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 ); } }
Питон
def main(client, customer_id): conversion_action_service = client.get_service("ConversionActionService") # Create the operation. conversion_action_operation = client.get_type("ConversionActionOperation") # Create conversion action. conversion_action = 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 = conversion_action.value_settings value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response = ( 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}".' )
Руби
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
Перл
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::V19::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V19::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V19::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; }
Этот пример также можно найти в папке «Ремаркетинг» вашей клиентской библиотеки и в коллекции примеров кода: «Добавить пример кода действия-конверсии» .
Валидации
Google Реклама и API Google Рекламы поддерживают широкий спектр действий-конверсий, поэтому некоторые правила проверки различаются в зависимости от 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,30]
.-
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_settings
value_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
.
В этом руководстве представлен список различных типов действий-конверсий, которые можно создать с помощью API Google Рекламы, информация о том, как они сопоставляются с веб-интерфейсом Google Рекламы, а также подробный пример кода, демонстрирующий, как создавать новые действия-конверсии.
Чтобы отслеживать конверсии, настройте ConversionAction
для того type
действия-конверсии, которое вы хотите отслеживать. Например, онлайн-покупка и телефонный звонок требуют разных конверсионных действий.
Лучший способ настроить новые действия-конверсии в API — использовать приведенный ниже пример кода «Добавить действие-конверсию» . Образец выполняет все задачи фоновой проверки подлинности и помогает создать ConversionAction
.
Большинство действий-конверсий также требуют дополнительных действий с вашей стороны для их отслеживания. Например, чтобы отслеживать конверсии на вашем веб-сайте, вам необходимо добавить фрагмент кода, называемый тегом, на страницу конверсий на вашем веб-сайте. Подробные требования к другим типам действий-конверсий можно найти в статье нашего Справочного центра .
Конверсии веб-сайта
Преобразование веб-сайта позволяет отслеживать действия на веб-сайте, такие как онлайн-продажи, клики по ссылкам, просмотры страниц и регистрации.
Чтобы отслеживать конверсии на своем веб-сайте, необходимо создать ConversionAction
с ConversionActionType
, установленным на WEBPAGE
, и добавить фрагмент кода, называемый тегом, на страницу конверсии на вашем веб-сайте.
ConversionAction
охватывает несколько типов конверсий веб-сайта, которые в API различаются по полю type
в каждом TagSnippet
, указанном в поле tag_snippets ConversionAction
.
TagSnippet
предоставляет код отслеживания, который необходимо включить на ваш веб-сайт, чтобы отслеживать ваши действия-конверсии. Для конверсий по кликам на веб-сайте и по номеру телефона требуется event_snippet
, который следует размещать на веб-страницах, обозначающих действие-конверсию, например страница подтверждения оформления заказа или отправки формы для потенциальных клиентов, а также global_site_tag
, который необходимо установить на каждой странице вашего веб-сайта. Вы можете получить оба этих атрибута с помощью ConversionActionService
. Посетите наш Справочный центр для получения дополнительной информации о том, как пометить свои страницы.
В следующей таблице показаны эквивалентные параметры API, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип кода отслеживания | Источник Google Рекламы |
---|---|
WEBPAGE | Веб-сайт, Веб-сайт (Google Analytics (GA4)) |
WEBPAGE_ONCLICK | Веб-сайт, Веб-сайт (Google Analytics (GA4)) |
CLICK_TO_CALL | Клики по номеру телефона |
Конверсии приложений
Конверсия приложения позволяет отслеживать установки мобильных приложений или покупки приложений в Google Play Store .
В следующей таблице показаны эквивалентные параметры API ConversionActionType
, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип действия-конверсии | Источник Google Рекламы |
---|---|
GOOGLE_PLAY_DOWNLOAD | Google Play > Установки |
GOOGLE_PLAY_IN_APP_PURCHASE | Google Play > Покупки в приложении |
Чтобы отслеживать другие действия в мобильном приложении с помощью свойств Google Аналитики 4 или сторонней аналитики приложений , см. Дополнительные типы действий-конверсий .
Конверсии по телефонным звонкам
Отслеживание конверсий по телефонным звонкам позволяет отслеживать звонки по рекламе, звонки на номера на вашем веб-сайте и клики по номерам на мобильных сайтах.
В следующей таблице показаны эквивалентные параметры API ConversionActionType
, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип действия-конверсии | Источник Google Рекламы |
---|---|
AD_CALL | Звонки из рекламы с использованием номеров телефонов или объявлений только с номером телефона. |
WEBSITE_CALL | Звонки на номер телефона, указанный на вашем сайте |
CLICK_TO_CALL | Клики по номеру на вашем мобильном сайте |
AD_CALL
Действие-конверсия AD_CALL
отображается как конверсия «Звонки из рекламы» в веб-интерфейсе Google Рекламы. После создания действия-конверсии AD_CALL
укажите имя его ресурса в поле call_conversion_action
при создании CallAsset
. Объекты звонков позволяют показывать номер телефона прямо в объявлениях.
Звонок считается конверсией, если он длится дольше указанной продолжительности. Значение по умолчанию — 60 секунд.
WEBSITE_CALL
Действие-конверсия WEBSITE_CALL
отображается как конверсия «Звонки с веб-сайта» в веб-интерфейсе Google Рекламы.
В отличие от AD_CALL
, этот трекер требует добавления event_snippet
и global_site_tag
на ваш веб-сайт, чтобы получить динамический номер переадресации Google для отслеживания вызовов по номерам, указанным на вашем веб-сайте. Кроме того, вам необходимо настроить актив звонка и связать его на уровне клиента, кампании или группы объявлений .
CLICK_TO_CALL
Действие-конверсия CLICK_TO_CALL
отображается как конверсия «Клик по вашему номеру на мобильном веб-сайте» в веб-интерфейсе Google Рекламы.
Тип CLICK_TO_CALL
отличается от типа AD_CALL
тем, что он не отслеживает реальные телефонные звонки. Вместо этого CLICK_TO_CALL
отслеживает только клики по номеру телефона с мобильного устройства. Это полезно, если вы не можете использовать номер Google для переадресации для отслеживания телефонных звонков.
Импортировать офлайн-конверсии
В следующей таблице показаны эквивалентные параметры API ConversionActionType
, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы, а также ссылка на документацию для каждого конкретного типа действия-конверсии:
Тип действия-конверсии | Источник Google Рекламы | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Отслеживайте конверсии по кликам и расширенному конверсиям для потенциальных клиентов. | Руководство по загрузке кликов Руководство по расширенному отслеживанию конверсий для потенциальных клиентов |
UPLOAD_CALLS | Отслеживайте конверсии по звонкам | Руководство по настройке API |
STORE_SALES | Отслеживание конверсий и продаж в магазине | Руководство по настройке API |
Расширенное преобразование
Расширенное отслеживание конверсий помогает повысить точность измерения конверсий, дополняя существующие теги конверсий собственными данными о конверсиях, такими как адрес электронной почты, имя, домашний адрес и номер телефона.
В следующей таблице показаны эквивалентные параметры API, которые можно использовать для каждого типа расширенного преобразования :
Тип действия-конверсии | Расширенный тип конверсии | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Улучшенные конверсии для потенциальных клиентов Улучшает измерение офлайн-транзакций, совершенных лидом или посетителем веб-сайта. | Руководство по настройке API |
WEBPAGE | Расширенное отслеживание конверсий для Интернета Улучшает измерение онлайн-конверсий. | Руководство по настройке API |
Дополнительные типы действий-конверсий
API Google Рекламы делает дополнительные типы действий-конверсий доступными в отчетах, но может ограничивать или запрещать создание или изменение этих действий.
Конверсии SKAdNetwork
Если вы запускаете кампании для приложений iOS и внедрили SKAdNetwork , вы можете получить доступ к данным SKAdNetwork, предоставленным Google, на уровне Customer
и Campaign
, используя следующие ресурсы:
Поле отчета | Описание |
---|---|
metrics.sk_ad_network_installs | Количество установок, о которых сообщает Apple. Этот показатель можно сегментировать только по любой комбинации segments.sk_ad_network_conversion_value и сегментов, связанных с датой. |
metrics.sk_ad_network_total_conversions | Общее количество конверсий, включая установки и другие типы конверсий, о которых сообщает Apple. Эту метрику можно сегментировать только по сегментам, связанным с SKAdNetwork, и сегментам, связанным с датами. |
segments.sk_ad_network_ad_event_type | Тип события, произошедшего при конкретной конверсии. |
segments.sk_ad_network_attribution_credit | Как атрибуция учитывается для конкретной конверсии. |
segments.sk_ad_network_fine_conversion_value | Ценность конверсии, указанная Apple. Этот сегмент нельзя применять ни к каким показателям, кроме Значение |
segments.sk_ad_network_coarse_conversion_value | Грубое значение для отдельного преобразования. |
segments.sk_ad_network_postback_sequence_index | Позиция обратной передачи в последовательности для конкретного преобразования. |
segments.sk_ad_network_source_app.sk_ad_network_source_app_id | Идентификатор приложения, в котором было показано объявление, которое привело к установке в рекламной сети iOS Store Kit. |
segments.sk_ad_network_source_domain | Веб-сайт, на котором было показано объявление, которое привело к установке рекламной сети iOS Store Kit. Нулевое значение означает, что этот сегмент неприменим (например, для кампании, отличной от iOS) или не присутствовал ни в одной обратной передаче, отправленной Apple. |
segments.sk_ad_network_source_type | Тип источника, в котором было показано объявление, которое привело к установке рекламной сети iOS Store Kit. Нулевое значение означает, что этот сегмент неприменим (например, кампания, отличная от iOS), или ни в каких обратных передачах, отправленных Apple, не присутствовали ни исходный домен, ни исходное приложение. |
segments.sk_ad_network_user_type | Тип пользователя, совершившего конкретную конверсию. |
segments.sk_ad_network_redistributed_fine_conversion_value | Ценность конверсии в этом сегменте включает нулевые значения, которые были перераспределены в ценность конверсии. Этот сегмент представляет собой сумму наблюдаемых значений штрафных конверсий, возвращенных Apple, и смоделированных нулевых значений от Google. |
segments.sk_ad_network_version | Используемая версия API рекламной сети iOS Store Kit. |
Вы также можете сохранить сопоставление ценности конверсии SKAdNetwork для конкретных клиентов, связанных с приложениями iOS, с помощью CustomerSkAdNetworkConversionValueSchema
.
Пример кода Python
#!/usr/bin/env python # Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import argparse import sys from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.errors import GoogleAdsException def main(client, customer_id): """Adds a keyword plan, campaign, ad group, etc. to the customer account. Also handles errors from the API and prints them. Args: client: An initialized instance of GoogleAdsClient customer_id: A str of the customer_id to use in requests. """ res = update_skan_cv_schema( client, customer_id, "my_app_id", "account_link_id" ) print(res) def update_skan_cv_schema(client, customer_id, app_id, account_link_id): skan_service = client.get_service( "CustomerSkAdNetworkConversionValueSchemaService" ) req = client.get_type( "MutateCustomerSkAdNetworkConversionValueSchemaRequest" ) operation = client.get_type( "CustomerSkAdNetworkConversionValueSchemaOperation" ) schema_instance = client.get_type( "CustomerSkAdNetworkConversionValueSchema" ) new_schema = operation.update new_schema.resource_name = ( skan_service.customer_sk_ad_network_conversion_value_schema_path( "customer_id", "account_link_id" ) ) new_schema.schema.app_id = app_id new_schema.schema.measurement_window_hours = 48 skan_cv_mapping = ( schema_instance.SkAdNetworkConversionValueSchema.FineGrainedConversionValueMappings() ) skan_cv_mapping.fine_grained_conversion_value = 0 # 0 - 63 skan_cv_mapping.conversion_value_mapping.min_time_post_install_hours = 0 skan_cv_mapping.conversion_value_mapping.max_time_post_install_hours = 48 skan_cv_event = schema_instance.SkAdNetworkConversionValueSchema.Event() skan_cv_event.mapped_event_name = "TEST" skan_cv_event.event_revenue_value = 10 skan_cv_mapping.conversion_value_mapping.mapped_events.append(skan_cv_event) new_schema.schema.fine_grained_conversion_value_mappings.append( skan_cv_mapping ) req.operation = operation req.customer_id = customer_id res = skan_service.mutate_customer_sk_ad_network_conversion_value_schema( req ) return res if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. googleads_client = GoogleAdsClient.load_from_storage( version="v19" ) parser = argparse.ArgumentParser( description="Creates a keyword plan for specified customer." ) # The following argument(s) should be provided to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Google Ads customer ID.", ) args = parser.parse_args() try: main(googleads_client, args.customer_id) except GoogleAdsException as ex: print( f'Request with ID "{ex.request_id}" failed with status ' f'"{ex.error.code().name}" and includes the following errors:' ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1)
Гугл Аналитика
Конверсии из связанного ресурса Google Analytics имеют одно из следующих значений type
:
Преобразование ресурса GA4:
-
GOOGLE_ANALYTICS_4_CUSTOM
-
GOOGLE_ANALYTICS_4_PURCHASE
Вы также можете получить идентификатор ресурса GA4, название свойства и название события из поля
google_analytics_4_settings
.-
Вы можете внести следующие изменения в преобразование ресурса GA4:
- Импортируйте конверсию из своего ресурса GA4 в свой аккаунт Google Реклама, изменив ее
status
соHIDDEN
наENABLED
. - Измените поля
primary_for_goal
иcategory
, чтобы указать, как это должно повлиять на ставки и отчеты Google Рекламы . - Обновите его
name
илиvalue_settings
. - Удалите конверсию из своего аккаунта Google Рекламы с помощью операции
remove
.
Любая попытка изменить другие атрибуты импортированной конверсии GA4 или любые атрибуты импортированной конверсии Universal Analytics приводит к ошибке MUTATE_NOT_ALLOWED
. Вы можете внести эти изменения только с помощью пользовательского интерфейса Google Рекламы.
Аналитика Firebase и сторонних приложений
Чтобы импортировать аналитику сторонних приложений или конверсии Firebase , измените status
ConversionAction
со HIDDEN
на ENABLED
с помощью метода mutate
ConversionActionService
. Обновление app_id
не поддерживается для этих действий-конверсий.
-
FIREBASE_ANDROID_FIRST_OPEN
-
FIREBASE_ANDROID_IN_APP_PURCHASE
-
FIREBASE_ANDROID_CUSTOM
-
FIREBASE_IOS_FIRST_OPEN
-
FIREBASE_IOS_IN_APP_PURCHASE
-
FIREBASE_IOS_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM
Продажи в магазине: загрузка в действие-конверсию с отчетами
Хотя вы не можете создавать действия-конверсии STORE_SALES
или STORE_SALES_DIRECT_UPLOAD
с помощью API Google Рекламы, API поддерживает загрузку транзакций продаж в магазине .
-
STORE_SALES
-
STORE_SALES_DIRECT_UPLOAD
Типы действий-конверсий, доступных только для чтения
Следующие типы действий-конверсий доступны только для чтения в API Google Рекламы и предоставляются для целей отчетности.
-
ANDROID_APP_PRE_REGISTRATION
-
ANDROID_INSTALLS_ALL_OTHER_APPS
-
FLOODLIGHT_ACTION
-
FLOODLIGHT_TRANSACTION
-
GOOGLE_HOSTED
-
LEAD_FORM_SUBMIT
-
SALESFORCE
-
SEARCH_ADS_360
-
SMART_CAMPAIGN_AD_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_DIRECTIONS
-
SMART_CAMPAIGN_TRACKED_CALLS
-
STORE_VISITS
-
WEBPAGE_CODELESS
Неизвестный
Если ваш аккаунт Google Рекламы включает другие типы действий-конверсий, вы можете обнаружить, что запросы и отчеты возвращают действия-конверсии, в которых ConversionAction.type
имеет значение UNKNOWN
. API не поддерживает управление этими действиями-конверсиями, но возвращает их в отчетах, чтобы предоставить полные результаты для ключевых показателей конверсий, таких как metrics.conversions
и metrics.conversions_value
.
Пример кода
В следующем примере кода показан процесс создания нового действия-конверсии. В частности, он создает действие-конверсию с type
UPLOAD_CLICKS
. Это тот же процесс пользовательского интерфейса Google Рекламы, что и при создании нового действия-конверсии с помощью команды «Импорт» > «Импорт вручную с помощью API» или «Загрузка» > «Отслеживание конверсий по кликам» . Он также устанавливает category
DEFAULT
.
Применяются следующие настройки по умолчанию:
API Google Рекламы автоматически задает поле
primary_for_goal
, но вы можете установить это поле явно, чтобы контролировать, как действие-конверсия влияет на отчеты и ставки в вашем аккаунте в сочетании с целями конверсии .API Google Рекламы автоматически устанавливает для
counting_type
значениеMANY_PER_CLICK
Дополнительные сведения см. в разделе О параметрах подсчета конверсий .API Google Рекламы устанавливает модель атрибуции на основе данных, устанавливая в поле
attribution_model_settings
значениеGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
AttributionModel
. Дополнительную информацию о моделях атрибуции можно найти в этой статье Справочного центра .
Ява
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()); } } }
С#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V19.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 ); } }
Питон
def main(client, customer_id): conversion_action_service = client.get_service("ConversionActionService") # Create the operation. conversion_action_operation = client.get_type("ConversionActionOperation") # Create conversion action. conversion_action = 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 = conversion_action.value_settings value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response = ( 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}".' )
Руби
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
Перл
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::V19::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V19::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V19::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; }
Этот пример также можно найти в папке «Ремаркетинг» вашей клиентской библиотеки и в коллекции примеров кода: Добавить пример кода действия-конверсии .
Валидации
Google Реклама и API Google Рекламы поддерживают широкий спектр действий-конверсий, поэтому некоторые правила проверки различаются в зависимости от 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,30]
.-
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_settings
value_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
.
В этом руководстве представлен список различных типов действий-конверсий, которые можно создать с помощью API Google Рекламы, информация о том, как они сопоставляются с веб-интерфейсом Google Рекламы, а также подробный пример кода, демонстрирующий, как создавать новые действия-конверсии.
Чтобы отслеживать конверсии, настройте ConversionAction
для того type
действия-конверсии, которое вы хотите отслеживать. Например, онлайн-покупка и телефонный звонок требуют разных конверсионных действий.
Лучший способ настроить новые действия-конверсии в API — использовать приведенный ниже пример кода «Добавить действие-конверсию» . Образец выполняет все задачи фоновой проверки подлинности и помогает создать ConversionAction
.
Большинство действий-конверсий также требуют дополнительных действий с вашей стороны для их отслеживания. Например, чтобы отслеживать конверсии на вашем веб-сайте, вам необходимо добавить фрагмент кода, называемый тегом, на страницу конверсий на вашем веб-сайте. Подробные требования к другим типам действий-конверсий можно найти в статье нашего Справочного центра .
Конверсии веб-сайта
Преобразование веб-сайта позволяет отслеживать действия на веб-сайте, такие как онлайн-продажи, клики по ссылкам, просмотры страниц и регистрации.
Чтобы отслеживать конверсии на своем веб-сайте, необходимо создать ConversionAction
с ConversionActionType
, установленным на WEBPAGE
, и добавить фрагмент кода, называемый тегом, на страницу конверсии на вашем веб-сайте.
ConversionAction
охватывает несколько типов конверсий веб-сайта, которые в API различаются по полю type
в каждом TagSnippet
, указанном в поле tag_snippets ConversionAction
.
TagSnippet
предоставляет код отслеживания, который необходимо включить на ваш веб-сайт, чтобы отслеживать ваши действия-конверсии. Для конверсий по кликам на веб-сайте и по номеру телефона требуется event_snippet
, который следует размещать на веб-страницах, обозначающих действие-конверсию, например страница подтверждения оформления заказа или отправки формы для потенциальных клиентов, а также global_site_tag
, который необходимо установить на каждой странице вашего веб-сайта. Вы можете получить оба этих атрибута с помощью ConversionActionService
. Посетите наш Справочный центр для получения дополнительной информации о том, как пометить свои страницы.
В следующей таблице показаны эквивалентные параметры API, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип кода отслеживания | Источник Google Рекламы |
---|---|
WEBPAGE | Веб-сайт, Веб-сайт (Google Analytics (GA4)) |
WEBPAGE_ONCLICK | Веб-сайт, Веб-сайт (Google Analytics (GA4)) |
CLICK_TO_CALL | Клики по номеру телефона |
Конверсии приложений
Конверсия приложения позволяет отслеживать установки мобильных приложений или покупки приложений в Google Play Store .
В следующей таблице показаны эквивалентные параметры API ConversionActionType
, которые можно использовать для каждого источника в веб-интерфейсе Google Рекламы:
Тип действия-конверсии | Источник Google Рекламы |
---|---|
GOOGLE_PLAY_DOWNLOAD | Google Play > Установки |
GOOGLE_PLAY_IN_APP_PURCHASE | Google Play > Покупки в приложении |
Чтобы отслеживать другие действия в мобильном приложении с помощью свойств Google Аналитики 4 или сторонней аналитики приложений , см. Дополнительные типы действий-конверсий .
Конверсии по телефонным звонкам
Отслеживание конверсий по телефонным звонкам позволяет отслеживать звонки по рекламе, звонки на номера на вашем веб-сайте и клики по номерам на мобильных сайтах.
В следующей таблице показаны эквивалентные параметры API ConversionActionType
для использования для каждого источника в веб -интерфейсе Google Ads:
Тип действия преобразования | Google Ads Source |
---|---|
AD_CALL | Вызовы из рекламы с использованием расширений вызовов или рекламы только для вызовов |
WEBSITE_CALL | Звонки на номер телефона на вашем сайте |
CLICK_TO_CALL | Нажимает номер на вашем мобильном веб -сайте |
AD_CALL
Действие преобразования AD_CALL
отображается в виде вызовов из конверсии рекламы в веб -интерфейсе Google Ads. После того, как вы создаете свое действие преобразования AD_CALL
, укажите его имя ресурса в поле call_conversion_action
при создании CallAsset
. Звоните в активы, позвольте вам показать номер телефона непосредственно в ваших объявлениях.
Вызов сообщается как конверсия, если он длится дольше, чем указанная продолжительность. По умолчанию 60 секунд.
WEBSITE_CALL
Действие по преобразованию WEBSITE_CALL
появляется в виде вызовов с преобразования веб -сайта в веб -интерфейсе Google Ads.
В отличие от AD_CALL
, этот трекер требует, чтобы event_snippet
и global_site_tag
для добавления на ваш веб -сайт для получения динамического номера пересылки Google для отслеживания вызовов на номерах, указанных на вашем веб -сайте. Кроме того, вы должны настроить активы вызовов и связать его на уровне клиента, кампании или рекламной группы .
CLICK_TO_CALL
Действие CLICK_TO_CALL
преобразование появляется в виде щелчка по вашему номеру на конверсии вашего мобильного веб -сайта в веб -интерфейсе Google Ads.
Тип CLICK_TO_CALL
отличается от типа AD_CALL
в том, что он не отслеживает реальные телефонные звонки. Вместо этого CLICK_TO_CALL
только отслеживает клики по номеру телефона с мобильного устройства. Это полезно, когда вы не можете использовать номер для пересылки Google для отслеживания телефонных звонков.
Импорт офлайн -конверсии
В следующей таблице показаны эквивалентные параметры API ConversionActionType
для использования для каждого источника в веб -интерфейсе Google Ads и ссылку на документацию для каждого конкретного типа действия преобразования:
Тип действия преобразования | Google Ads Source | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Конверсии отслеживания из кликов и улучшенные преобразования для потенциальных клиентов | Загрузить руководство по кликам Усовершенствованные конверсии для руководства |
UPLOAD_CALLS | Отслеживание конверсий из вызовов | Руководство по настройке API |
STORE_SALES | Продажи магазина конверсий треков | Руководство по настройке API |
Улучшенные конверсии
Усовершенствованные конверсии помогают вам повысить точность вашего измерения конверсии, дополнив существующие теги конверсии с данными первого конверсии, например, адрес электронной почты, имени, домашний адрес и номер телефона.
В следующей таблице показаны эквивалентные параметры API для использования для каждого расширенного типа преобразования :
Тип действия преобразования | Усовершенствованный тип конверсии | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Улучшенные преобразования для потенциальных клиентов Улучшает измерение автономных транзакций, которые поступили от лидера веб -сайта или посетителя | Руководство по настройке API |
WEBPAGE | Усовершенствованные преобразования для Интернета Улучшает измерение онлайн -конверсий | Руководство по настройке API |
Дополнительные типы действий конверсии
API Google Ads предоставляет дополнительные типы действий по конверсии доступными в отчетах, но может ограничить или запретить создание или модификацию этих действий.
Конверсии Skadnetwork
Если вы запустите кампании приложения iOS и реализовали Skadnetwork , вы можете получить доступ к данным Skadnetwork, предоставленным Google на уровне Customer
и Campaign
, используя следующие ресурсы:
Отчет поля | Описание |
---|---|
metrics.sk_ad_network_installs | Количество установок, о которых сообщается Apple. Эта метрика может быть сегментирована только по любой комбинации segments.sk_ad_network_conversion_value и связанных с датой сегментов. |
metrics.sk_ad_network_total_conversions | Общее количество конверсий, включая установки и другие типы конверсий, сообщенные Apple. Этот показатель может быть сегментирован только сегментами, связанными с Skadnetwork и сегментами, связанными с датой. |
segments.sk_ad_network_ad_event_type | Тип события, который произошел для конкретного преобразования. |
segments.sk_ad_network_attribution_credit | Как атрибуция зачисляется на конкретное преобразование. |
segments.sk_ad_network_fine_conversion_value | Значение конверсии, сообщаемое Apple. Этот сегмент не может быть применен к каким-либо метрикам, отличным от Значение |
segments.sk_ad_network_coarse_conversion_value | Грубое значение для индивидуального преобразования. |
segments.sk_ad_network_postback_sequence_index | Позиция обратного обращения, в последовательности, для конкретного преобразования. |
segments.sk_ad_network_source_app.sk_ad_network_source_app_id | Был показан идентификатор приложения, в котором была показана объявление, которое управляло установкой Ad Network Ad Network. |
segments.sk_ad_network_source_domain | Был показан веб -сайт, на котором была показана реклама, которая управляла компанией Ad Network Ad Network. Нулевое значение означает, что этот сегмент не применим-например, кампания без OIOS-или не присутствовало ни в каких отправках, отправленных Apple. |
segments.sk_ad_network_source_type | Был показан тип источника, где показано рекламное объявление, которое управляло установкой Ad Network Ad Network. Нулевое значение означает, что этот сегмент не применим-например, кампания без IOS-или ни исходное домен, ни исходное приложение не присутствовали в каких-либо отправках, отправленных Apple. |
segments.sk_ad_network_user_type | Тип пользователя, который генерировал конкретное преобразование. |
segments.sk_ad_network_redistributed_fine_conversion_value | Значения преобразования в этом сегменте включают нулевые значения, которые были перераспределены на значения конверсии. Этот сегмент представляет сумму наблюдаемых значений тонкого преобразования, возвращаемых Apple, и смоделированные нулевые значения из Google. |
segments.sk_ad_network_version | Версия API API набор для iOS Store, которая использовалась. |
Вы также можете сохранить картирование значений значений конверсии Skadnetwork для конкретных связанных клиентов с приложениями для iOS через CustomerSkAdNetworkConversionValueSchema
.
Образец кода Python
#!/usr/bin/env python # Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import argparse import sys from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.errors import GoogleAdsException def main(client, customer_id): """Adds a keyword plan, campaign, ad group, etc. to the customer account. Also handles errors from the API and prints them. Args: client: An initialized instance of GoogleAdsClient customer_id: A str of the customer_id to use in requests. """ res = update_skan_cv_schema( client, customer_id, "my_app_id", "account_link_id" ) print(res) def update_skan_cv_schema(client, customer_id, app_id, account_link_id): skan_service = client.get_service( "CustomerSkAdNetworkConversionValueSchemaService" ) req = client.get_type( "MutateCustomerSkAdNetworkConversionValueSchemaRequest" ) operation = client.get_type( "CustomerSkAdNetworkConversionValueSchemaOperation" ) schema_instance = client.get_type( "CustomerSkAdNetworkConversionValueSchema" ) new_schema = operation.update new_schema.resource_name = ( skan_service.customer_sk_ad_network_conversion_value_schema_path( "customer_id", "account_link_id" ) ) new_schema.schema.app_id = app_id new_schema.schema.measurement_window_hours = 48 skan_cv_mapping = ( schema_instance.SkAdNetworkConversionValueSchema.FineGrainedConversionValueMappings() ) skan_cv_mapping.fine_grained_conversion_value = 0 # 0 - 63 skan_cv_mapping.conversion_value_mapping.min_time_post_install_hours = 0 skan_cv_mapping.conversion_value_mapping.max_time_post_install_hours = 48 skan_cv_event = schema_instance.SkAdNetworkConversionValueSchema.Event() skan_cv_event.mapped_event_name = "TEST" skan_cv_event.event_revenue_value = 10 skan_cv_mapping.conversion_value_mapping.mapped_events.append(skan_cv_event) new_schema.schema.fine_grained_conversion_value_mappings.append( skan_cv_mapping ) req.operation = operation req.customer_id = customer_id res = skan_service.mutate_customer_sk_ad_network_conversion_value_schema( req ) return res if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. googleads_client = GoogleAdsClient.load_from_storage( version="v19" ) parser = argparse.ArgumentParser( description="Creates a keyword plan for specified customer." ) # The following argument(s) should be provided to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Google Ads customer ID.", ) args = parser.parse_args() try: main(googleads_client, args.customer_id) except GoogleAdsException as ex: print( f'Request with ID "{ex.request_id}" failed with status ' f'"{ex.error.code().name}" and includes the following errors:' ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1)
Гугл Аналитика
Конверсии из связанного свойства Google Analytics имеют одно из следующих значений type
:
GA4 Преобразование свойств:
-
GOOGLE_ANALYTICS_4_CUSTOM
-
GOOGLE_ANALYTICS_4_PURCHASE
Вы также можете получить идентификатор свойства GA4, имя свойства и имя события в поле
google_analytics_4_settings
.-
Вы можете внести следующие изменения в преобразование свойств GA4:
- Импортируйте преобразование из вашего свойства GA4 в свою учетную запись Google Ads, изменяя его поле
status
сHIDDEN
наENABLED
. - Измените его поля
primary_for_goal
иcategory
, чтобы указать, как это должно повлиять на торговые центры Google и отчеты . - Обновите его
name
илиvalue_settings
. - Удалите преобразование из вашей учетной записи Google Ads, используя операцию
remove
.
Любая попытка изменить другие атрибуты импортированного преобразования GA4 или любые атрибуты импортированной универсальной аналитической конверсии приводит к ошибке MUTATE_NOT_ALLOWED
. Вы можете внести эти изменения только с помощью пользовательского интерфейса Google Ads.
Firebase и сторонняя аналитика приложений
Чтобы импортировать аналитику приложений сторонних приложений или конверсии пожарной базы , измените status
ConversionAction
с HIDDEN
, чтобы ENABLED
использовать метод mutate
ConversionActionService
. Обновление app_id
не поддерживается для этих действий конверсии.
-
FIREBASE_ANDROID_FIRST_OPEN
-
FIREBASE_ANDROID_IN_APP_PURCHASE
-
FIREBASE_ANDROID_CUSTOM
-
FIREBASE_IOS_FIRST_OPEN
-
FIREBASE_IOS_IN_APP_PURCHASE
-
FIREBASE_IOS_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM
Магазин продаж: загрузить в действие конверсии с отчетностью
Хотя вы не можете создавать действия STORE_SALES
или STORE_SALES_DIRECT_UPLOAD
, используя API Google Ads API, API поддерживает загрузку транзакций продаж магазина .
-
STORE_SALES
-
STORE_SALES_DIRECT_UPLOAD
Типы действий преобразования только для чтения
Следующие типы действий преобразования только чтения в API Google ADS и предоставляются для целей отчетности.
-
ANDROID_APP_PRE_REGISTRATION
-
ANDROID_INSTALLS_ALL_OTHER_APPS
-
FLOODLIGHT_ACTION
-
FLOODLIGHT_TRANSACTION
-
GOOGLE_HOSTED
-
LEAD_FORM_SUBMIT
-
SALESFORCE
-
SEARCH_ADS_360
-
SMART_CAMPAIGN_AD_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_DIRECTIONS
-
SMART_CAMPAIGN_TRACKED_CALLS
-
STORE_VISITS
-
WEBPAGE_CODELESS
Неизвестный
Если ваша учетная запись Google Ads включает в себя другие типы действий по конверсии, вы можете обнаружить, что запросы и отчеты о возврате действия, где ConversionAction.type
Тип UNKNOWN
. API не поддерживает управление этими действиями конверсии, но возвращает их в отчетах, чтобы предоставить полные результаты для ключевых показателей преобразования, таких как metrics.conversions
и metrics.conversions_value
.
Пример кода
Следующий пример кода проходит через процесс создания нового действия преобразования. В частности, это создает действие преобразования с type
установленным для UPLOAD_CLICKS
. Это тот же поток пользовательского интерфейса Google Ads, что и создание нового действия преобразования с использованием импорта Import> Ручной импорт с использованием API или загрузки> преобразования треков с кликов . Это также устанавливает category
по DEFAULT
.
Применить следующие настройки по умолчанию:
API Google Ads автоматически устанавливает поле
primary_for_goal
, но вы можете явно установить это поле для управления тем, как действие преобразования влияет на отчеты и торги в вашей учетной записи в сочетании с вашими целями конверсии .API Google Ads автоматически устанавливает
counting_type
наMANY_PER_CLICK
См. Параметры подсчета конверсии для получения более подробной информации.API Google Ads устанавливает модель атрибуции для того, чтобы быть основанными на данных , настраивая поле
attribution_model_settings
для значенияGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
AttributionModel
. Смотрите эту статью о справочнике, чтобы узнать больше о моделях атрибуции.
Ява
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.V19.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 ); } }
Питон
def main(client, customer_id): conversion_action_service = client.get_service("ConversionActionService") # Create the operation. conversion_action_operation = client.get_type("ConversionActionOperation") # Create conversion action. conversion_action = 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 = conversion_action.value_settings value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response = ( 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}".' )
Руби
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
Перв
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::V19::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V19::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V19::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; }
Этот пример также можно найти в папке ремаркетинга вашей клиентской библиотеки и в сборе примеров кода: добавьте пример кода действия преобразования .
Валидации
Google Ads и Google ADS API поддерживают широкий спектр действий по конверсии, поэтому некоторые правила проверки варьируются в зависимости от type
действий.
Безусловно, наиболее распространенной ошибкой при создании действия преобразования является DUPLICATE_NAME
. Убедитесь, что вы используете уникальное имя для каждого действия преобразования.
Вот несколько советов по установке полей ConversionAction
:
- Все поля Enum
- Попытка установить любое поле enum для
UNKNOWN
результатов в ошибкеRequestError.INVALID_ENUM_VALUE
. -
app_id
- Атрибут
app_id
неизменен и может быть установлен только при создании нового приложения. -
attribution_model_settings
- Установка этого на устаревшую опцию приводит к ошибке
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS
. Google Ads поддерживает толькоGOOGLE_ADS_LAST_CLICK
иGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
. -
click_through_lookback_window_days
Установка этого атрибута на значение за пределами разрешенного диапазона приводит к появлению ошибки
RangeError.TOO_LOW
илиRangeError.TOO_HIGH
.Этот атрибут должен быть в диапазоне
[1,60]
для действияAD_CALL
илиWEBSITE_CALL
. Для большинства других действий конверсии допустимый диапазон составляет[1,30]
.-
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_settings
value_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
.
В этом руководстве содержится список различных типов действий конверсии, которые вы можете создать, используя API Google Ads, информацию о том, как эти карты в веб -интерфейс Google Ads и подробный пример кода, демонстрирующий, как создать новые действия преобразования.
Чтобы измерить конверсии, настройте ConversionAction
для type
действия преобразования, который вы хотите отслеживать. Например, онлайн -покупка и телефонный звонок требуют разных действий по конверсии.
Лучший способ настроить новые действия преобразования в API - это использовать пример кода действия ADD преобразования . Образец обрабатывает все задачи по аутентификации фоновой аутентификации и выводит вас через создание ConversionAction
.
Большинство действий по конверсии также требуют дополнительных шагов с вашей стороны для их отслеживания. Например, чтобы отслеживать конверсии на вашем веб -сайте, вы должны добавить фрагмент кода, который называется тег на страницу преобразования на вашем веб -сайте. Для получения подробных требований других типов действий конверсии см. В нашу статью о справочнике .
Преобразование веб -сайтов
Преобразование веб-сайта позволяет отслеживать действия веб-сайтов, такие как онлайн-продажи, щелчки ссылки, просмотры страниц и регистрации.
Чтобы отслеживать конверсии на вашем веб -сайте, вы должны создать ConversionAction
с установленной на WEBPAGE
ConversionActionType
и добавить фрагмент кода, который называется тег на страницу преобразования на вашем веб -сайте.
ConversionAction
охватывает несколько типов конверсий веб -сайтов, различающихся в поле API по поле type
в каждом TagSnippet
перечисленном в поле TAG_SNIPPETS о ConversionAction
.
TagSnippet
предоставляет код отслеживания, который должен быть включен в ваш веб -сайт, чтобы отслеживать ваши действия конверсии. Веб -сайт и номер телефона. Нажмите на преобразование. Требуется event_snippet
, который следует размещать на веб -страницах, которые указывают на действие преобразования, такое как подтверждение оформления заказа или страницу подачи формы свинца, и global_site_tag
, которое должно быть установлено на каждой странице вашего веб -сайта. Вы можете получить оба этих атрибута с помощью ConversionActionService
. Ознакомьтесь с нашим центром справки для получения дополнительной информации о том, как пометить ваши страницы.
В следующей таблице показаны эквивалентные параметры API для использования для каждого источника в веб -интерфейсе Google Ads:
Тип кода отслеживания | Google Ads Source |
---|---|
WEBPAGE | Веб -сайт, веб -сайт (Google Analytics (GA4)) |
WEBPAGE_ONCLICK | Веб -сайт, веб -сайт (Google Analytics (GA4)) |
CLICK_TO_CALL | Номер телефона нажимает |
Конверсии приложений
Преобразование приложения позволяет вам отслеживать установки мобильного приложения или покупки приложений в магазине Google Play .
В следующей таблице показаны эквивалентные параметры API ConversionActionType
для использования для каждого источника в веб -интерфейсе Google Ads:
Тип действия преобразования | Google Ads Source |
---|---|
GOOGLE_PLAY_DOWNLOAD | Google Play> Установки |
GOOGLE_PLAY_IN_APP_PURCHASE | Google Play> в приложении покупки |
Чтобы отслеживать другие действия мобильного приложения, используя свойства Google Analytics 4 или сторонние приложения Analytics , см. Дополнительные типы действий конверсии .
Конверсии телефонных звонков
Отслеживание конвертации телефонных звонков позволяет отслеживать вызовы из рекламы, вызовы по номеру на вашем веб -сайте и нажимает номера на мобильных сайтах.
В следующей таблице показаны эквивалентные параметры API ConversionActionType
для использования для каждого источника в веб -интерфейсе Google Ads:
Тип действия преобразования | Google Ads Source |
---|---|
AD_CALL | Вызовы из рекламы с использованием расширений вызовов или рекламы только для вызовов |
WEBSITE_CALL | Звонки на номер телефона на вашем сайте |
CLICK_TO_CALL | Нажимает номер на вашем мобильном веб -сайте |
AD_CALL
Действие преобразования AD_CALL
отображается в виде вызовов из конверсии рекламы в веб -интерфейсе Google Ads. После того, как вы создаете свое действие преобразования AD_CALL
, укажите его имя ресурса в поле call_conversion_action
при создании CallAsset
. Звоните в активы, позвольте вам показать номер телефона непосредственно в ваших объявлениях.
Вызов сообщается как конверсия, если он длится дольше, чем указанная продолжительность. По умолчанию 60 секунд.
WEBSITE_CALL
Действие по преобразованию WEBSITE_CALL
появляется в виде вызовов с преобразования веб -сайта в веб -интерфейсе Google Ads.
В отличие от AD_CALL
, этот трекер требует, чтобы event_snippet
и global_site_tag
для добавления на ваш веб -сайт для получения динамического номера пересылки Google для отслеживания вызовов на номерах, указанных на вашем веб -сайте. Кроме того, вы должны настроить активы вызовов и связать его на уровне клиента, кампании или рекламной группы .
CLICK_TO_CALL
Действие CLICK_TO_CALL
преобразование появляется в виде щелчка по вашему номеру на конверсии вашего мобильного веб -сайта в веб -интерфейсе Google Ads.
Тип CLICK_TO_CALL
отличается от типа AD_CALL
в том, что он не отслеживает реальные телефонные звонки. Вместо этого CLICK_TO_CALL
только отслеживает клики по номеру телефона с мобильного устройства. Это полезно, когда вы не можете использовать номер для пересылки Google для отслеживания телефонных звонков.
Импорт офлайн -конверсии
В следующей таблице показаны эквивалентные параметры API ConversionActionType
для использования для каждого источника в веб -интерфейсе Google Ads и ссылку на документацию для каждого конкретного типа действия преобразования:
Тип действия преобразования | Google Ads Source | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Конверсии отслеживания из кликов и улучшенные преобразования для потенциальных клиентов | Загрузить руководство по кликам Усовершенствованные конверсии для руководства |
UPLOAD_CALLS | Отслеживание конверсий из вызовов | Руководство по настройке API |
STORE_SALES | Продажи магазина конверсий треков | Руководство по настройке API |
Улучшенные конверсии
Усовершенствованные конверсии помогают вам повысить точность вашего измерения конверсии, дополнив существующие теги конверсии с данными первого конверсии, например, адрес электронной почты, имени, домашний адрес и номер телефона.
В следующей таблице показаны эквивалентные параметры API для использования для каждого расширенного типа преобразования :
Тип действия преобразования | Усовершенствованный тип конверсии | Руководство по настройке API |
---|---|---|
UPLOAD_CLICKS | Улучшенные преобразования для потенциальных клиентов Улучшает измерение автономных транзакций, которые поступили от лидера веб -сайта или посетителя | Руководство по настройке API |
WEBPAGE | Усовершенствованные преобразования для Интернета Улучшает измерение онлайн -конверсий | Руководство по настройке API |
Дополнительные типы действий конверсии
API Google Ads предоставляет дополнительные типы действий по конверсии доступными в отчетах, но может ограничить или запретить создание или модификацию этих действий.
Конверсии Skadnetwork
Если вы запустите кампании приложения iOS и реализовали Skadnetwork , вы можете получить доступ к данным Skadnetwork, предоставленным Google на уровне Customer
и Campaign
, используя следующие ресурсы:
Отчет поля | Описание |
---|---|
metrics.sk_ad_network_installs | Количество установок, о которых сообщается Apple. Эта метрика может быть сегментирована только по любой комбинации segments.sk_ad_network_conversion_value и связанных с датой сегментов. |
metrics.sk_ad_network_total_conversions | Общее количество конверсий, включая установки и другие типы конверсий, сообщенные Apple. Этот показатель может быть сегментирован только сегментами, связанными с Skadnetwork и сегментами, связанными с датой. |
segments.sk_ad_network_ad_event_type | Тип события, который произошел для конкретного преобразования. |
segments.sk_ad_network_attribution_credit | Как атрибуция зачисляется на конкретное преобразование. |
segments.sk_ad_network_fine_conversion_value | Значение конверсии, сообщаемое Apple. Этот сегмент не может быть применен к каким-либо метрикам, отличным от Значение |
segments.sk_ad_network_coarse_conversion_value | Грубое значение для индивидуального преобразования. |
segments.sk_ad_network_postback_sequence_index | Позиция обратного обращения, в последовательности, для конкретного преобразования. |
segments.sk_ad_network_source_app.sk_ad_network_source_app_id | Был показан идентификатор приложения, в котором была показана объявление, которое управляло установкой Ad Network Ad Network. |
segments.sk_ad_network_source_domain | Был показан веб -сайт, на котором была показана реклама, которая управляла компанией Ad Network Ad Network. Нулевое значение означает, что этот сегмент не применим-например, кампания без OIOS-или не присутствовало ни в каких отправках, отправленных Apple. |
segments.sk_ad_network_source_type | Был показан тип источника, где показано рекламное объявление, которое управляло установкой Ad Network Ad Network. Нулевое значение означает, что этот сегмент не применим-например, кампания без IOS-или ни исходное домен, ни исходное приложение не присутствовали в каких-либо отправках, отправленных Apple. |
segments.sk_ad_network_user_type | Тип пользователя, который генерировал конкретное преобразование. |
segments.sk_ad_network_redistributed_fine_conversion_value | Значения преобразования в этом сегменте включают нулевые значения, которые были перераспределены на значения конверсии. Этот сегмент представляет сумму наблюдаемых значений тонкого преобразования, возвращаемых Apple, и смоделированные нулевые значения из Google. |
segments.sk_ad_network_version | Версия API API набор для iOS Store, которая использовалась. |
Вы также можете сохранить картирование значений значений конверсии Skadnetwork для конкретных связанных клиентов с приложениями для iOS через CustomerSkAdNetworkConversionValueSchema
.
Образец кода Python
#!/usr/bin/env python # Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import argparse import sys from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.errors import GoogleAdsException def main(client, customer_id): """Adds a keyword plan, campaign, ad group, etc. to the customer account. Also handles errors from the API and prints them. Args: client: An initialized instance of GoogleAdsClient customer_id: A str of the customer_id to use in requests. """ res = update_skan_cv_schema( client, customer_id, "my_app_id", "account_link_id" ) print(res) def update_skan_cv_schema(client, customer_id, app_id, account_link_id): skan_service = client.get_service( "CustomerSkAdNetworkConversionValueSchemaService" ) req = client.get_type( "MutateCustomerSkAdNetworkConversionValueSchemaRequest" ) operation = client.get_type( "CustomerSkAdNetworkConversionValueSchemaOperation" ) schema_instance = client.get_type( "CustomerSkAdNetworkConversionValueSchema" ) new_schema = operation.update new_schema.resource_name = ( skan_service.customer_sk_ad_network_conversion_value_schema_path( "customer_id", "account_link_id" ) ) new_schema.schema.app_id = app_id new_schema.schema.measurement_window_hours = 48 skan_cv_mapping = ( schema_instance.SkAdNetworkConversionValueSchema.FineGrainedConversionValueMappings() ) skan_cv_mapping.fine_grained_conversion_value = 0 # 0 - 63 skan_cv_mapping.conversion_value_mapping.min_time_post_install_hours = 0 skan_cv_mapping.conversion_value_mapping.max_time_post_install_hours = 48 skan_cv_event = schema_instance.SkAdNetworkConversionValueSchema.Event() skan_cv_event.mapped_event_name = "TEST" skan_cv_event.event_revenue_value = 10 skan_cv_mapping.conversion_value_mapping.mapped_events.append(skan_cv_event) new_schema.schema.fine_grained_conversion_value_mappings.append( skan_cv_mapping ) req.operation = operation req.customer_id = customer_id res = skan_service.mutate_customer_sk_ad_network_conversion_value_schema( req ) return res if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. googleads_client = GoogleAdsClient.load_from_storage( version="v19" ) parser = argparse.ArgumentParser( description="Creates a keyword plan for specified customer." ) # The following argument(s) should be provided to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Google Ads customer ID.", ) args = parser.parse_args() try: main(googleads_client, args.customer_id) except GoogleAdsException as ex: print( f'Request with ID "{ex.request_id}" failed with status ' f'"{ex.error.code().name}" and includes the following errors:' ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1)
Гугл Аналитика
Конверсии из связанного свойства Google Analytics имеют одно из следующих значений type
:
GA4 Преобразование свойств:
-
GOOGLE_ANALYTICS_4_CUSTOM
-
GOOGLE_ANALYTICS_4_PURCHASE
Вы также можете получить идентификатор свойства GA4, имя свойства и имя события в поле
google_analytics_4_settings
.-
Вы можете внести следующие изменения в преобразование свойств GA4:
- Импортируйте преобразование из вашего свойства GA4 в свою учетную запись Google Ads, изменяя его поле
status
сHIDDEN
наENABLED
. - Измените его поля
primary_for_goal
иcategory
, чтобы указать, как это должно повлиять на торговые центры Google и отчеты . - Обновите его
name
илиvalue_settings
. - Удалите преобразование из вашей учетной записи Google Ads, используя операцию
remove
.
Любая попытка изменить другие атрибуты импортированного преобразования GA4 или любые атрибуты импортированной универсальной аналитической конверсии приводит к ошибке MUTATE_NOT_ALLOWED
. Вы можете внести эти изменения только с помощью пользовательского интерфейса Google Ads.
Firebase и сторонняя аналитика приложений
Чтобы импортировать аналитику приложений сторонних приложений или конверсии пожарной базы , измените status
ConversionAction
с HIDDEN
, чтобы ENABLED
использовать метод mutate
ConversionActionService
. Обновление app_id
не поддерживается для этих действий конверсии.
-
FIREBASE_ANDROID_FIRST_OPEN
-
FIREBASE_ANDROID_IN_APP_PURCHASE
-
FIREBASE_ANDROID_CUSTOM
-
FIREBASE_IOS_FIRST_OPEN
-
FIREBASE_IOS_IN_APP_PURCHASE
-
FIREBASE_IOS_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM
-
THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN
-
THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE
-
THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM
Магазин продаж: загрузить в действие конверсии с отчетностью
Хотя вы не можете создавать действия STORE_SALES
или STORE_SALES_DIRECT_UPLOAD
, используя API Google Ads API, API поддерживает загрузку транзакций продаж магазина .
-
STORE_SALES
-
STORE_SALES_DIRECT_UPLOAD
Типы действий преобразования только для чтения
Следующие типы действий преобразования только чтения в API Google ADS и предоставляются для целей отчетности.
-
ANDROID_APP_PRE_REGISTRATION
-
ANDROID_INSTALLS_ALL_OTHER_APPS
-
FLOODLIGHT_ACTION
-
FLOODLIGHT_TRANSACTION
-
GOOGLE_HOSTED
-
LEAD_FORM_SUBMIT
-
SALESFORCE
-
SEARCH_ADS_360
-
SMART_CAMPAIGN_AD_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_CLICKS_TO_CALL
-
SMART_CAMPAIGN_MAP_DIRECTIONS
-
SMART_CAMPAIGN_TRACKED_CALLS
-
STORE_VISITS
-
WEBPAGE_CODELESS
Неизвестный
Если ваша учетная запись Google Ads включает в себя другие типы действий по конверсии, вы можете обнаружить, что запросы и отчеты о возврате действия, где ConversionAction.type
Тип UNKNOWN
. API не поддерживает управление этими действиями конверсии, но возвращает их в отчетах, чтобы предоставить полные результаты для ключевых показателей преобразования, таких как metrics.conversions
и metrics.conversions_value
.
Пример кода
Следующий пример кода проходит через процесс создания нового действия преобразования. В частности, это создает действие преобразования с type
установленным для UPLOAD_CLICKS
. Это тот же поток пользовательского интерфейса Google Ads, что и создание нового действия преобразования с использованием импорта Import> Ручной импорт с использованием API или загрузки> преобразования треков с кликов . Это также устанавливает category
по DEFAULT
.
Применить следующие настройки по умолчанию:
API Google Ads автоматически устанавливает поле
primary_for_goal
, но вы можете явно установить это поле для управления тем, как действие преобразования влияет на отчеты и торги в вашей учетной записи в сочетании с вашими целями конверсии .API Google Ads автоматически устанавливает
counting_type
наMANY_PER_CLICK
См. Параметры подсчета конверсии для получения более подробной информации.API Google Ads устанавливает модель атрибуции для того, чтобы быть основанными на данных , настраивая поле
attribution_model_settings
для значенияGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
AttributionModel
. Смотрите эту статью о справочнике, чтобы узнать больше о моделях атрибуции.
Ява
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.V19.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 ); } }
Питон
def main(client, customer_id): conversion_action_service = client.get_service("ConversionActionService") # Create the operation. conversion_action_operation = client.get_type("ConversionActionOperation") # Create conversion action. conversion_action = 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 = conversion_action.value_settings value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response = ( 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}".' )
Руби
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
Перв
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::V19::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V19::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V19::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; }
Этот пример также можно найти в папке ремаркетинга вашей клиентской библиотеки и в сборе примеров кода: добавьте пример кода действия преобразования .
Валидации
Google Ads и Google ADS API поддерживают широкий спектр действий по конверсии, поэтому некоторые правила проверки варьируются в зависимости от type
действий.
Безусловно, наиболее распространенной ошибкой при создании действия преобразования является DUPLICATE_NAME
. Убедитесь, что вы используете уникальное имя для каждого действия преобразования.
Вот несколько советов по установке полей ConversionAction
:
- Все поля Enum
- Попытка установить любое поле enum для
UNKNOWN
результатов в ошибкеRequestError.INVALID_ENUM_VALUE
. -
app_id
- Атрибут
app_id
неизменен и может быть установлен только при создании нового приложения. -
attribution_model_settings
- Установка этого на устаревшую опцию приводит к ошибке
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS
. Google Ads поддерживает толькоGOOGLE_ADS_LAST_CLICK
иGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
. -
click_through_lookback_window_days
Установка этого атрибута на значение за пределами разрешенного диапазона приводит к появлению ошибки
RangeError.TOO_LOW
илиRangeError.TOO_HIGH
.Этот атрибут должен быть в диапазоне
[1,60]
для действияAD_CALL
илиWEBSITE_CALL
. Для большинства других действий конверсии допустимый диапазон составляет[1,30]
.-
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_settings
value_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
.