Cree acciones de conversión

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 de 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 nuevas acciones de conversión en la API es usar el ejemplo de código Agregar acción de conversión que se muestra a continuación. En el ejemplo, se administran todas las tareas de autenticación en segundo plano y se explica cómo crear una ConversionAction.

La mayoría de las acciones de conversión también requieren pasos adicionales de tu parte para hacer un seguimiento de ellas. 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 una ConversionAction con el ConversionActionType configurado como WEBPAGE y agregar un fragmento de código llamado etiqueta a la página de conversión de tu sitio web.

El ConversionAction abarca varios tipos de conversiones en el sitio web, que se distinguen dentro de la API por el campo type en cada TagSnippet enumerado en el campo tag_snippets de una ConversionAction.

Un objeto TagSnippet proporciona el código de seguimiento que se debe incluir en tu sitio web para realizar un seguimiento de tus acciones de conversión. Las conversiones de sitio web y Clic en el número de teléfono requieren el elemento event_snippet, que debe colocarse en páginas web que indiquen una acción de conversión, como una confirmación de la confirmación de la compra o la página de envío de un formulario de clientes potenciales, y global_site_tag, que debe instalarse 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 pueden utilizar 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 de teléfono
--- 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 de las compras directas desde la aplicación de Google Play Store.

En la siguiente tabla, se muestran los parámetros de la API de ConversionActionType equivalentes que se pueden 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 quieres realizar un seguimiento de otras acciones en apps para dispositivos móviles mediante las propiedades Google Analytics 4 o las 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 que aparece en tu sitio web y los clics en números en sitios móviles.

En la siguiente tabla, se muestran los parámetros de la API de ConversionActionType equivalentes que se pueden 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 móvil

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 realizar un seguimiento de las llamadas telefónicas.

AD_CALL

Una acción de conversión AD_CALL aparece como una conversión de llamadas desde anuncios en la interfaz web de Google Ads. Después de crear la acción de conversión AD_CALL, especifica el nombre del 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 de una duración especificada. El valor predeterminado es 60 segundos.

WEBSITE_CALL

Una acción de conversión 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, esta herramienta 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 de Google dinámico para hacer un seguimiento de llamadas a los números que aparecen en tu sitio web. Además, debes configurar un recurso de llamada y vincularlo a nivel del cliente, de la campaña o del grupo de anuncios.

Importe conversiones sin conexión

En la siguiente tabla, se muestran los parámetros de la API de ConversionActionType equivalentes que se pueden utilizar para cada fuente en la interfaz web de Google Ads y un vínculo a la documentación para cada tipo de acción de conversión específico:

Tipo de acción de conversión Fuente de Google Ads Guía de configuración de la API
UPLOAD_CLICKS Hacer un seguimiento de las conversiones generadas a partir de clics y conversiones avanzadas de clientes potenciales Guía para subir clics
Guía sobre las 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 Haz un seguimiento de las conversiones de las ventas en la tienda Guía de configuración de API

Conversiones avanzadas para la Web

Las conversiones avanzadas para la Web te permiten enviar datos de conversiones de origen para WEBPAGE acciones de conversión en un plazo de 24 horas después de que se produce un evento de conversión, en lugar de hacerlo al mismo tiempo. Esto permite ubicar datos de origen de una variedad de fuentes, como una base de datos de clientes o un sistema de CRM.

Tipos de acciones de conversión adicionales

La API de Google Ads ofrece 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 ejecutas campañas de aplicaciones para iOS y, además, implementaste SKAdNetwork, puedes acceder a los datos de SKAdNetwork proporcionados a Google a nivel de Customer y Campaign mediante los siguientes recursos:

Campo del informe Descripción
metrics.sk_ad_network_conversions La cantidad de conversiones registradas por Apple. Esta métrica solo se puede segmentar con cualquier combinación de segmentos relacionados con la fecha y segments.sk_ad_network_conversion_value.
segments.sk_ad_network_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 metrics.sk_ad_network_conversions y solo se puede combinar con segmentos relacionados con fechas.

