En esta guía, se proporciona una lista de los diferentes tipos de acciones de conversión que puedes crear con la API de Google Ads, información sobre cómo se asignan a la interfaz web de Google Ads y un ejemplo de código detallado que muestra cómo crear acciones de conversión nuevas.
Para medir las conversiones, configura un ConversionAction
para el type
de la acción de conversión a la que deseas realizar un seguimiento. Por ejemplo, una compra en línea y una llamada telefónica requieren acciones de conversión diferentes.
La mejor manera de configurar acciones de conversión nuevas en la API es usar el ejemplo de código para agregar una acción de conversión que se incluye a continuación. La muestra controla
todas las tareas de autenticación en segundo plano y te guía para crear
un ConversionAction
.
La mayoría de las acciones de conversión también requieren pasos adicionales de tu parte para hacerles un seguimiento. Por ejemplo, para hacer un seguimiento de las conversiones en tu sitio web, debes agregar un fragmento de código llamado etiqueta a la página de conversión de tu sitio web. Para conocer otros requisitos de las acciones de conversión, consulta nuestro artículo del Centro de ayuda.
Conversiones en el sitio web
Una conversión en el sitio web te permite hacer un seguimiento de las acciones en el sitio web, como las ventas en línea, los clics en vínculos, las vistas de página y los registros.
Para hacer un seguimiento de las conversiones en tu sitio web, debes crear un ConversionAction
con ConversionActionType
establecido en WEBPAGE
y agregar un fragmento de código llamado etiqueta a la página de conversión de tu sitio web.
ConversionAction
abarca varios tipos de conversiones en el sitio web, que se distinguen dentro de la API por el campo type
en cada TagSnippet
que se indica en el campo tag_snippets de un ConversionAction
.
Un TagSnippet
proporciona el código de seguimiento que se debe incluir en tu sitio web para hacer un seguimiento de tus acciones de conversión.
Las conversiones de sitio web y de clic en un número de teléfono requieren el elemento event_snippet
, que se debe colocar en las páginas web que indican una acción de conversión, como una página de confirmación de confirmación de la compra o de envío de un formulario de clientes potenciales, y global_site_tag
, que se debe instalar en todas las páginas de tu sitio web. Puedes recuperar ambos atributos con ConversionActionService
. Consulta nuestro Centro de ayuda para obtener más información sobre cómo etiquetar tus páginas.
En la siguiente tabla, se muestran los parámetros de API equivalentes que se deben usar para cada fuente en la interfaz web de Google Ads:
Tipo de código de seguimiento | Fuente de Google Ads |
---|---|
WEBPAGE |
Sitio web, Sitio web (Google Analytics (GA4)) |
WEBPAGE_ONCLICK |
Sitio web, Sitio web (Google Analytics (GA4)) |
CLICK_TO_CALL |
Clics en el número telefónico |
--- |
Sitio web (Google Analytics (UA)) |
Conversiones de aplicaciones
Una conversión de aplicación te permite hacer un seguimiento de las instalaciones de aplicaciones para dispositivos móviles o las compras directas desde la aplicación desde Google Play Store.
En la siguiente tabla, se muestran los parámetros de API equivalentes de ConversionActionType
que se deben usar para cada fuente en la interfaz web de Google Ads:
Tipo de acción de conversión | Fuente de Google Ads |
---|---|
GOOGLE_PLAY_DOWNLOAD |
Google Play > Instalaciones |
GOOGLE_PLAY_IN_APP_PURCHASE |
Google Play > Compras directas desde la aplicación |
Si deseas hacer un seguimiento de otras acciones de aplicaciones para dispositivos móviles con propiedades de Google Analytics 4 o estadísticas de aplicaciones de terceros. Consulta Tipos adicionales de acciones de conversión.
Conversiones de llamadas telefónicas
El seguimiento de conversiones de llamadas telefónicas te permite hacer un seguimiento de las llamadas desde anuncios, las llamadas a un número en tu sitio web y los clics en números en sitios móviles.
En la siguiente tabla, se muestran los parámetros de API equivalentes de ConversionActionType
que se deben usar para cada fuente en la interfaz web de Google Ads:
Tipo de acción de conversión | Fuente de Google Ads |
---|---|
AD_CALL |
Llamadas desde anuncios que utilizan extensiones de llamada o anuncios solo de llamada |
WEBSITE_CALL |
Llamadas a un número de teléfono de su sitio web |
CLICK_TO_CALL |
Clics en un número de su sitio web para celulares |
El tipo CLICK_TO_CALL
difiere del tipo AD_CALL
en que no realiza un seguimiento de las llamadas telefónicas reales. En cambio, CLICK_TO_CALL
solo realiza un seguimiento de los clics en un número de teléfono desde un dispositivo móvil. Esto es útil cuando no puedes usar un número de transferencia de llamadas de Google para hacer un seguimiento de las llamadas telefónicas.
AD_CALL
Una acción de conversión de AD_CALL
aparece como una conversión de Llamadas desde anuncios en la interfaz web de Google Ads. Después de crear tu acción de conversión AD_CALL
, especifica su nombre de recurso en el campo call_conversion_action
cuando crees un CallAsset
. Los recursos de llamada te permiten mostrar un número de teléfono directamente en tus anuncios.
Una llamada se registra como una conversión si dura más que una duración especificada. El valor predeterminado es de 60 segundos.
WEBSITE_CALL
Una acción de conversión de WEBSITE_CALL
aparece como una conversión de Llamadas desde un sitio web en la interfaz web de Google Ads.
A diferencia de AD_CALL
, este servicio de seguimiento requiere que se agreguen event_snippet
y global_site_tag
a tu sitio web para recuperar el número de transferencia de llamadas dinámico de Google para el seguimiento de llamadas en los números que aparecen en tu sitio web. Además, debes configurar un recurso de llamada y vincularlo a nivel del cliente, la campaña o el grupo de anuncios.
Importe conversiones sin conexión
En la siguiente tabla, se muestran los parámetros de API equivalentes de ConversionActionType
que se deben usar para cada fuente en la interfaz web de Google Ads y un vínculo a la documentación de cada tipo de acción de conversión específica:
Tipo de acción de conversión | Fuente de Google Ads | Guía de configuración de la API |
---|---|---|
UPLOAD_CLICKS |
Realiza un seguimiento de las conversiones generadas a partir de clics y de las conversiones avanzadas de clientes potenciales | Guía para subir clics
Guía de conversiones avanzadas de clientes potenciales |
UPLOAD_CALLS |
Hacer un seguimiento de las conversiones generadas a partir de llamadas | Guía de configuración de la API |
STORE_SALES |
Realiza un seguimiento de las conversiones de ventas en la tienda | Guía de configuración de la API |
Conversiones avanzadas de sitios web
Las conversiones avanzadas de sitios web te permiten enviar datos de conversiones de origen para las acciones de conversión WEBPAGE
en un plazo de 24 horas después de un evento de conversión, en lugar de hacerlo al mismo tiempo. Esto permite encontrar datos de origen de diversas fuentes, como una base de datos de clientes o un sistema de CRM.
Tipos adicionales de acciones de conversión
La API de Google Ads pone a disposición tipos adicionales de acciones de conversión en los informes, pero puede limitar o prohibir la creación o modificación de esas acciones.
Conversiones SKAdNetwork
Si publicas campañas de aplicaciones para iOS y ya implementaste SKAdNetwork, puedes acceder a los datos de SKAdNetwork que se proporcionan a Google en el nivel de Customer
y Campaign
con los siguientes recursos:
Campo del informe | Descripción |
---|---|
metrics.sk_ad_network_installs |
Es la cantidad de instalaciones que informa Apple. Esta métrica solo se puede segmentar con cualquier combinación de segments.sk_ad_network_conversion_value y segmentos relacionados con la fecha.
|
metrics.sk_ad_network_total_conversions |
Es la cantidad total de conversiones, incluidas las instalaciones y otros tipos de conversiones que informa Apple. Esta métrica solo se puede segmentar por segmentos relacionados con SKAdNetwork y segmentos relacionados con la fecha. |
segments.sk_ad_network_ad_event_type |
Es el tipo de evento que ocurrió para una conversión en particular. |
segments.sk_ad_network_attribution_credit |
Indica cómo se acredita la atribución para una conversión en particular. |
segments.sk_ad_network_fine_conversion_value |
Es el valor de una conversión que informa Apple. Este segmento no se puede aplicar a ninguna métrica que no sea Se muestra un valor de |
segments.sk_ad_network_coarse_conversion_value |
Es el valor aproximado de una conversión individual. |
segments.sk_ad_network_postback_sequence_index |
Es la posición de la notificación de conversión, en secuencia, para una conversión en particular. |
segments.sk_ad_network_source_app.sk_ad_network_source_app_id |
El ID de la aplicación donde se mostró el anuncio que generó la instalación de la red de publicidad de StoreKit de iOS |
segments.sk_ad_network_source_domain |
Es el sitio web en el que se mostró el anuncio que generó la instalación de la red de publicidad de StoreKit de iOS. Un valor nulo significa que este segmento no es aplicable (por ejemplo, una campaña que no es para iOS) o que no estaba presente en ninguna notificación de conversión que envió Apple. |
segments.sk_ad_network_source_type |
El tipo de fuente en la que se mostró el anuncio que generó la instalación de la red de publicidad de StoreKit de iOS Un valor nulo significa que este segmento no es aplicable (por ejemplo, una campaña que no es para iOS) o que ni el dominio de origen ni la app de origen estaban presentes en ninguna notificación de conversión que envió Apple. |
segments.sk_ad_network_user_type |
Es el tipo de usuario que generó una conversión en particular. |
segments.sk_ad_network_redistributed_fine_conversion_value |
Los valores de conversión de este segmento incluyen valores nulos que se redistribuyeron a los valores de conversión. Este segmento representa la suma de los valores de conversión fina observados que muestra Apple y los valores nulos modelados de Google. |
segments.sk_ad_network_version |
La versión de la API de la red de publicidad de Store Kit de iOS que se usó |
También puedes guardar una asignación de valor de conversión de SKAdNetwork para clientes vinculados específicos con apps para iOS a través de CustomerSkAdNetworkConversionValueSchema
.
Código de Python de muestra
#!/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="v18" ) 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
Las conversiones de una propiedad Google Analytics vinculada tienen uno de los siguientes valores de type
:
Conversión de la propiedad GA4:
GOOGLE_ANALYTICS_4_CUSTOM
GOOGLE_ANALYTICS_4_PURCHASE
También puedes recuperar el ID, el nombre de la propiedad y el nombre del evento de GA4 desde el campo
google_analytics_4_settings
.Conversión de propiedad Universal Analytics:
UNIVERSAL_ANALYTICS_GOAL
UNIVERSAL_ANALYTICS_TRANSACTION
Puedes realizar los siguientes cambios en una conversión de una propiedad GA4:
- Para importar la conversión de tu propiedad GA4 a tu cuenta de Google Ads, modifica su campo
status
deHIDDEN
aENABLED
. - Modifica los campos
primary_for_goal
ycategory
para indicar cómo debería afectar las ofertas y los informes de Google Ads. - Actualiza su
name
ovalue_settings
. - Quita la conversión de tu cuenta de Google Ads con una operación
remove
.
Cualquier intento de modificar otros atributos de una conversión de GA4 importada o cualquier atributo de una conversión de Universal Analytics importada genera un error MUTATE_NOT_ALLOWED
. Solo puedes realizar esos cambios con la IU de Google Ads.
Firebase y estadísticas de aplicaciones de terceros
Para importar estadísticas de aplicaciones de terceros o conversiones de Firebase, cambia el status
de ConversionAction
de HIDDEN
a ENABLED
con el método mutate
de ConversionActionService
. No se admite la actualización de app_id
para estas acciones de conversión.
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
Ventas en la tienda: Carga a la acción de conversión con informes
Si bien no puedes crear acciones de conversión STORE_SALES
ni STORE_SALES_DIRECT_UPLOAD
con la API de Google Ads, esta admite la carga de transacciones de ventas en la tienda.
STORE_SALES
STORE_SALES_DIRECT_UPLOAD
Tipos de acciones de conversión de solo lectura
Los siguientes tipos de acciones de conversión son de solo lectura en la API de Google Ads y se proporcionan para generar informes.
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
Desconocido
Si tu cuenta de Google Ads incluye otros tipos de acciones de conversión, es posible que las consultas y los informes muestren acciones de conversión en las que ConversionAction.type
sea UNKNOWN
.
La API no admite la administración de estas acciones de conversión, pero las muestra en los informes para proporcionar resultados completos de las métricas de conversión clave, como metrics.conversions
y metrics.conversions_value
.
Ejemplo de código
En el siguiente ejemplo de código, se explica el proceso para crear una acción de conversión nueva. Específicamente, crea una acción de conversión con type
establecida en UPLOAD_CLICKS
.
Este es el mismo flujo de la IU de Google Ads que se utiliza para crear una acción de conversión nueva con Importar > Importación manual con la API o cargas > Hacer un seguimiento de las conversiones a partir de clics. También establece category
en DEFAULT
.
Se aplica la siguiente configuración predeterminada:
La API de Google Ads establece el campo
primary_for_goal
automáticamente, pero puedes configurarlo de forma explícita para controlar cómo una acción de conversión afecta los informes y las ofertas de tu cuenta cuando se combina con tus objetivos de conversión.La API de Google Ads establece el valor de
counting_type
automáticamente enMANY_PER_CLICK
. Consulta Acerca de las opciones de registro de conversiones para obtener más detalles.La API de Google Ads establece el modelo de atribución como Basado en datos configurando el campo
attribution_model_settings
en el valorGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
deAttributionModel
.
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId) { // Creates a ConversionAction. ConversionAction conversionAction = ConversionAction.newBuilder() // Note that conversion action names must be unique. If a conversion action already // exists with the specified conversion_action_name the create operation will fail with // a ConversionActionError.DUPLICATE_NAME error. .setName("Earth to Mars Cruises Conversion #" + getPrintableDateTime()) .setCategory(ConversionActionCategory.DEFAULT) .setType(ConversionActionType.WEBPAGE) .setStatus(ConversionActionStatus.ENABLED) .setViewThroughLookbackWindowDays(15L) .setValueSettings( ValueSettings.newBuilder() .setDefaultValue(23.41) .setAlwaysUseDefaultValue(true) .build()) .build(); // Creates the operation. ConversionActionOperation operation = ConversionActionOperation.newBuilder().setCreate(conversionAction).build(); try (ConversionActionServiceClient conversionActionServiceClient = googleAdsClient.getLatestVersion().createConversionActionServiceClient()) { MutateConversionActionsResponse response = conversionActionServiceClient.mutateConversionActions( Long.toString(customerId), Collections.singletonList(operation)); System.out.printf("Added %d conversion actions:%n", response.getResultsCount()); for (MutateConversionActionResult result : response.getResultsList()) { System.out.printf( "New conversion action added with resource name: '%s'%n", result.getResourceName()); } } }
C#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V18.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction([ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings([ 'default_value' => 23.41, 'always_use_default_value' => true ]) ]); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client, 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}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V18::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V18::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V18::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; }
Este ejemplo también se puede encontrar en la carpeta de remarketing de tu biblioteca cliente y en la colección de ejemplos de código: Agrega un ejemplo de código de acción de conversión.
Validaciones
Google Ads y la API de Google Ads admiten una amplia variedad de acciones de conversión, por lo que algunas reglas de validación varían según el type
de la acción.
El error más común cuando se crea una acción de conversión es DUPLICATE_NAME
.
Asegúrate de usar un nombre único para cada acción de conversión.
Estas son algunas sugerencias para configurar los campos ConversionAction
:
- Todos los campos de enumeración
- Si intentas establecer cualquier campo de enumeración en
UNKNOWN
, se generará un errorRequestError.INVALID_ENUM_VALUE
. app_id
- El atributo
app_id
es inmutable y solo se puede establecer cuando se crea una conversión de aplicación nueva. attribution_model_settings
- Si configuras esto en una opción obsoleta, se produce un error
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS
. Google Ads solo admiteGOOGLE_ADS_LAST_CLICK
yGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
. click_through_lookback_window_days
Si configuras este atributo en un valor fuera del rango permitido, se mostrará un error
RangeError.TOO_LOW
oRangeError.TOO_HIGH
.Este atributo debe estar en el rango
[1,60]
para una acción de conversiónAD_CALL
oWEBSITE_CALL
. Para la mayoría de las demás acciones de conversión, el rango permitido es[1,30]
.include_in_conversions_metric
Establecer este valor en una operación
create
oupdate
falla con un errorFieldError.IMMUTABLE_FIELD
. En su lugar, estableceprimary_for_goal
como se describe en la Guía de objetivos de conversión.phone_call_duration_seconds
Si intentas configurar este atributo en una acción de conversión que no es para llamadas, se mostrará un error
FieldError.VALUE_MUST_BE_UNSET
.type
El atributo
type
es inmutable y solo se puede establecer cuando se crea una conversión nueva.Si actualizas una acción de conversión con
type
igual aUNKNOWN
, se genera un errorMutateError.MUTATE_NOT_ALLOWED
.value_settings
El
value_settings
de una acción de conversiónWEBSITE_CALL
oAD_CALL
debe teneralways_use_default_value
configurado comotrue
. Si especificas un valor defalse
cuando creas o actualizas este valor, se produce un errorINVALID_VALUE
.view_through_lookback_window_days
Si configuras este atributo en un valor fuera del rango permitido, se mostrará un error
RangeError.TOO_LOW
oRangeError.TOO_HIGH
. Para la mayoría de las acciones de conversión, el rango permitido es[1,30]
.Este atributo no se puede establecer en las acciones de conversión
AD_CALL
niWEBSITE_CALL
. Si especificas un valor, se produce un errorVALUE_MUST_BE_UNSET
.