Cómo empezar

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 cómo crear acciones de conversión.

Cuando importes conversiones o datos del usuario, debes confirmar que tienes permiso para compartir los datos de conversiones con Google. Puedes usar uno de estos métodos:

  1. Configura los parámetros de configuración de consentimiento predeterminados a nivel de la cuenta. En la IU de Google Ads, haz clic en Herramientas > Administrador de datos > Parámetros de configuración de consentimiento > Parámetros de configuración de consentimiento predeterminados.
  2. Establece el campo de consentimiento en cada carga útil de datos de usuario o conversión importada (por ejemplo, ClickConversion.consent, CallConversion.consent o UserData.consent).

Configura tu sitio web para hacer un seguimiento de las conversiones

Si realizas un seguimiento de las conversiones en el sitio web o implementas conversiones avanzadas de clientes potenciales, primero configura el etiquetado de tu sitio web. Sigue los pasos que se indican en Cómo configurar la etiqueta de Google para las conversiones avanzadas de clientes potenciales, o usa Google Tag Manager siguiendo los pasos que se indican en Cómo configurar 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 el seguimiento de conversiones esté habilitado consultando el Customer recurso 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 usan el seguimiento de conversiones de múltiples cuentas, este es el ID de una cuenta de administrador. El ID de cliente de conversiones 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 conversion_tracking_status campo 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. Para habilitar el seguimiento de conversiones crea al menos una 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.V25.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::V25::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V25::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é establecido en 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

Para recuperar detalles de una acción de conversión existente, emite la siguiente consulta. Asegúrate de que el ID de cliente de la solicitud esté establecido en el cliente de conversiones de Google Ads que identificaste anteriormente y que el tipo de acción de conversión esté establecido en el ConversionActionType valor 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 publicado los anuncios que generaron conversiones. Esto puede ayudarte a simplificar tu 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 de múltiples cuentas cuando crees o actualices 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.

La cuenta de administrador que se convertirá en el nuevo cliente de conversiones del cliente debe enviar las solicitudes que modifican el cliente de conversiones de una cuenta de 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 del 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 del seguimiento de conversiones.
  • Las campañas segmentadas para una acción de conversión específica comenzarán a utilizar los objetivos de conversión predeterminados de la cuenta de administrador. Si continúas segmentando las campañas para una acción de conversión específica, se puede generar 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 acciones de conversión de una de ellas. Si no se especifica ninguna cuenta de seguimiento de conversiones, la cuenta se usará a sí misma como 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 necesites determinar la cuenta de publicación para cada conversión en el momento de la importación. Puedes 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 realiza la carga tiene acceso a la acción si es 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, y M2 es el propietario de la acción de conversión y el 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.

Estructura de autorización

Crea acciones de conversión

Para medir las conversiones, configura un ConversionAction para el type de acción de conversión que deseas registrar. 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 para agregar acciones de conversión. La muestra controla todas las tareas de autenticación en segundo plano por ti y te guía en la creación de 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 usas el seguimiento de conversiones de múltiples cuentas, el ConversionActionService muestra las siguientes acciones de conversión:

  • Todas las acciones de conversión definidas por la cuenta de administrador que usa 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 son propiedad del administrador, incluso si este último desvincula la cuenta posteriormente
  • Todas las acciones que el cliente definió en su propia cuenta
  • Las conversiones de Analytics creadas en propiedades de Google Analytics vinculadas Esto incluye acciones para las conversiones de Analytics que no se importaron a Google Ads, que tienen un estado de HIDDEN.

Ejemplo de código

En el siguiente ejemplo de código, se te guía por el proceso de creación de una nueva acción de conversión. En concreto, se crea una acción de conversión con el type establecido en UPLOAD_CLICKS. También se 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.V25.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::V25::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V25::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 acciones de conversión ejemplo.

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 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.

A continuación, se incluyen algunas sugerencias para establecer los campos ConversionAction:

Todos los campos de enumeración
Si intentas establecer cualquier campo de enumeración en UNKNOWN, se produce un error RequestError.INVALID_ENUM_VALUE.
app_id
El atributo app_id es inmutable y solo se puede establecer cuando se crea una nueva conversión de aplicación.
attribution_model_settings
Si se establece en una opción obsoleta, se produce un CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS error. Google Ads solo admite GOOGLE_ADS_LAST_CLICK y GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN.
click_through_lookback_window_days

Si se establece este atributo en un valor fuera del rango permitido, se produce un error RangeError.TOO_LOW o RangeError.TOO_HIGH.

Este atributo debe estar entre 1 y 60 días para una acción de conversión AD_CALL o WEBSITE_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_metric

Si se establece este valor en una operación create o update, se produce un error FieldError.IMMUTABLE_FIELD. En su lugar, establece primary_for_goal como se describe en la guía 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 produce un error FieldError.VALUE_MUST_BE_UNSET.

type

El atributo type es inmutable y solo se puede establecer cuando se crea una nueva conversión.

Si se actualiza una acción de conversión con type igual a UNKNOWN se produce un error MutateError.MUTATE_NOT_ALLOWED.

value_settings

El value_settings para una acción de conversión WEBSITE_CALL o AD_CALL debe tener always_use_default_value establecido en true. Si se especifica un valor de false cuando se crea o actualiza este valor, se produce un error INVALID_VALUE.

view_through_lookback_window_days

Si se establece este atributo en un valor fuera del rango permitido, se produce un error RangeError.TOO_LOW o RangeError.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 acciones de conversión AD_CALL o WEBSITE_CALL. Si se especifica un valor, se produce un error VALUE_MUST_BE_UNSET.