Se muestra un valor de 0 si Apple informa un valor de 0 y no hay ningún valor en caso contrario. Verifica la presencia del campo para distinguir entre los dos casos.

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="v16"
    )

    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 vinculada de Google Analytics tienen uno de los siguientes valores type:

  • Conversión de propiedad GA4:

    • GOOGLE_ANALYTICS_4_CUSTOM
    • GOOGLE_ANALYTICS_4_PURCHASE

    También puedes recuperar el ID de la propiedad GA4, el nombre de la propiedad y el nombre del evento 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 propiedad GA4:

  • Para importar la conversión de tu propiedad GA4 a tu cuenta de Google Ads, modifica el campo status de HIDDEN a ENABLED.
  • Modifica los campos primary_for_goal y category para indicar cómo debería afectar las ofertas y los informes de Google Ads.
  • Actualiza los atributos name o value_settings.
  • Quita la conversión de tu cuenta de Google Ads mediante 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 generará un error MUTATE_NOT_ALLOWED. Solo puedes realizar esos cambios mediante la IU de Google Ads.

Firebase y estadísticas de aplicaciones de terceros

Para importar conversiones de estadísticas de apps de terceros o de Firebase, cambia la 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

Ofertas de tienda

Aunque no puedes crear acciones de conversión de STORE_SALES o STORE_SALES_DIRECT_UPLOAD con la API de Google Ads, esta sí admite la carga de transacciones de ventas en la tienda.

  • STORE_SALES
  • STORE_SALES_DIRECT_UPLOAD

Varios

Los siguientes tipos de acciones de conversión son de solo lectura en la API de Google Ads y se proporcionan para fines de generación de 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 búsquedas 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 brindar resultados completos para 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 de creación de una acción de conversión nueva. Específicamente, crea una acción de conversión con el type establecido en UPLOAD_CLICKS. Este es el mismo flujo de la IU de Google Ads que crear una acción de conversión nueva mediante Importar > Importación manual mediante la API o cargas > Seguimiento de conversiones generadas por clics. También establece el category en DEFAULT.

Se aplican los siguientes parámetros de configuración predeterminados:

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.V16.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}".'
    )
      

Rita

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::V16::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V16::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V16::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 mostrará un error RequestError.INVALID_ENUM_VALUE.
app_id
El atributo app_id es inmutable y solo se puede configurar cuando se crea una nueva conversión de aplicación.
attribution_model_settings
Si configuras esta opción como obsoleta, se generará el error CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS. Google Ads solo admite GOOGLE_ADS_LAST_CLICK y GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN.
click_through_lookback_window_days

Configurar este atributo en un valor fuera del rango permitido genera un error RangeError.TOO_LOW o RangeError.TOO_HIGH.

Este atributo debe estar en el rango [1,60] para una acción de conversión AD_CALL o WEBSITE_CALL. Para la mayoría de las otras acciones de conversión, el rango permitido es [1,30].

include_in_conversions_metric

La configuración de este valor en una operación create o update falla con un error FieldError.IMMUTABLE_FIELD. En cambio, configura primary_for_goal como se describe en la Guía de objetivos de conversión.

phone_call_duration_seconds

Si intentas establecer 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 configurar cuando se crea una conversión nueva.

La actualización de una acción de conversión con un type igual a UNKNOWN genera un error MutateError.MUTATE_NOT_ALLOWED.

value_settings

El value_settings de una acción de conversión WEBSITE_CALL o AD_CALL debe tener always_use_default_value establecido en true. Especificar un valor de false cuando creas o actualizas este valor genera un error INVALID_VALUE.

view_through_lookback_window_days

Configurar este atributo en un valor fuera del rango permitido genera un error RangeError.TOO_LOW o RangeError.TOO_HIGH. Para la mayoría de las acciones de conversión, el rango permitido es [1,30].

Este atributo no se puede configurar en las acciones de conversión AD_CALL ni WEBSITE_CALL. Especificar un valor genera un error VALUE_MUST_BE_UNSET.