En Google Ads, una conversión es una acción valiosa del usuario, como comprar un producto, enviar un formulario de clientes potenciales, llamar a tu empresa o visitar una tienda física, que se produce después de una interacción con el anuncio. El seguimiento de conversiones mide estas interacciones de los clientes para que puedas evaluar el rendimiento de la campaña y optimizar las ofertas automáticas.
La API de Google Ads te permite configurar de manera programática las acciones de conversión, importar eventos de conversión sin conexión, mejorar o ajustar las conversiones registradas, agrupar las acciones en objetivos de ofertas y de ciclo de vida, y supervisar los diagnósticos de carga.
Elige tu flujo de trabajo de conversión
Usa la siguiente tabla para identificar el ConversionActionType,
el servicio de la API y la guía de implementación para tu caso de uso:
| Tarea | Tipo de acción de conversión | Servicio o recurso de la API | Guía de implementación |
|---|---|---|---|
| Verifica la configuración de la cuenta y crea una acción de conversión |
UPLOAD_CLICKS, WEBPAGE,
UPLOAD_CALLS, AD_CALL,
WEBSITE_CALL, GOOGLE_PLAY_,
GOOGLE_PLAY_
|
Customer
(ConversionTracking),
ConversionAction
|
Primeros pasos y Categorías de acciones de conversión |
| Importa conversiones de clics sin conexión o conversiones avanzadas de leads | UPLOAD_CLICKS |
ConversionUploadService.
(o la
API de Data Manager
para integraciones nuevas)
|
Cómo importar conversiones por clic sin conexión |
| Mejora las conversiones en línea (conversiones avanzadas de sitios web) | WEBPAGE |
ConversionAdjustment
(ENHANCEMENT)
|
Cómo importar conversiones de clics en línea |
| Cómo importar conversiones de llamadas telefónicas | UPLOAD_CALLS |
ConversionUploadService.
|
Cómo importar conversiones de llamadas |
| Cómo importar transacciones de ventas en la tienda |
STORE_SALES, STORE_SALES_
|
OfflineUserData
(o
API de Data Manager)
|
Cómo importar las conversiones de ventas en la tienda |
| Cómo retractar o rectificar las conversiones registradas |
UPLOAD_CLICKS, WEBPAGE,
SALESFORCE (obsoleto)
|
ConversionAdjustment
(RETRACTION, RESTATEMENT)
|
Cómo ajustar las conversiones después de la importación |
| Cómo adjuntar metadatos de etiquetas personalizadas a las conversiones |
UPLOAD_CLICKS, UPLOAD_CALLS,
WEBPAGE
|
ConversionCustom
|
Variables personalizadas de conversión |
| Configura objetivos de ofertas, objetivos de ciclo de vida y reglas de valor | Objetivos de la cuenta, la campaña y el ciclo de vida |
CustomerConversion,
CampaignConversion,
CustomConversion,
ConversionGoal,
GoalService,
CampaignGoal,
ConversionValue
|
Objetivos de conversión, objetivos de ciclo de vida y reglas de valor de conversión |
| Supervisa el estado de la importación y el diagnóstico de errores |
UPLOAD_CLICKS, WEBPAGE,
UPLOAD_CALLS
|
offline_conversion_upload_,
offline_conversion_upload_
|
Supervisa el diagnóstico de datos sin conexión |
| Consulta las métricas de conversión y soluciona los errores | Todos los tipos de conversiones |
GoogleAdsService.
(customer, campaign,
conversion_action)
|
Cómo recuperar estadísticas de conversiones y Cómo solucionar problemas relacionados con las importaciones de conversiones |
Ciclo de vida de las conversiones de extremo a extremo
Una integración completa de la administración de conversiones en la API de Google Ads consta de cuatro etapas:
- Verifica la configuración de la cuenta y crea acciones de conversión: Consulta
Customer.conversion_tracking_settingpara confirmar la cuenta de conversiones efectiva (google_ads_conversion_customer), verifica que el seguimiento de conversiones esté activo, configura el consentimiento del usuario y crea unConversionActioncon el objetivoConversionActionTypeyConversionActionCategory. - Importa eventos de conversión: Transmite conversiones de clics o llamadas sin conexión con
ConversionUploadServiceconpartial_failureconfigurado comotrue, complementa las conversiones en el sitio web con ajustes deENHANCEMENTconConversionAdjustmentUploadServiceo sube por lotes las ventas en la tienda conOfflineUserDataJobService. - Ajusta y optimiza las conversiones: Retracta o rectifica las conversiones registradas
con
ConversionAdjustmentUploadService, adjunta metadatos deConversionCustomVariable, aplica reglas de valor de conversión y organiza las acciones en objetivos de conversión y objetivos de ciclo de vida para controlar la optimización de las ofertas. - Supervisa los diagnósticos y el rendimiento de los informes: Consulta
offline_conversion_upload_client_summaryyoffline_conversion_upload_conversion_action_summarypara inspeccionar el estado del procesamiento de cargas y las alertas de fallas parciales. Consulta los recursoscustomerocampaign(segmentados de forma opcional porsegments.conversion_action) para comparar las métricasmetrics.conversionsymetrics.all_conversions, o consulta el recursoconversion_actionpara inspeccionar las marcas de tiempo demetrics.all_conversionsy de la última conversión.
Guía de inicio rápido: Verifica la configuración, crea acciones y comprueba el estado
En los siguientes ejemplos, se muestran las tres consultas y mutaciones más comunes que se necesitan para inicializar y supervisar el seguimiento de conversiones.
1. Verifica la configuración del seguimiento de conversiones con GAQL
Antes de crear un ConversionAction o subir eventos, consulta el recurso customer con GoogleAdsService.SearchStream para determinar qué cuenta administra las conversiones (google_ads_conversion_customer), si se aceptan las condiciones de los datos del cliente y si las conversiones avanzadas a nivel de la cuenta están activadas (EnhancedConversionsConfig):
SELECT
customer.conversion_tracking_setting.conversion_tracking_id,
customer.conversion_tracking_setting.conversion_tracking_status,
customer.conversion_tracking_setting.cross_account_conversion_tracking_id,
customer.conversion_tracking_setting.google_ads_conversion_customer,
customer.conversion_tracking_setting.accepted_customer_data_terms,
customer.conversion_tracking_setting.enablement_setting,
customer.conversion_tracking_setting.effective_enablement_setting
FROM customer
Extrae el {customer_id} del nombre del recurso customers/{customer_id} que se muestra en google_ads_conversion_customer y emite todas las solicitudes ConversionActionService y ConversionUploadService posteriores para ese ID de cliente. Para obtener detalles completos sobre la configuración y la jerarquía de cuentas múltiples, consulta Cómo comenzar.
2. Cree una acción de conversión
Usa ConversionActionService.MutateConversionActions para
crear un ConversionAction. En el siguiente ejemplo, se crea
una acción de conversión de UPLOAD_CLICKS con parámetros de configuración de valor y ventana de visualización personalizados:
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
Solicitud de REST
Para crear el mismo ConversionAction con REST, envía una
solicitud POST a
ConversionActionService.MutateConversionActions:
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
}
}
}
]
}
Una vez que tu acción de conversión sea ENABLED, importa eventos de conversión o
mejoras con el flujo de trabajo de tu fuente de conversiones (consulta Importa
eventos de conversión).
3. Supervisa el estado de la carga de conversiones sin conexión
Después de subir las conversiones por clic, las conversiones de llamada o los ajustes de conversiones,
consulta offline_conversion_upload_client_summary para
verificar el estado general del trabajo, los porcentajes de éxito y pendientes, y los desgloses de errores en
tus cargas recientes:
SELECT
offline_conversion_upload_client_summary.client,
offline_conversion_upload_client_summary.status,
offline_conversion_upload_client_summary.total_event_count,
offline_conversion_upload_client_summary.successful_event_count,
offline_conversion_upload_client_summary.success_rate,
offline_conversion_upload_client_summary.pending_event_count,
offline_conversion_upload_client_summary.pending_rate,
offline_conversion_upload_client_summary.last_upload_date_time,
offline_conversion_upload_client_summary.alerts
FROM offline_conversion_upload_client_summary
Consulta offline_conversion_upload_conversion_action_summary para obtener diagnósticos a nivel de la acción de conversión (consulta Supervisa los diagnósticos de datos sin conexión) y consulta Soluciona problemas de importaciones de conversiones para resolver códigos de error específicos.
Directorio de guías por etapa del ciclo de vida
Explora el conjunto completo de guías de administración de conversiones organizadas por etapa del ciclo de vida:
1. Configuración de la cuenta y acciones de conversión
- Categorías de acciones de conversión: Selecciona la fuente de conversiones correcta: sitio web (
WEBPAGE), llamada telefónica (UPLOAD_CALLS,AD_CALL,WEBSITE_CALL), aplicación para dispositivos móviles (GOOGLE_PLAY_DOWNLOAD,GOOGLE_PLAY_IN_APP_PURCHASE, Firebase,SKAdNetwork), Google Analytics 4 (GOOGLE_ANALYTICS_4_CUSTOM,GOOGLE_ANALYTICS_4_PURCHASE), sin conexión (UPLOAD_CLICKS) o tienda física (STORE_SALES), y asígnala al flujo de trabajo de la API y elConversionActionTypecorrespondientes. - Primeros pasos: Configura el consentimiento del usuario, verifica
ConversionTrackingSetting, configura el seguimiento de conversiones de múltiples cuentas y crea acciones de conversión con las bibliotecas cliente o REST.
2. Importa eventos de conversión
- Importa conversiones de clics sin conexión: Sube conversiones sin conexión (
GCLID,GBRAID,WBRAID) y conversiones avanzadas de clientes potenciales (correo electrónico y número de teléfono propios con codificación hash) para medir las transacciones del mundo real. - Importa conversiones de clics en línea: Complementa las etiquetas de conversión en el sitio web con datos de origen de los usuarios, como la dirección de correo electrónico, el nombre, la dirección particular y el número de teléfono, con las conversiones avanzadas de sitios web (ajustes de
ENHANCEMENT). - Importar conversiones de llamada: Sube eventos de conversión para las llamadas telefónicas de las que se hace un seguimiento a través de los números de transferencia de llamadas de Google o tu propio sistema de seguimiento de llamadas.
- Importa conversiones de ventas en la tienda: Sube por lotes los datos de las transacciones en la tienda con
OfflineUserDataJobService.
3. Ajusta y optimiza las conversiones
- Ajusta las conversiones después de la importación: Retracta los pedidos cancelados (
RETRACTION) o rectifica los valores de conversión modificados (RESTATEMENT) para las acciones de conversiónUPLOAD_CLICKS,WEBPAGEySALESFORCE(obsoleta). - Administra las reglas de valor de conversión: Ajusta de forma dinámica los valores de conversión durante la subasta según los criterios de público, dispositivo, ubicación geográfica o itinerario.
- Variables de conversión personalizadas: Define y adjunta etiquetas de pares clave-valor personalizadas (
ConversionCustomVariable) a las conversiones de clics, llamadas y sitios web para generar informes segmentados. - Objetivos de conversión: Agrupa las acciones de conversión por los campos
category(ConversionActionCategory) yorigin(ConversionOrigin), y configura los objetivos del cliente, los objetivos de la campaña y objetivos personalizados, y los objetivos del ciclo de vida del cliente (adquisición de clientes nuevos, retención de clientes y retención de lealtad). También puedes recuperar y aplicarOPTIMIZE_FOR_NEW_CUSTOMERSrecomendaciones para los valores de conversión incrementales de clientes nuevos.
4. Supervisa, informa y soluciona problemas
- Supervisa los diagnósticos de datos sin conexión: Consulta los diagnósticos de datos sin conexión a nivel de la cuenta (
offline_conversion_upload_client_summary) y de la acción de conversión (offline_conversion_upload_conversion_action_summary) para hacer un seguimiento de los porcentajes de éxito, los eventos pendientes y las alertas de carga. - Obtén estadísticas de conversiones: Consulta las métricas de rendimiento de las conversiones en GAQL y asigna las columnas de la IU de Google Ads a los campos de la API de Google Ads.
- Soluciona problemas relacionados con las importaciones de conversiones: Diagnostica y resuelve los códigos
ConversionUploadErroryConversionAdjustmentUploadErrorcomunes.