Debes habilitar el seguimiento de conversiones en tu cuenta de conversiones de Google Ads para registrar las conversiones. En esta guía, se proporcionan detalles para confirmar si el seguimiento de conversiones está habilitado, habilitarlo si aún no lo está y recuperar información sobre las acciones de conversión existentes.
La mayoría de las acciones de conversión también requieren que realices pasos adicionales para hacerles un seguimiento. Para obtener más información sobre los distintos tipos de acciones de conversión y sus requisitos, consulta las categorías de acciones de conversión y Crea acciones de conversión.
Prepárate para dar tu consentimiento
Cuando importes conversiones o datos del usuario, debes confirmar que tienes permiso para compartir datos de conversiones con Google. Puedes usar uno de estos métodos:
- Configurar los parámetros de configuración predeterminados del consentimiento a nivel de la cuenta En la IU de Google Ads, haz clic en Herramientas > Administrador de datos > Configuración de consentimiento > Configuración de consentimiento predeterminada.
- Establece el campo de consentimiento en cada carga útil de datos de usuario o conversión importada (por ejemplo,
ClickConversion.consent,CallConversion.consentoUserData.consent).
Configura tu sitio web para hacer un seguimiento de las conversiones
Si realizas un seguimiento de las conversiones del sitio web o implementas las conversiones avanzadas de clientes potenciales, primero configura el etiquetado de tu sitio web. Sigue los pasos que se indican en Configura la etiqueta de Google para las conversiones avanzadas de clientes potenciales o utiliza Google Tag Manager siguiendo las instrucciones que se indican en Configura Google Tag Manager para las conversiones avanzadas de clientes potenciales.
Habilita el seguimiento de conversiones en tu cuenta de conversiones de Google Ads
Sigue estos pasos para verificar la configuración del seguimiento de conversiones de tu cuenta y crear o recuperar acciones de conversión.
Pasos para habilitar el seguimiento de conversiones
Recupera información sobre tu configuración del seguimiento de conversiones
Puedes verificar la configuración del seguimiento de conversiones de tu cuenta y confirmar que esté habilitado consultando el recurso Customer para el ConversionTrackingSetting.
Emite la siguiente consulta con
GoogleAdsService.SearchStream:
SELECT
customer.conversion_tracking_setting.google_ads_conversion_customer,
customer.conversion_tracking_setting.conversion_tracking_status,
customer.conversion_tracking_setting.conversion_tracking_id,
customer.conversion_tracking_setting.cross_account_conversion_tracking_id
FROM customer
El campo google_ads_conversion_customer indica la cuenta de Google Ads que crea y administra las conversiones de este cliente. Para los clientes que utilizan el seguimiento de conversiones de múltiples cuentas, este es el ID de una cuenta de administrador. El ID de cliente de conversión de Google Ads debe proporcionarse como customer_id en las solicitudes de la API de Google Ads para crear y administrar conversiones. Ten en cuenta que este campo se propaga incluso si el seguimiento de conversiones no está habilitado.
El campo conversion_tracking_status indica si el seguimiento de conversiones está habilitado y si la cuenta utiliza el seguimiento de conversiones de múltiples cuentas.
Crea una acción de conversión en el cliente de conversiones de Google Ads
Si el valor de conversion_tracking_status es NOT_CONVERSION_TRACKED, el seguimiento de conversiones no está habilitado para la cuenta. Habilita el seguimiento de conversiones creando al menos un objeto ConversionAction en la cuenta de conversiones de Google Ads, como en el siguiente ejemplo. Como alternativa, puedes
crear una acción de conversión en la IU siguiendo las instrucciones del
artículo del Centro de ayuda de Google Ads sobre la configuración del seguimiento de conversiones para el
tipo de conversión que deseas habilitar.
Ten en cuenta que las conversiones avanzadas se habilitan automáticamente cuando se envían a través de la API de Google Ads, pero se pueden inhabilitar a través de la IU de Google Ads.
Ejemplo de código
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.V26.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V26::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V26::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V26::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
Asegúrate de que type
esté configurado con el valor
ConversionActionType
correcto. Para obtener más orientación sobre cómo crear acciones de conversión en la API de Google Ads, consulta Crea acciones de conversión.
Recupera una acción de conversión existente
Puedes recuperar los detalles de una acción de conversión existente emitiendo la siguiente consulta. Asegúrate de que el ID de cliente de la solicitud esté configurado como el cliente de conversión de Google Ads que identificaste anteriormente y que el tipo de acción de conversión esté configurado con el valor de ConversionActionType correcto.
SELECT
conversion_action.id,
conversion_action.resource_name,
conversion_action.name,
conversion_action.type,
conversion_action.category,
conversion_action.status
FROM conversion_action
WHERE conversion_action.type = 'INSERT_CONVERSION_ACTION_TYPE'
Seguimiento de conversiones de múltiples cuentas
El seguimiento de conversiones de múltiples cuentas permite que las cuentas de Google Ads importen conversiones en nombre de otras cuentas, que pueden haber coordinado los anuncios que generaron conversiones. Esto puede ayudarte a simplificar la integración, ya que te permite consolidar las cuentas que realizan solicitudes de importación.
Cómo habilitar el seguimiento de conversiones de múltiples cuentas en la API de Google Ads
Puedes usar la API de Google Ads para habilitar el seguimiento de conversiones múltiples cuando creas o actualizas cuentas de cliente.
En un recurso Customer, establece el campo conversion_tracking_setting.google_ads_conversion_customer en el nombre del recurso de la cuenta de administrador que debe administrar las acciones de conversión en nombre de la cuenta de cliente.
Las solicitudes que modifican el cliente de conversión de una cuenta de cliente deben enviarse desde
la cuenta de administrador que se convertirá en el nuevo cliente de conversión para el cliente.
Para ello, establece el login-customer-id en el ID de la cuenta de administrador.
Cuando habilitas el seguimiento de conversiones de múltiples cuentas o cambias el administrador de seguimiento de conversiones de una cuenta de cliente existente, se aplican las mismas advertencias que si realizaras este cambio en la IU. En concreto:
- La cuenta de cliente adoptará las reglas de valor de conversión predeterminadas y los objetivos de ciclo de vida del cliente predeterminados de su nuevo administrador de seguimiento de conversiones.
- Las campañas que se segmentan para una acción de conversión específica cambiarán para usar los objetivos de conversión predeterminados de la cuenta de administrador de conversiones. Si sigues segmentando tus anuncios para una acción de conversión específica, esto puede producir un comportamiento incoherente, ya que es posible que la cuenta de administrador no tenga los mismos objetivos que la cuenta de cliente. Asegúrate de que tus campañas estén optimizadas para los objetivos correctos.
- Si una cuenta pertenece a más de una cuenta de administrador, solo puede usar las acciones de conversión de un administrador. Si no se especifica ninguna cuenta de seguimiento de conversiones, la cuenta se utilizará a sí misma como la cuenta de seguimiento de conversiones de forma predeterminada.
Importación de conversiones en varias cuentas
Con el seguimiento de múltiples cuentas habilitado, las cuentas de cliente y de administrador pueden importar conversiones en nombre de la cuenta de publicación. Esto permite simplificar la lógica de importación para que no tengas que determinar la cuenta de publicación de cada conversión en el momento de la importación, sino que puedas elegir una cuenta de tu árbol de cuentas para importar todas las conversiones.
Para subir una conversión correctamente, la cuenta que realiza la carga debe tener acceso a la acción de conversión. En una jerarquía de seguimiento de múltiples cuentas, la cuenta que sube los datos tiene acceso a la acción si es una cuenta superior (administrador) o descendiente del propietario de la acción de conversión en el árbol de cuentas.
En el siguiente diagrama, se ilustra la estructura de autorización para importar
conversiones. Aquí, C1 es la cuenta de cliente que publicó el anuncio que generó la conversión, M2 es el propietario de la acción de conversión y el elemento superior del seguimiento de conversiones de C1. Las cuentas destacadas en verde pueden importar conversiones en nombre de C1, mientras que las cuentas destacadas en rojo no pueden hacerlo.

