Inizia a utilizzare le conversioni avanzate per il web

Come funzionano le conversioni avanzate per il web

Le conversioni avanzate per il web richiedono l'impostazione di un tag che invii automaticamente a Google Ads un identificatore di clic, ad esempio un GCLID, e un ID ordine quando un utente effettua una conversione. Puoi scegliere di configurare le conversioni avanzate tramite Google Tag Manager, il tag Google o l'API Google Ads. L'API Google Ads offre il vantaggio di inviare i dati sulle conversioni proprietari entro 24 ore dall'evento di conversione, anziché contemporaneamente. In questo modo è possibile individuare i dati proprietari da diverse origini, ad esempio un database del cliente o un sistema CRM.

Le conversioni avanzate per il web nell'API Google Ads integrano il passaggio 3 della procedura seguente.

Conversioni avanzate per il web

Quando l'utente esegue una conversione, invece di inviare le informazioni utente sottoposte ad hashing, il tag invia solo il GCLID e l'ID ordine. Tu invii le informazioni utente sottoposte ad hashing in un secondo momento caricando l'ID ordine insieme ai dati sottoposti ad hashing.

Implementare i prerequisiti

Esistono alcuni prerequisiti per una configurazione efficace delle conversioni avanzate. Assicurati che tutti i prerequisiti siano soddisfatti prima di procedere con l'implementazione:

  1. Attiva il monitoraggio delle conversioni nel tuo cliente per le conversioni di Google Ads.

  2. Accetta i termini per i dati dei clienti.

  3. Configurare il tagging.

1. Attivare il monitoraggio delle conversioni nel tuo account cliente per le conversioni di Google Ads

Recuperare informazioni sulla configurazione del monitoraggio delle conversioni

Puoi controllare la configurazione del monitoraggio delle conversioni nel tuo account e verificare che il monitoraggio delle conversioni sia abilitato eseguendo una query alla risorsa Customer per ConversionTrackingSetting. Invia la seguente query a 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

Il campo google_ads_conversion_customer indica l'account Google Ads che crea e gestisce le conversioni per questo cliente. Per i clienti che utilizzano il monitoraggio delle conversioni su più account, si tratta dell'ID di un account amministratore. Per creare e gestire le conversioni, l'ID cliente conversione di Google Ads deve essere indicato come customer_id nelle richieste API Google Ads. Tieni presente che questo campo viene compilato anche se il monitoraggio delle conversioni non è attivato.

Il campo conversion_tracking_status indica se il monitoraggio delle conversioni è abilitato e se l'account lo sta utilizzando su più account.

Crea un'azione di conversione nel cliente per le conversioni di Google Ads

Se il valore di conversion_tracking_status è NOT_CONVERSION_TRACKED, il monitoraggio delle conversioni non è attivato per l'account. Attiva il monitoraggio delle conversioni creando almeno un'ConversionAction nell'account di conversione di Google Ads, come nell'esempio seguente. In alternativa, puoi creare un'azione di conversione nell'interfaccia utente seguendo le istruzioni riportate nel Centro assistenza per il tipo di conversione che vuoi attivare.

Tieni presente che le conversioni avanzate vengono attivate automaticamente se inviate tramite l'API Google Ads, ma possono essere disattivate tramite l'interfaccia utente di Google Ads.

Esempio di codice

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

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::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;
}
      

Assicurati che conversion_action_type sia impostato sul valore ConversionActionType corretto. Per ulteriori indicazioni sulla creazione di azioni di conversione nell'API Google Ads, consulta Creare azioni di conversione.

Recupera un'azione di conversione esistente

Puoi recuperare i dettagli di un'azione di conversione esistente eseguendo la query seguente. Assicurati che l'ID cliente nella richiesta sia impostato sul cliente per le conversioni di Google Ads identificato in precedenza e che il tipo di azione di conversione sia impostato sul valore ConversionActionType corretto.

SELECT
  conversion_action.resource_name,
  conversion_action.name,
  conversion_action.status
FROM conversion_action
WHERE conversion_action.type = 'WEBPAGE'

2. Accetta i termini per i dati dei clienti

Prima di poter utilizzare le conversioni avanzate per il web, devi accettare i termini per i dati dei clienti. Puoi verificare se i termini per i dati dei clienti sono stati accettati inviando la seguente query al cliente per le conversioni di Google Ads:

SELECT
  customer.id,
  customer.conversion_tracking_setting.accepted_customer_data_terms
FROM customer

Se accepted_customer_data_terms è false, segui le istruzioni nel Centro assistenza per completare questo prerequisito.

3. Configura il tagging

Puoi configurare il tagging per il tuo sito web seguendo le istruzioni nel Centro assistenza.

Devi anche aggiungere gli ID transazione, noti anche come ID ordine, al tag di monitoraggio delle conversioni seguendo le istruzioni nel Centro assistenza. Google Ads richiede che questi dati siano in grado di trovare la conversione da migliorare.

Passaggi successivi

Una volta soddisfatti i prerequisiti, potrai implementare le conversioni avanzate per il web nell'API Google Ads.