Le conversioni avanzate per il web richiedono la configurazione 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 configurare le conversioni avanzate tramite Google Tag Manager, il tag Google o l'API Google Ads. L'utilizzo dell'API Google Ads offre il vantaggio di inviare i dati sulle conversioni proprietarie entro 24 ore dall'evento di conversione, anziché contemporaneamente. In questo modo, è possibile individuare i dati proprietari da diverse origini, ad esempio un database di clienti o un sistema CRM.
Come funzionano le conversioni avanzate per il web
Le conversioni avanzate per il web nell'API Google Ads completano il passaggio 3 del seguente flusso.
Invece di inviare le informazioni sull'utente sottoposte ad hashing quando l'utente effettua una conversione, il tag invia solo il GCLID e l'ID ordine e in un secondo momento invii le informazioni sull'utente sottoposte ad hashing caricando l'ID ordine insieme ai dati sottoposti ad hashing. Per scoprire di più sulle conversioni avanzate per il web, visita il nostro Centro assistenza.
Implementa i prerequisiti
Esistono alcuni prerequisiti per una configurazione delle conversioni avanzate funzionante. Prima di procedere all'implementazione, assicurati che tutti i prerequisiti siano soddisfatti:
Attiva il monitoraggio delle conversioni nel cliente di conversione Google Ads.
Accetta i termini relativi ai dati dei clienti.
Configura il tagging.
1. Attivare il monitoraggio delle conversioni nel cliente di conversione Google Ads
Recuperare informazioni sulla configurazione del monitoraggio delle conversioni
Puoi controllare la configurazione del monitoraggio delle conversioni del tuo account e verificare che sia abilitato eseguendo una query sulla risorsa Customer
per ConversionTrackingSetting
.
Esegui la seguente query 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
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. L'ID cliente di conversione di Google Ads deve essere fornito come customer_id
nelle richieste dell'API Google Ads per creare e gestire le conversioni.
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 è attivato e se l'account
utilizza il monitoraggio delle conversioni su più account.
Crea un'azione di conversione nel cliente di conversione Google Ads
Se il valore conversion_tracking_status
è NOT_CONVERSION_TRACKED
, il monitoraggio delle conversioni non è attivo per l'account. Attiva il monitoraggio delle conversioni
creando almeno un ConversionAction
nell'account conversione 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 quando vengono 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.V18.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::V18::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V18::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V18::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 corretto
ConversionActionType
.
Per ulteriori indicazioni sulla creazione di azioni di conversione nell'API Google Ads, consulta Creare azioni di conversione.
Recuperare un'azione di conversione esistente
Puoi recuperare i dettagli di un'azione di conversione esistente emettendo la seguente query. Assicurati che l'ID cliente nella richiesta sia impostato sul cliente di conversione Google Ads che hai identificato sopra 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
Per poter utilizzare le conversioni avanzate per il web, devi accettare i termini relativi ai dati dei clienti. Puoi verificare se i termini relativi ai dati dei clienti sono stati accettati inviando la seguente query al cliente di conversione Google Ads:
SELECT
customer.id,
customer.conversion_tracking_setting.accepted_customer_data_terms
FROM customer
Se accepted_customer_data_terms
è false
, segui le istruzioni riportate nel
Centro assistenza
per completare questo prerequisito.
3. Configurare il tagging
Puoi configurare il tagging per il tuo sito web seguendo le istruzioni riportate nel Centro assistenza. È consigliabile anche aggiungere gli ID transazione (ID ordine) al tag di monitoraggio delle conversioni per facilitare la corrispondenza delle conversioni.
Passaggi successivi
Una volta soddisfatti i prerequisiti, puoi implementare le conversioni avanzate per il web nell'API Google Ads.