Administración de conversiones

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_DOWNLOAD, GOOGLE_PLAY_IN_APP_PURCHASE Customer (ConversionTrackingSetting), ConversionActionService 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.UploadClickConversions (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 ConversionAdjustmentUploadService.UploadConversionAdjustments (ENHANCEMENT) Cómo importar conversiones de clics en línea
Cómo importar conversiones de llamadas telefónicas UPLOAD_CALLS ConversionUploadService.UploadCallConversions Cómo importar conversiones de llamadas
Cómo importar transacciones de ventas en la tienda STORE_SALES, STORE_SALES_DIRECT_UPLOAD OfflineUserDataJobService (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) ConversionAdjustmentUploadService.UploadConversionAdjustments (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 ConversionCustomVariableService 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 CustomerConversionGoalService, CampaignConversionGoalService, CustomConversionGoalService, ConversionGoalCampaignConfigService, GoalService, CampaignGoalConfigService, ConversionValueRuleService 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_client_summary, offline_conversion_upload_conversion_action_summary 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.SearchStream (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:

  1. Verifica la configuración de la cuenta y crea acciones de conversión: Consulta Customer.conversion_tracking_setting para 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 un ConversionAction con el objetivo ConversionActionType y ConversionActionCategory.
  2. Importa eventos de conversión: Transmite conversiones de clics o llamadas sin conexión con ConversionUploadService con partial_failure configurado como true, complementa las conversiones en el sitio web con ajustes de ENHANCEMENT con ConversionAdjustmentUploadService o sube por lotes las ventas en la tienda con OfflineUserDataJobService.
  3. Ajusta y optimiza las conversiones: Retracta o rectifica las conversiones registradas con ConversionAdjustmentUploadService, adjunta metadatos de ConversionCustomVariable, 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.
  4. Supervisa los diagnósticos y el rendimiento de los informes: Consulta offline_conversion_upload_client_summary y offline_conversion_upload_conversion_action_summary para inspeccionar el estado del procesamiento de cargas y las alertas de fallas parciales. Consulta los recursos customer o campaign (segmentados de forma opcional por segments.conversion_action) para comparar las métricas metrics.conversions y metrics.all_conversions, o consulta el recurso conversion_action para inspeccionar las marcas de tiempo de metrics.all_conversions y 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 el ConversionActionType correspondientes.
  • 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

4. Supervisa, informa y soluciona problemas