Per registrare le conversioni, devi attivare il monitoraggio delle conversioni nel tuo account di conversione Google Ads. Questa guida fornisce informazioni dettagliate su come verificare se il monitoraggio delle conversioni è attivato, attivarlo se non lo è già e recuperare informazioni sulle azioni di conversione esistenti.
La maggior parte delle azioni di conversione richiede anche passaggi aggiuntivi da parte tua per il monitoraggio. Per saperne di più sui vari tipi di azioni di conversione e sui relativi requisiti, consulta Categorie di azioni di conversione e Crea azioni di conversione.
Preparati a fornire il consenso
Quando importi le conversioni o i dati utente, devi confermare di avere l'autorizzazione a condividere i dati sulle conversioni con Google. Puoi farlo in due modi:
- Configura le impostazioni di consenso predefinite a livello di account. Nella UI di Google Ads, fai clic su Strumenti > Data Manager > Impostazioni relative al consenso > Impostazioni relative al consenso predefinito.
- Imposta il campo del consenso su ogni payload di dati utente o conversione importato (ad esempio,
ClickConversion.consent,CallConversion.consentoUserData.consent).
Configurare il sito web per monitorare le conversioni
Se monitori le conversioni sul sito web o implementi le conversioni avanzate per i lead, configura prima il tagging del sito web. Segui i passaggi descritti in Configurare il tag Google per le conversioni avanzate per i lead o utilizza Google Tag Manager seguendo le istruzioni riportate in Configurare Google Tag Manager per le conversioni avanzate per i lead.
Attivare il monitoraggio delle conversioni nell'account delle conversioni Google Ads
Segui questi passaggi per verificare la configurazione del monitoraggio delle conversioni del tuo account e creare o recuperare le azioni di conversione.
Procedura per attivare il monitoraggio delle conversioni
Recuperare informazioni sulla configurazione del monitoraggio delle conversioni
Puoi controllare la configurazione del monitoraggio delle conversioni del tuo account e verificare che il monitoraggio delle conversioni sia attivato 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, questo è l'ID di un account amministratore. L'ID cliente conversione 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 è attivato per l'account. Attiva il monitoraggio delle conversioni
creando almeno un ConversionAction nell'account conversioni Google Ads, come nell'esempio seguente. In alternativa, puoi creare un'azione di conversione nell'UI seguendo le istruzioni riportate nell'articolo del Centro assistenza Google Ads sulla configurazione del monitoraggio delle conversioni 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.
Codice di esempio
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.V26.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::V26::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V26::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V26::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
Assicurati che type
sia impostato sul valore
ConversionActionType
corretto. Per ulteriori indicazioni sulla creazione di azioni di conversione nell'API Google Ads, consulta Crea azioni di conversione.
Recupera un'azione di conversione esistente
Puoi recuperare i dettagli di un'azione di conversione esistente eseguendo la seguente query. Assicurati che l'ID cliente nella richiesta sia impostato sul cliente di conversione Google Ads che hai identificato in precedenza e che il tipo di azione di conversione sia impostato sul valore corretto di
ConversionActionType.
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'
Monitoraggio delle conversioni su più account
Il monitoraggio delle conversioni su più account consente agli account Google Ads di importare le conversioni per conto di altri account, che potrebbero aver pubblicato gli annunci che hanno generato conversioni. In questo modo, puoi semplificare l'integrazione consolidando gli account che effettuano richieste di importazione.
Attivazione del monitoraggio delle conversioni su più account nell'API Google Ads
Puoi utilizzare l'API Google Ads per attivare il monitoraggio cross-conversione durante la creazione o l'aggiornamento degli account cliente.
In una risorsa Customer, imposta il campo
conversion_tracking_setting.google_ads_conversion_customer
sul nome risorsa dell'account amministratore che deve
gestire le azioni di conversione per conto dell'account cliente.
Le richieste che modificano il cliente di conversione di un account cliente devono essere inviate dall'account amministratore che sta diventando il nuovo cliente di conversione per il cliente.
Per farlo, imposta login-customer-id sull'ID account amministratore.
Quando attivi il monitoraggio delle conversioni su più account o cambi l'amministratore del monitoraggio delle conversioni per un account cliente esistente, si applicano le stesse avvertenze che si applicano se apportassi questa modifica nella UI. In particolare:
- L'account cliente adotterà le regole per i valori di conversione predefinite e gli obiettivi basati sul ciclo di vita del cliente predefiniti del nuovo gestore del monitoraggio delle conversioni.
- Le campagne che hanno come target un'azione di conversione specifica passeranno all'utilizzo degli obiettivi di conversione predefiniti dell'account gestore conversioni. Se continui a scegliere come target un'azione di conversione specifica, questo può generare un comportamento incoerente, in quanto l'account gestore potrebbe non avere gli stessi obiettivi dell'account cliente. Assicurati che le tue campagne siano ottimizzate per gli obiettivi giusti.
- Se un account appartiene a più account amministratore, può utilizzare solo le azioni di conversione di un amministratore. Se non viene specificato alcun account di monitoraggio delle conversioni, l'account utilizzerà se stesso come account di monitoraggio delle conversioni per impostazione predefinita.
Importazione delle conversioni tra account
Con il monitoraggio su più account attivato, gli account cliente e amministratore possono importare le conversioni per conto dell'account di pubblicazione. In questo modo è possibile semplificare la logica di importazione in modo da non dover determinare l'account di pubblicazione per ogni conversione al momento dell'importazione. Puoi semplicemente scegliere un account dall'albero dell'account per importare tutte le conversioni.
Per caricare correttamente una conversione, l'account di caricamento deve avere accesso all'azione di conversione. In una gerarchia di monitoraggio su più account, l'account di caricamento ha accesso all'azione se è un account principale (amministratore) o un discendente del proprietario dell'azione di conversione nell'albero degli account.
Il seguente diagramma illustra la struttura di autorizzazione per l'importazione
delle conversioni. In questo caso, C1 è l'account cliente che ha pubblicato l'annuncio che ha generato la conversione, M2 è il proprietario dell'azione di conversione e l'account principale di monitoraggio delle conversioni di C1. Gli account evidenziati in verde possono importare le conversioni per conto di C1, mentre quelli evidenziati in rosso non possono.

