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.
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:
Attiva il monitoraggio delle conversioni nel tuo cliente per le conversioni di Google Ads.
Accetta i termini per i dati dei clienti.
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.