Crea acciones de conversión
Para medir las conversiones, configura un ConversionAction para el type de la acción de conversión a la que deseas hacer un seguimiento.
Por ejemplo, una compra en línea y una llamada telefónica requieren diferentes acciones de conversión.
La mejor manera de configurar acciones de conversión nuevas en la API es usar el ejemplo de código para agregar acciones de conversión. La muestra controla todas las tareas de autenticación en segundo plano por ti y te guía para crear un ConversionAction.
La mayoría de las acciones de conversión también requieren que realices pasos adicionales 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 los requisitos detallados de otros tipos de acciones de conversión, consulta nuestro artículo del Centro de ayuda de Google Ads sobre los tipos de conversiones.
Si utilizas el seguimiento de conversiones de múltiples cuentas, el objeto ConversionActionService devuelve las siguientes acciones de conversión:
- Todas las acciones de conversión definidas por la cuenta de administrador que utiliza la cuenta para el seguimiento de conversiones de múltiples cuentas
- Todas las acciones de conversión en las que el cliente acumuló estadísticas, incluidas las acciones definidas por el sistema y las acciones que pertenecen al administrador, incluso si este se desvincula posteriormente
- Todas las acciones que el cliente definió en su propia cuenta
- Son las conversiones de Analytics creadas en las propiedades de Google Analytics vinculadas.
Esto incluye las acciones para las conversiones de Analytics que no se importaron a Google Ads,
que tienen el estado
HIDDEN.
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 el parámetro type establecido en UPLOAD_CLICKS.
También establece category en
DEFAULT.
Se aplica la siguiente configuración predeterminada:
La API de Google Ads establece el campo
primary_for_goalautomáticamente, pero puedes establecerlo de forma explícita para controlar cómo una acción de conversión afecta los informes y las ofertas en tu cuenta cuando se combina con tus objetivos de conversión.La API de Google Ads establece
counting_typeautomá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_settingsen el valorGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVENdeAttributionModel. Consulta Acerca de los modelos de atribución para obtener más información sobre los modelos de atribución.
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.V26.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V26::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V26::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V26::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
Puedes ver este ejemplo en la carpeta Remarketing de tu biblioteca cliente y en la colección de ejemplos de código: Ejemplo de código para agregar una acción de conversión.
Referencia del campo ConversionActionService.MutateConversionActions
Usa MutateConversionActions en ConversionActionService para crear, actualizar o quitar acciones de conversión en el cliente de conversión de Google Ads:
POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
En la siguiente tabla, se enumeran los campos de solicitud y operación de nivel superior en
MutateConversionActionsRequest:
| Campo | Requisito | Descripción |
|---|---|---|
customer_id |
Obligatorio | Es el ID de 10 dígitos (string) del cliente de conversión de Google Ads (google_ads_conversion_customer), sin guiones. |
partial_failure |
Opcional | Cuando true (bool), se ejecutan las operaciones válidas y las operaciones con errores devuelven errores en partial_failure_error. La configuración predeterminada es false. |
validate_only |
Opcional | Cuando es true (bool), valida la solicitud sin ejecutar mutaciones. |
response_content_type |
Opcional | ResponseContentType controla si la respuesta devuelve solo resource_name (RESOURCE_NAME_ONLY, predeterminado) o el objeto ConversionAction mutado (MUTABLE_RESOURCE). |
operations[].create |
Obligatorio (en la creación) | Es el recurso ConversionAction que se creará. No se espera que haya resource_name. |
operations[].update |
Obligatorio (en la actualización) | El recurso ConversionAction que se actualizará (debe incluir resource_name y un update_mask hermano en el ConversionActionOperation). |
operations[].update_mask |
Obligatorio (en la actualización) | FieldMask (lista separada por comas de rutas de campos ConversionAction modificados en snake_case; updateMask de JSON de REST acepta snake_case o camelCase, mientras que gRPC y las bibliotecas cliente requieren snake_case) en ConversionActionOperation (elemento del mismo nivel de update, no anidado dentro de ConversionAction). |
operations[].remove |
Obligatorio (en la eliminación) | Es el nombre del recurso (customers/{customer_id}/conversionActions/{action_id}) de la acción de conversión que se quitará. |
Cuando configures un ConversionAction en
operations[].create o operations[].update, observa los siguientes requisitos de campo
y restricciones de mutabilidad (consulta Validaciones para
conocer las reglas de error específicas del tipo):
Campo ConversionAction |
Requisito y mutabilidad | Descripción |
|---|---|---|
name |
Obligatorio (mutable) | Nombre visible único (string) dentro de la cuenta de cliente de conversión. |
type |
Obligatorio el create (IMMUTABLE) |
ConversionActionType (como WEBPAGE, UPLOAD_CLICKS, UPLOAD_CALLS, AD_CALL o WEBSITE_CALL) |
category |
Opcional (mutable) | ConversionActionCategory (como DEFAULT, PURCHASE, SUBMIT_LEAD_FORM, SIGNUP o PHONE_CALL_LEAD). El valor predeterminado es DEFAULT. |
status |
Opcional (mutable) | ConversionActionStatus (ENABLED, REMOVED o HIDDEN). El valor predeterminado es ENABLED. |
primary_for_goal |
Opcional (mutable) | bool controla si la acción puede recibir ofertas en los objetivos de conversión estándares del cliente y de la campaña (nota: Los recursos CustomConversionGoal ignoran este parámetro de configuración). La configuración predeterminada es true. |
counting_type |
Opcional (mutable) | ConversionActionCountingType (MANY_PER_CLICK predeterminado o ONE_PER_CLICK). |
value_settings |
Opcional (mutable) | ValueSettings (default_value, default_currency_code, always_use_default_value). |
attribution_model_settings |
Opcional (mutable) | AttributionModelSettings (attribution_model: GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN predeterminado o GOOGLE_ADS_LAST_CLICK) |
click_through_lookback_window_days |
Opcional (mutable) | int64 Ventana de visualización de clics en días (de 1 a 90 para la mayoría de los tipos; de 1 a 60 para los tipos de llamada). |
view_through_lookback_window_days |
Opcional (mutable) | int64: Es la ventana de visualización de vista completa en días (de 1 a 30 para la mayoría de los tipos; no se establece para los tipos de llamada). |
phone_call_duration_seconds |
Solo tipos de llamadas (mutables) | int64: Duración mínima de la llamada en segundos (de 0 a 10000). |
app_id |
Solo tipos de apps (inmutables después de la creación) | Identificador de la app para dispositivos móviles (string); solo se puede establecer en create para las acciones de conversión asociadas a la aplicación. |
include_in_conversions_metric |
Solo lectura en mutaciones | No se puede modificar directamente; en su lugar, configura primary_for_goal. |
tag_snippets[] |
OUTPUT_ONLY |
Fragmentos de código de seguimiento del sitio web (TagSnippet) completados en las acciones de conversión de WEBPAGE |
Estructura de la solicitud y respuesta de REST
Para crear o actualizar un ConversionAction con REST, envía una
solicitud POST a
ConversionActionService.MutateConversionActions.
Cuando actualices una acción de conversión existente, especifica updateMask en el objeto de operación como un elemento hermano de update:
POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
{
"operations": [
{
"create": {
"name": "Earth to Mars Cruise Conversion",
"type": "UPLOAD_CLICKS",
"category": "DEFAULT",
"status": "ENABLED",
"primaryForGoal": true,
"countingType": "ONE_PER_CLICK",
"clickThroughLookbackWindowDays": "60",
"valueSettings": {
"defaultValue": 23.41,
"defaultCurrencyCode": "USD",
"alwaysUseDefaultValue": true
}
}
},
{
"updateMask": "primary_for_goal,value_settings.default_value",
"update": {
"resourceName": "customers/{customer_id}/conversionActions/6666666666",
"primaryForGoal": false,
"valueSettings": {
"defaultValue": 45.00
}
}
}
]
}
Una respuesta correcta devuelve entradas de MutateConversionActionResult en results[]:
{
"results": [
{
"resourceName": "customers/{customer_id}/conversionActions/7777777777"
},
{
"resourceName": "customers/{customer_id}/conversionActions/6666666666"
}
]
}
Inspecciona la configuración de las acciones de conversión y los fragmentos de etiquetas con GAQL
Además de la consulta básica que se muestra en Pasos para habilitar el seguimiento de conversiones, puedes consultar el recurso conversion_action con GoogleAdsService.SearchStream para inspeccionar primary_for_goal, el estado del modelo de atribución, las ventanas de visualización, la configuración de valores y el tag_snippets del sitio web:
SELECT
conversion_action.id,
conversion_action.resource_name,
conversion_action.name,
conversion_action.type,
conversion_action.category,
conversion_action.status,
conversion_action.primary_for_goal,
conversion_action.counting_type,
conversion_action.click_through_lookback_window_days,
conversion_action.view_through_lookback_window_days,
conversion_action.value_settings.default_value,
conversion_action.value_settings.default_currency_code,
conversion_action.value_settings.always_use_default_value,
conversion_action.attribution_model_settings.attribution_model,
conversion_action.attribution_model_settings.data_driven_model_status,
conversion_action.tag_snippets
FROM conversion_action
WHERE conversion_action.status = 'ENABLED'
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 al crear 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 enum
- Si se intenta establecer cualquier campo de enumeración en
UNKNOWN, se produce un error deRequestError.INVALID_ENUM_VALUE. app_id- El atributo
app_ides inmutable y solo se puede establecer cuando se crea una nueva conversión de aplicación. attribution_model_settings- Si configuras esto como una opción obsoleta, se producirá un error
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS. Google Ads solo admiteGOOGLE_ADS_LAST_CLICKyGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN. click_through_lookback_window_daysSi configuras este atributo con un valor fuera del rango permitido, se producirá un error
RangeError.TOO_LOWoRangeError.TOO_HIGH.Este atributo debe tener entre 1 y 60 días para una acción de conversión
AD_CALLoWEBSITE_CALL. Para la mayoría de las demás acciones de conversión, el rango permitido es de 1 a 90 días.include_in_conversions_metricSi se establece este valor en una operación
createoupdate, se produce un errorFieldError.IMMUTABLE_FIELD. En su lugar, estableceprimary_for_goalcomo se describe en la guía de objetivos de conversión.phone_call_duration_secondsSi intentas establecer este atributo en una acción de conversión que no es para llamadas, se producirá un error
FieldError.VALUE_MUST_BE_UNSET.typeEl atributo
typees inmutable y solo se puede establecer cuando se crea una conversión nueva.Actualizar una acción de conversión con
typeigual aUNKNOWNgenera un errorMutateError.MUTATE_NOT_ALLOWED.value_settingsEl
value_settingsde una acción de conversiónWEBSITE_CALLoAD_CALLdebe teneralways_use_default_valueestablecido entrue. Si se especifica un valor defalsecuando se crea o actualiza este valor, se genera un error deINVALID_VALUE.view_through_lookback_window_daysSi configuras este atributo con un valor fuera del rango permitido, se producirá un error
RangeError.TOO_LOWoRangeError.TOO_HIGH. Para la mayoría de las acciones de conversión, el rango permitido es de 1 a 30 días.Este atributo no se puede establecer en las acciones de conversión
AD_CALLniWEBSITE_CALL. Si especificas un valor, se producirá un errorVALUE_MUST_BE_UNSET.