Crea azioni di conversione
Per misurare le conversioni, configura un ConversionAction per la
type dell'azione di conversione da monitorare.
Ad esempio, un acquisto online e una telefonata richiedono azioni di conversione diverse.
Il modo migliore per configurare nuove azioni di conversione nell'API è utilizzare l'esempio di codice per aggiungere un'azione di conversione. L'esempio gestisce tutte le attività di autenticazione in background per te e ti guida nella creazione di un ConversionAction.
La maggior parte delle azioni di conversione richiede anche passaggi aggiuntivi da parte tua per il monitoraggio. Ad esempio, per monitorare le conversioni sul tuo sito web, devi aggiungere uno snippet di codice chiamato tag alla pagina di conversione del tuo sito web. Per i requisiti dettagliati di altri tipi di azioni di conversione, consulta il nostro articolo del Centro assistenza Google Ads sui tipi di conversione.
Se utilizzi il monitoraggio delle conversioni su più account, ConversionActionService restituisce le seguenti
azioni di conversione:
- Tutte le azioni di conversione definite dall'account amministratore utilizzato dall'account per il monitoraggio delle conversioni su più account
- Tutte le azioni di conversione per le quali il cliente ha accumulato statistiche, incluse le azioni definite dal sistema e quelle di proprietà dell'amministratore, anche se quest'ultimo viene scollegato in un secondo momento.
- Tutte le azioni che il cliente ha definito nel proprio account
- Conversioni di Analytics create nelle proprietà Google Analytics collegate.
Sono incluse le azioni per le conversioni di Analytics non importate in Google Ads, che hanno lo stato
HIDDEN.
Codice di esempio
L'esempio di codice riportato di seguito illustra la procedura di creazione di una nuova azione di conversione. In particolare, crea un'azione di conversione con
type impostato su UPLOAD_CLICKS.
Imposta anche category su DEFAULT.
Si applicano le seguenti impostazioni predefinite:
L'API Google Ads imposta automaticamente il campo
primary_for_goal, ma puoi impostarlo in modo esplicito per controllare l'impatto di un'azione di conversione sui report e sulle offerte nel tuo account quando viene combinata con gli obiettivi di conversione.L'API Google Ads imposta automaticamente
counting_typesuMANY_PER_CLICK. Per saperne di più, consulta Informazioni sulle opzioni di conteggio delle conversioni.L'API Google Ads imposta il modello di attribuzione su Basata sui dati impostando il campo
attribution_model_settingssul valoreGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVENdiAttributionModel. Per saperne di più sui modelli di attribuzione, consulta Informazioni sui modelli di attribuzione.
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.V26.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::V26::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V26::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V26::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
Puoi vedere questo esempio nella cartella Remarketing della libreria client e nella raccolta di esempi di codice: Esempio di codice Aggiungi azione di conversione.
Riferimento per il campo ConversionActionService.MutateConversionActions
Utilizza MutateConversionActions su
ConversionActionService per creare, aggiornare o
rimuovere le azioni di conversione nel cliente di conversione Google Ads:
POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
La tabella seguente elenca i campi di richiesta e operazione di primo livello su MutateConversionActionsRequest:
| Campo | Requisito | Descrizione |
|---|---|---|
customer_id |
Obbligatorio | L'ID a 10 cifre (string) del cliente di conversione Google Ads (google_ads_conversion_customer), senza trattini. |
partial_failure |
Facoltativo | Quando true (bool), le operazioni valide vengono eseguite e quelle non riuscite restituiscono errori in partial_failure_error. Il valore predefinito è false. |
validate_only |
Facoltativo | Se true (bool), convalida la richiesta senza eseguire mutazioni. |
response_content_type |
Facoltativo | ResponseContentType controlla se la risposta restituisce solo resource_name (RESOURCE_NAME_ONLY, predefinito) o l'oggetto ConversionAction modificato (MUTABLE_RESOURCE). |
operations[].create |
Obbligatorio (al momento della creazione) | La risorsa ConversionAction da creare. Non è prevista alcuna resource_name. |
operations[].update |
Obbligatorio (all'aggiornamento) | La risorsa ConversionAction da aggiornare (deve includere resource_name e un elemento di pari livello update_mask su ConversionActionOperation). |
operations[].update_mask |
Obbligatorio (all'aggiornamento) | FieldMask (elenco separato da virgole dei percorsi dei campi ConversionAction modificati in snake_case; REST JSON updateMask accetta snake_case o camelCase, mentre gRPC e le librerie client richiedono snake_case) in ConversionActionOperation (elemento di pari livello di update, non nidificato all'interno di ConversionAction). |
operations[].remove |
Obbligatorio (per la rimozione) | Nome risorsa (customers/{customer_id}/conversionActions/{action_id}) dell'azione di conversione da rimuovere. |
Quando configuri un ConversionAction in operations[].create o operations[].update, osserva i seguenti requisiti dei campi e vincoli di mutabilità (consulta Convalide per le regole di errore specifiche per il tipo):
Campo ConversionAction |
Requisito e modificabilità | Descrizione |
|---|---|---|
name |
Obbligatorio (modificabile) | Nome visualizzato univoco (string) all'interno dell'account cliente di conversione. |
type |
Obbligatorio su create (IMMUTABLE) |
ConversionActionType (ad esempio WEBPAGE, UPLOAD_CLICKS, UPLOAD_CALLS, AD_CALL o WEBSITE_CALL). |
category |
(Facoltativo) Modificabile | ConversionActionCategory (ad esempio DEFAULT, PURCHASE, SUBMIT_LEAD_FORM, SIGNUP o PHONE_CALL_LEAD). Il valore predefinito è DEFAULT. |
status |
Facoltativo (modificabile) | ConversionActionStatus (ENABLED, REMOVED o HIDDEN). Il valore predefinito è ENABLED. |
primary_for_goal |
Facoltativo (modificabile) | bool che controlla se l'azione è offertabile negli obiettivi di conversione standard di clienti e campagne (nota: le risorse CustomConversionGoal ignorano questa impostazione). Il valore predefinito è true. |
counting_type |
(Facoltativo) Modificabile | ConversionActionCountingType (MANY_PER_CLICK predefinito o ONE_PER_CLICK). |
value_settings |
Facoltativo (modificabile) | ValueSettings (default_value, default_currency_code, always_use_default_value). |
attribution_model_settings |
Facoltativo (modificabile) | AttributionModelSettings (attribution_model: GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN predefinito o GOOGLE_ADS_LAST_CLICK). |
click_through_lookback_window_days |
(Facoltativo) Modificabile | Finestra temporale di clickthrough di int64 giorni (da 1 a 90 per la maggior parte dei tipi; da 1 a 60 per i tipi di chiamata). |
view_through_lookback_window_days |
Facoltativo (modificabile) | Finestra temporale view-through int64 in giorni (da 1 a 30 per la maggior parte dei tipi; non impostata per i tipi di chiamata). |
phone_call_duration_seconds |
Solo tipi di chiamata (modificabile) | int64 durata minima della chiamata in secondi (da 0 a 10000). |
app_id |
Solo tipi di app (immutabili dopo la creazione) | Identificatore app mobile (string); può essere impostato solo su create per le azioni di conversione da app. |
include_in_conversions_metric |
Sola lettura nelle mutazioni | Non può essere modificato direttamente; configura invece primary_for_goal. |
tag_snippets[] |
OUTPUT_ONLY |
Snippet di codice di monitoraggio del sito web (TagSnippet) compilati in WEBPAGE azioni di conversione. |
Struttura di richiesta e risposta REST
Per creare o aggiornare un ConversionAction tramite REST, invia una richiesta POST a ConversionActionService.MutateConversionActions.
Quando aggiorni un'azione di conversione esistente, specifica updateMask nell'oggetto dell'operazione come elemento secondario di update:
POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
{
"operations": [
{
"create": {
"name": "Earth to Mars Cruise Conversion",
"type": "UPLOAD_CLICKS",
"category": "DEFAULT",
"status": "ENABLED",
"primaryForGoal": true,
"countingType": "ONE_PER_CLICK",
"clickThroughLookbackWindowDays": "60",
"valueSettings": {
"defaultValue": 23.41,
"defaultCurrencyCode": "USD",
"alwaysUseDefaultValue": true
}
}
},
{
"updateMask": "primary_for_goal,value_settings.default_value",
"update": {
"resourceName": "customers/{customer_id}/conversionActions/6666666666",
"primaryForGoal": false,
"valueSettings": {
"defaultValue": 45.00
}
}
}
]
}
Una risposta positiva restituisce le voci MutateConversionActionResult in results[]:
{
"results": [
{
"resourceName": "customers/{customer_id}/conversionActions/7777777777"
},
{
"resourceName": "customers/{customer_id}/conversionActions/6666666666"
}
]
}
Controlla le impostazioni delle azioni di conversione e gli snippet dei tag con GAQL
Oltre alla query di base mostrata in Passaggi per attivare il monitoraggio delle conversioni, puoi eseguire una query sulla risorsa conversion_action utilizzando GoogleAdsService.SearchStream per esaminare primary_for_goal, lo stato del modello di attribuzione, le finestre temporali, le impostazioni del valore e il sito web tag_snippets:
SELECT
conversion_action.id,
conversion_action.resource_name,
conversion_action.name,
conversion_action.type,
conversion_action.category,
conversion_action.status,
conversion_action.primary_for_goal,
conversion_action.counting_type,
conversion_action.click_through_lookback_window_days,
conversion_action.view_through_lookback_window_days,
conversion_action.value_settings.default_value,
conversion_action.value_settings.default_currency_code,
conversion_action.value_settings.always_use_default_value,
conversion_action.attribution_model_settings.attribution_model,
conversion_action.attribution_model_settings.data_driven_model_status,
conversion_action.tag_snippets
FROM conversion_action
WHERE conversion_action.status = 'ENABLED'
Convalide
Google Ads e l'API Google Ads supportano un'ampia gamma di azioni di conversione, pertanto alcune regole di convalida variano in base al type dell'azione.
L'errore di gran lunga più comune durante la creazione di un'azione di conversione è
DUPLICATE_NAME. Assicurati di utilizzare un nome univoco per ogni azione di conversione.
Ecco alcuni suggerimenti per l'impostazione dei campi ConversionAction:
- Tutti i campi enum
- Il tentativo di impostare un campo enum su
UNKNOWNgenera un erroreRequestError.INVALID_ENUM_VALUE. app_id- L'attributo
app_idè immutabile e può essere impostato solo durante la creazione di una nuova conversione di app. attribution_model_settings- Se imposti questa opzione su un'opzione deprecata, viene visualizzato
un errore
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS. Google Ads supporta soloGOOGLE_ADS_LAST_CLICKeGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN. click_through_lookback_window_daysSe imposti questo attributo su un valore al di fuori dell'intervallo consentito, si verifica un errore
RangeError.TOO_LOWoRangeError.TOO_HIGH.Questo attributo deve essere compreso tra 1 e 60 giorni per un'azione di conversione
AD_CALLoWEBSITE_CALL. Per la maggior parte delle altre azioni di conversione, l'intervallo consentito è compreso tra 1 e 90 giorni.include_in_conversions_metricL'impostazione di questo valore in un'operazione
createoupdatenon va a buon fine e viene visualizzato un erroreFieldError.IMMUTABLE_FIELD. Imposta inveceprimary_for_goalcome descritto nella guida agli obiettivi di conversione.phone_call_duration_secondsSe provi a impostare questo attributo su un'azione di conversione non relativa alle chiamate, viene generato un errore
FieldError.VALUE_MUST_BE_UNSET.typeL'attributo
typeè immutabile e può essere impostato solo quando si crea una nuova conversione.L'aggiornamento di un'azione di conversione con
typeuguale aUNKNOWNgenera un erroreMutateError.MUTATE_NOT_ALLOWED.value_settingsIl campo
value_settingsper un'azione di conversioneWEBSITE_CALLoAD_CALLdeve avere il campoalways_use_default_valueimpostato sutrue. Se specifichi un valorefalsequando crei o aggiorni questo valore, viene generato un erroreINVALID_VALUE.view_through_lookback_window_daysSe imposti questo attributo su un valore al di fuori dell'intervallo consentito, viene generato un errore
RangeError.TOO_LOWoRangeError.TOO_HIGH. Per la maggior parte delle azioni di conversione, l'intervallo consentito è compreso tra 1 e 30 giorni.Questo attributo non può essere impostato sulle azioni di conversione
AD_CALLoWEBSITE_CALL. La specifica di un valore genera un erroreVALUE_MUST_BE_UNSET.