4.1.5 Monitoraggio delle conversioni
Valore e impatto aziendale
Per fornire in modo efficace le potenti funzionalità di machine learning e per le campagne pubblicitarie con i clienti dei commercianti, devi inserire le conversioni tag di monitoraggio e remarketing sui siti web dei clienti.
Una conversione in Google Ads si verifica quando un utente esegue un'azione specificata dopo aver fatto clic su un annuncio, ad esempio aver acquistato un prodotto, installato un'app mobile o la registrazione a una mailing list. Il monitoraggio delle conversioni fornisce approfondimenti chiave nella risposta agli utenti azioni eseguite dopo aver visualizzato o fatto clic su un annuncio, incluse informazioni su calcolare e confrontare il ritorno sull'investimento (ROI) per aiutare i clienti prendere decisioni su dove concentrare la spesa pubblicitaria. Il monitoraggio aiuta anche a garantire rendere disponibili i dati ai fini della riconciliazione. Gli ordini variano a seconda prodotto o categoria; pertanto, il monitoraggio delle conversioni può essere utile anche per mostrare in che modo gruppi di schede specifici stanno convertendo in vendite.
Un obiettivo di conversione è un gruppo di azioni di conversione con lo stesso dell'obiettivo sottostante. Ad esempio, "Acquisto" può essere un obiettivo di conversione con Acquisti sul sito web e "Vendite in negozio" come azioni di conversione.
Le azioni di conversione vengono comunque utilizzate per monitorare le conversioni e ottimizzare campagna. Crei azioni di conversione e Google le raggruppa nella conversione obiettivi.
Azione di conversione di acquisto
L'implementazione del monitoraggio delle conversioni qui descritto consente Account Google Ads per misurare il numero di conversioni di acquisto e il valore di queste conversioni. Senza il monitoraggio delle conversioni, non puoi misurare il valore aziendale generato dalla campagna in termini di ROAS (ritorno spesa pubblicitaria). Invia inoltre indicatori di dati aggiuntivi che consentono alla campagna di per ottimizzare le prestazioni.
Altre azioni di conversione
Sebbene l'azione di conversione di acquisto sia solo obbligatoria, il monitoraggio di le azioni di conversione possono fornire ulteriori approfondimenti ai tuoi commercianti. Me consigliamo di registrare tutto il possibile, implementando al contempo il maggior numero azioni di conversione principali. Un elenco completo delle azioni di conversione consigliate è come descritto nella sezione Indicazioni sulle API tecnologiche.
In generale, si consiglia di acquisire quanto segue:
- Qualsiasi evento con esito positivo direttamente associato al valore
- Eventi di successo che contribuiscono alle conversioni principali, come add_to_cart e .
- I coinvolgimenti e le interazioni degli utenti che aiutano gli inserzionisti a capire il loro coinvolgere gli utenti finali
Le azioni di conversione secondarie sono solo per l'osservazione e la generazione di report, influiscono sulle offerte.Scopri di più sulle azioni di conversione principali e secondarie.
Indicazioni per l'esperienza utente
Per ridurre al minimo il rischio di errori, ti consigliamo di implementare la conversione il monitoraggio in modo programmatico senza i input del commerciante, ma devi assicurarti che i commercianti sappiano che il monitoraggio delle conversioni è stato configurato.
Quando i commercianti collegano un account Google Ads esistente, ti consigliamo di mostrare una notifica che l'account potrebbe disporre già del monitoraggio delle conversioni perché potrebbero esserci conflitti che devono essere risolti. Viene mostrato un esempio di seguito.
Consulenza tecnica
Ecco come funziona il monitoraggio delle conversioni. Questa sezione approfondisce ciascun aspetto passaggio:
Crei un'azione di conversione nell'account Google Ads del tuo commerciante per monitorare gli acquisti (e, facoltativamente, altre azioni del cliente) effettuati sul sito web.
Aggiungi il tag o lo snippet di codice per questa azione di conversione a un sito web oppure app mobile. Per maggiori dettagli, consulta Impostare il monitoraggio delle conversioni per il tuo sito web.
Quando un cliente fa clic sull'annuncio, viene inserito un cookie temporaneo nella dal computer o dal dispositivo mobile del cliente.
Quando il cliente completa l'azione definita per l'inserzionista, Google riconosce il cookie (tramite lo snippet di codice aggiunto) e registra un conversione insieme ad altri parametri come "value" se opportuno.
Prerequisiti
Prima di iniziare, assicurati di disporre di un ID sviluppatore del tag Google. In caso contrario un ID sviluppatore del tag Google, compila il Modulo di richiesta dell'ID sviluppatore del tag Google. Il tuo ID sviluppatore è diverso da altri ID, come l'ID misurazione o l'ID conversione, che hai che gli utenti aggiungono al codice di misurazione del sito web.
Creare e configurare azioni di conversione
I seguenti esempi mostrano come creare un'azione di conversione e aggiungerla a un account Google Ads. Ogni esempio gestisce tutte le attività di autenticazione in background e ti guiderà nella creazione di un'azione di conversione:
Java
// Copyright 2018 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // https://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. package com.google.ads.googleads.examples.remarketing; import static com.google.ads.googleads.examples.utils.CodeSampleHelper.getPrintableDateTime; import com.beust.jcommander.Parameter; import com.google.ads.googleads.examples.utils.ArgumentNames; import com.google.ads.googleads.examples.utils.CodeSampleParams; import com.google.ads.googleads.lib.GoogleAdsClient; import com.google.ads.googleads.v17.enums.ConversionActionCategoryEnum.ConversionActionCategory; import com.google.ads.googleads.v17.enums.ConversionActionStatusEnum.ConversionActionStatus; import com.google.ads.googleads.v17.enums.ConversionActionTypeEnum.ConversionActionType; import com.google.ads.googleads.v17.errors.GoogleAdsError; import com.google.ads.googleads.v17.errors.GoogleAdsException; import com.google.ads.googleads.v17.resources.ConversionAction; import com.google.ads.googleads.v17.resources.ConversionAction.ValueSettings; import com.google.ads.googleads.v17.services.ConversionActionOperation; import com.google.ads.googleads.v17.services.ConversionActionServiceClient; import com.google.ads.googleads.v17.services.MutateConversionActionResult; import com.google.ads.googleads.v17.services.MutateConversionActionsResponse; import java.io.FileNotFoundException; import java.io.IOException; import java.util.Collections; /** Adds a conversion action. */ public class AddConversionAction { private static class AddConversionActionParams extends CodeSampleParams { @Parameter(names = ArgumentNames.CUSTOMER_ID, required = true) private Long customerId; } public static void main(String[] args) { AddConversionActionParams params = new AddConversionActionParams(); if (!params.parseArguments(args)) { // Either pass the required parameters for this example on the command line, or insert them // into the code here. See the parameter class definition above for descriptions. params.customerId = Long.parseLong("INSERT_CUSTOMER_ID_HERE"); } GoogleAdsClient googleAdsClient = null; try { googleAdsClient = GoogleAdsClient.newBuilder().fromPropertiesFile().build(); } catch (FileNotFoundException fnfe) { System.err.printf( "Failed to load GoogleAdsClient configuration from file. Exception: %s%n", fnfe); System.exit(1); } catch (IOException ioe) { System.err.printf("Failed to create GoogleAdsClient. Exception: %s%n", ioe); System.exit(1); } try { new AddConversionAction().runExample(googleAdsClient, params.customerId); } catch (GoogleAdsException gae) { // GoogleAdsException is the base class for most exceptions thrown by an API request. // Instances of this exception have a message and a GoogleAdsFailure that contains a // collection of GoogleAdsErrors that indicate the underlying causes of the // GoogleAdsException. System.err.printf( "Request ID %s failed due to GoogleAdsException. Underlying errors:%n", gae.getRequestId()); int i = 0; for (GoogleAdsError googleAdsError : gae.getGoogleAdsFailure().getErrorsList()) { System.err.printf(" Error %d: %s%n", i++, googleAdsError); } System.exit(1); } } /** * Runs the example. * * @param googleAdsClient the Google Ads API client. * @param customerId the client customer ID. * @throws GoogleAdsException if an API request failed with one or more service errors. */ 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#
// Copyright 2019 Google LLC // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. using CommandLine; using Google.Ads.Gax.Examples; using Google.Ads.GoogleAds.Lib; using Google.Ads.GoogleAds.V17.Errors; using Google.Ads.GoogleAds.V17.Resources; using Google.Ads.GoogleAds.V17.Services; using System; using static Google.Ads.GoogleAds.V17.Enums.ConversionActionCategoryEnum.Types; using static Google.Ads.GoogleAds.V17.Enums.ConversionActionStatusEnum.Types; using static Google.Ads.GoogleAds.V17.Enums.ConversionActionTypeEnum.Types; namespace Google.Ads.GoogleAds.Examples.V17 { /// <summary> /// This code example illustrates adding a conversion action. /// </summary> public class AddConversionAction : ExampleBase { /// <summary> /// Command line options for running the <see cref="AddConversionAction"/> example. /// </summary> public class Options : OptionsBase { /// <summary> /// The Google Ads customer ID for which the conversion action is added. /// </summary> [Option("customerId", Required = true, HelpText = "The Google Ads customer ID for which the conversion action is added.")] public long CustomerId { get; set; } } /// <summary> /// Main method, to run this code example as a standalone application. /// </summary> /// <param name="args">The command line arguments.</param> public static void Main(string[] args) { Options options = ExampleUtilities.ParseCommandLine<Options>(args); AddConversionAction codeExample = new AddConversionAction(); Console.WriteLine(codeExample.Description); codeExample.Run(new GoogleAdsClient(), options.CustomerId); } /// <summary> /// Returns a description about the code example. /// </summary> public override string Description => "This code example illustrates adding a conversion action."; /// <summary> /// Runs the code example. /// </summary> /// <param name="client">The Google Ads client.</param> /// <param name="customerId">The Google Ads customer ID for which the conversion action is /// added.</param> public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V17.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
<?php /** * Copyright 2018 Google LLC * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * https://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ namespace Google\Ads\GoogleAds\Examples\Remarketing; require __DIR__ . '/../../vendor/autoload.php'; use GetOpt\GetOpt; use Google\Ads\GoogleAds\Examples\Utils\ArgumentNames; use Google\Ads\GoogleAds\Examples\Utils\ArgumentParser; use Google\Ads\GoogleAds\Examples\Utils\Helper; use Google\Ads\GoogleAds\Lib\V17\GoogleAdsClient; use Google\Ads\GoogleAds\Lib\V17\GoogleAdsClientBuilder; use Google\Ads\GoogleAds\Lib\V17\GoogleAdsException; use Google\Ads\GoogleAds\Lib\OAuth2TokenBuilder; use Google\Ads\GoogleAds\V17\Enums\ConversionActionCategoryEnum\ConversionActionCategory; use Google\Ads\GoogleAds\V17\Enums\ConversionActionStatusEnum\ConversionActionStatus; use Google\Ads\GoogleAds\V17\Enums\ConversionActionTypeEnum\ConversionActionType; use Google\Ads\GoogleAds\V17\Errors\GoogleAdsError; use Google\Ads\GoogleAds\V17\Resources\ConversionAction; use Google\Ads\GoogleAds\V17\Resources\ConversionAction\ValueSettings; use Google\Ads\GoogleAds\V17\Services\ConversionActionOperation; use Google\Ads\GoogleAds\V17\Services\MutateConversionActionsRequest; use Google\ApiCore\ApiException; /** This example illustrates adding a conversion action. */ class AddConversionAction { private const CUSTOMER_ID = 'INSERT_CUSTOMER_ID_HERE'; public static function main() { // Either pass the required parameters for this example on the command line, or insert them // into the constants above. $options = (new ArgumentParser())->parseCommandArguments([ ArgumentNames::CUSTOMER_ID => GetOpt::REQUIRED_ARGUMENT ]); // Generate a refreshable OAuth2 credential for authentication. $oAuth2Credential = (new OAuth2TokenBuilder())->fromFile()->build(); // Construct a Google Ads client configured from a properties file and the // OAuth2 credentials above. $googleAdsClient = (new GoogleAdsClientBuilder()) ->fromFile() ->withOAuth2Credential($oAuth2Credential) // We set this value to true to show how to use GAPIC v2 source code. You can remove the // below line if you wish to use the old-style source code. Note that in that case, you // probably need to modify some parts of the code below to make it work. // For more information, see // https://developers.devsite.corp.google.com/google-ads/api/docs/client-libs/php/gapic. ->usingGapicV2Source(true) ->build(); try { self::runExample( $googleAdsClient, $options[ArgumentNames::CUSTOMER_ID] ?: self::CUSTOMER_ID ); } catch (GoogleAdsException $googleAdsException) { printf( "Request with ID '%s' has failed.%sGoogle Ads failure details:%s", $googleAdsException->getRequestId(), PHP_EOL, PHP_EOL ); foreach ($googleAdsException->getGoogleAdsFailure()->getErrors() as $error) { /** @var GoogleAdsError $error */ printf( "\t%s: %s%s", $error->getErrorCode()->getErrorCode(), $error->getMessage(), PHP_EOL ); } exit(1); } catch (ApiException $apiException) { printf( "ApiException was thrown with message '%s'.%s", $apiException->getMessage(), PHP_EOL ); exit(1); } } /** * Runs the example. * * @param GoogleAdsClient $googleAdsClient the Google Ads API client * @param int $customerId the customer ID */ 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 ); } } } AddConversionAction::main();
Python
#!/usr/bin/env python # Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. """This example illustrates adding a conversion action.""" import argparse import sys import uuid from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.errors import GoogleAdsException 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}".' ) if __name__ == "__main__": parser = argparse.ArgumentParser( description="Adds a conversion action for specified customer." ) # The following argument(s) should be provided to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Google Ads customer ID.", ) args = parser.parse_args() # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. googleads_client = GoogleAdsClient.load_from_storage(version="v17") try: main(googleads_client, args.customer_id) except GoogleAdsException as ex: print( f'Request with ID "{ex.request_id}" failed with status ' f'"{ex.error.code().name}" and includes the following errors:' ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1)
Ruby
#!/usr/bin/env ruby # Encoding: utf-8 # # Copyright 2018 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # This code example illustrates adding a conversion action. require 'optparse' require 'google/ads/google_ads' require 'date' 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 if __FILE__ == $0 options = {} # The following parameter(s) should be provided to run the example. You can # either specify these by changing the INSERT_XXX_ID_HERE values below, or on # the command line. # # Parameters passed on the command line will override any parameters set in # code. # # Running the example with -h will print the command line usage. options[:customer_id] = 'INSERT_CUSTOMER_ID_HERE' OptionParser.new do |opts| opts.banner = sprintf('Usage: %s [options]', File.basename(__FILE__)) opts.separator '' opts.separator 'Options:' opts.on('-C', '--customer-id CUSTOMER-ID', String, 'Customer ID') do |v| options[:customer_id] = v end opts.separator '' opts.separator 'Help:' opts.on_tail('-h', '--help', 'Show this message') do puts opts exit end end.parse! begin add_conversion_action(options.fetch(:customer_id).tr("-", "")) rescue Google::Ads::GoogleAds::Errors::GoogleAdsError => e e.failure.errors.each do |error| STDERR.printf("Error with message: %s\n", error.message) if error.location error.location.field_path_elements.each do |field_path_element| STDERR.printf("\tOn field: %s\n", field_path_element.field_name) end end error.error_code.to_h.each do |k, v| next if v == :UNSPECIFIED STDERR.printf("\tType: %s\n\tCode: %s\n", k, v) end end raise end end
Perl
#!/usr/bin/perl -w # # Copyright 2019, Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # http://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. # # This example illustrates adding a conversion action. use strict; use warnings; use utf8; use FindBin qw($Bin); use lib "$Bin/../../lib"; use Google::Ads::GoogleAds::Client; use Google::Ads::GoogleAds::Utils::GoogleAdsHelper; use Google::Ads::GoogleAds::V17::Resources::ConversionAction; use Google::Ads::GoogleAds::V17::Resources::ValueSettings; use Google::Ads::GoogleAds::V17::Enums::ConversionActionCategoryEnum qw(DEFAULT); use Google::Ads::GoogleAds::V17::Enums::ConversionActionTypeEnum qw(WEBPAGE); use Google::Ads::GoogleAds::V17::Enums::ConversionActionStatusEnum qw(ENABLED); use Google::Ads::GoogleAds::V17::Services::ConversionActionService::ConversionActionOperation; use Getopt::Long qw(:config auto_help); use Pod::Usage; use Cwd qw(abs_path); use Data::Uniqid qw(uniqid); # The following parameter(s) should be provided to run the example. You can # either specify these by changing the INSERT_XXX_ID_HERE values below, or on # the command line. # # Parameters passed on the command line will override any parameters set in # code. # # Running the example with -h will print the command line usage. my $customer_id = "INSERT_CUSTOMER_ID_HERE"; 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::V17::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V17::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V17::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; } # Don't run the example if the file is being included. if (abs_path($0) ne abs_path(__FILE__)) { return 1; } # Get Google Ads Client, credentials will be read from ~/googleads.properties. my $api_client = Google::Ads::GoogleAds::Client->new(); # By default examples are set to die on any server returned fault. $api_client->set_die_on_faults(1); # Parameters passed on the command line will override any parameters set in code. GetOptions("customer_id=s" => \$customer_id); # Print the help message if the parameters are not initialized in the code nor # in the command line. pod2usage(2) if not check_params($customer_id); # Call the example. add_conversion_action($api_client, $customer_id =~ s/-//gr); =pod =head1 NAME add_conversion_action =head1 DESCRIPTION This example illustrates adding a conversion action. =head1 SYNOPSIS add_conversion_action.pl [options] -help Show the help message. -customer_id The Google Ads customer ID. =cut
Poiché gli esempi precedenti sono generici, di seguito sono riportate note aggiuntive per che l'attributo ConversionAction sia configurato correttamente per Performance Max. Ogni azione di conversione deve essere configurata come segue:
Tipo: imposta ConversionActionType su WEBPAGE, perché questi acquisti si verificano su un sito web.
Disponibile - Imposta su
true
per l'offerta principale azione di conversione (acquisto) per ottimizzare le campagne in base alle vendite. Per le azioni di conversione secondarie (ad es.aggiunta al carrello), imposta il valore sufalse
.Categoria: per ogni azione di conversione (principale o secondaria),imposta ConversionActionCategory. Di seguito puoi trovare la categoria di azione della conversazione pertinente per ognuna delle sette azioni di conversione che consigliamo di implementare. Tieni presente che Google Ads assegna automaticamente la conversione azioni a un obiettivo di conversione standard in base alla categoria. Ad esempio, le azioni di conversione di acquisto all'obiettivo di conversione standard "Acquisti". In seguito, puoi configurare campagna per ottimizzare in base a questo obiettivo Acquisti.
Di seguito è riportato un elenco di azioni di conversione consigliate. I nostri suggerimenti implementare almeno le prime quattro azioni di conversione e il maggior numero il maggior numero possibile di altre azioni consigliate.
Potresti anche valutare l'implementazione eventi aggiuntivi pertinenti per le vendite online. Per dati ancora più granulari il monitoraggio delle conversioni, puoi anche creare azioni di conversione aggiuntive o azioni di conversione (ad es. un'azione per "aggiungere dati di pagamento" Ogni volta che un utente utilizza l'opzione di ricerca sul sito web o un'azione per "cerca" ogni volta che un utente utilizza l'opzione di ricerca sul sito web). Secondarie azioni di conversione forniscono un monitoraggio aggiuntivo per i commercianti e sono utilizzati da Google Ads per l'osservazione.
Priorità | Azione di conversione | Categoria azione di conversione | Nome evento tag Google | Descrizione |
---|---|---|---|---|
Obbligatorio | Acquista | ACQUISTO | purchase | L'utente completa un acquisto |
Fortemente consigliato per tutti gli store builder | Aggiungi al carrello | ADD_TO_CART | add_to_cart | L'utente aggiunge un prodotto al carrello |
Fortemente consigliato per tutti gli store builder | Inizio procedura di pagamento | BEGIN_CHECKOUT | begin_checkout | L'utente avvia la procedura di pagamento |
Fortemente consigliato per tutti gli store builder | Visualizza elemento | PAGE_VIEW | page_view | L'utente apre una pagina di prodotto |
Vivamente consigliato se applicabile (generalmente non per store builder) | Registrati | REGISTRAZIONE | sign_up | L'utente si registra a un account |
Vivamente consigliato se applicabile (generalmente non per store builder) | Generare lead | SUBMIT_LEAD_FORM | generate_lead | L'utente genera un lead tramite un modulo |
Vivamente consigliato se applicabile (generalmente non per store builder) | Iscriviti | SUBSCRIBE_PAID | non applicabile (personalizzato) | L'utente si abbona a un servizio a pagamento |
Vivamente consigliato se applicabile (generalmente non per store builder) | Prenotazione appuntamento | BOOK_APPOINTMENT | non applicabile (personalizzato) | L'utente prenota un appuntamento |
Vivamente consigliato se applicabile (generalmente non per store builder) | Richiesta preventivo | REQUEST_QUOTE | non applicabile (personalizzato) | L'utente invia un modulo per richiedere una stima del prezzo |
Commercianti con un account Google Ads esistente
Se consenti ai commercianti di effettuare l'onboarding con un account Google Ads esistente, puoi pubblicare nel caso in cui l'account abbia già azioni di conversione. Non consigliamo di utilizzare un'azione di conversione esistente, in quanto non vi è alcuna garanzia che sia stato configurato correttamente. Inoltre, ci sono altri passaggi da seguire per gestire questi potenziali scenari:
L'account ha più obiettivi (ad esempio Acquisti + Visualizzazioni di pagina + Contatti) tutti contrassegnati come "predefiniti dell'account". Quando viene creata una nuova campagna, il valore predefinito è l'ottimizzazione in funzione di tutti questi obiettivi. È da evitare per gli Campagna Performance Max.
L'account ha già una (o più) azioni di conversione per monitorare gli acquisti e ma è già raggruppato nell'obiettivo Acquisti. Ciò significa che dopo campagna conteggia due volte un acquisto, perché vengono attivati due tag di conversione.
Per assicurarti che la campagna Performance Max utilizzi l'azione di conversione personalizzata e solo quella azione:
Crea un CustomConversionGoal e aggiungi l'azione di conversione "Acquisto" all'elenco di obiettivi di
conversion_actions[]
. Imposta lo stato su ATTIVATO.In ConversionGoalCampaignConfig della campagna Performance Max, imposta
custom_conversion_goal
all'obiettivo personalizzato creato nel passaggio (1).Dopo il passaggio (2), Google Ads dovrebbe aver aggiornato automaticamente ConversionGoalCampaignConfig della campagna in modo tale che
goal_config_level
sia impostato a CAMPAIGN (anziché CUSTOMER, che gli indirizzerebbe a utilizzare il parametro predefiniti per l'account), ma vale la pena verificare che questo è successo.
Recupera il tag per l'azione di conversione
Dopo aver creato l'azione di conversione, devi inserire il metodo snippet di codice corrispondente chiamato tag alla pagina di conversione in sito web dell'inserzionista. Per garantire che Google Ads possa misurare tutte le conversioni a prescindere dal browser del cliente, utilizza la aggiornato il tag di monitoraggio delle conversioni di Google Ads. Questo tag è costituito da due parti:
L'
global_site_tag
, che deve essere installato su ogni pagina dell' sito web dell'inserzionista.L'elemento
event_snippet
, che deve essere posizionato nelle pagine web che indicano una azione di conversione, ad esempio una conferma di pagamento o una pagina di invio del lead.
Puoi recuperare queste due parti con ConversionActionService.
Il tag imposta cookie che memorizzano un identificatore univoco per un cliente o l'annuncio clic che ha portato il cliente sul sito. I cookie ricevono il clic sull'annuncio informazioni provenienti da un parametro dell'identificatore di clic di Google (GCLID) incluse nel tag di monitoraggio delle conversioni. Devi attivare il sito web dell'inserzionista e di monitoraggio dei lead per acquisire e memorizzare il GCLID, ossia l'ID univoco Google Ads fornisce ogni impressione di un annuncio Google.
Scopri di più sul tag globale e su dove installarlo
Il tag Google (gtag.js) è un framework di tagging e un'API che ti consente
inviare dati sugli eventi sia a Google Ads che a Google Analytics. Il tag globale del sito
funziona insieme a uno snippet evento o a uno snippet del numero di telefono per monitorare
conversioni. Aggiungi il tag Google alla sezione <head>
di ogni pagina
sul sito dell'inserzionista e configurarlo in modo che funzioni con Google Ads. Puoi quindi
Utilizzare i comandi gtag() per acquisire eventi e inviare dati a Google Ads.
Per capire come funziona, consulta
Utilizzare il tag globale del sito per il monitoraggio delle conversioni di Google Ads.
Con il tag Google puoi utilizzare i seguenti comandi:
config: inizializza un prodotto Google (Google Ads, Analytics e così via), configurare le impostazioni e prepararti a inviare dati a un account.
event: registra una conversione inviando un evento come purchase (consigliato) o aggiunta a un carrello degli acquisti (azioni di conversione secondarie). Ti consigliamo di consultare la Guida di riferimento agli eventi gtag.js.
set: consente di impostare parametri comuni a tutti gli eventi sulla pagina, ad esempio la valuta.
L'esempio seguente è uno snippet di codice JavaScript del tag globale del sito per inviare dati a Google Ads. Il valore segnaposto GOOGLE_CONVERSION_ID è un ID numerico univoco per un singolo account inserzionista.
<!-- Google Tag (gtag.js) - Google Ads: GOOGLE_CONVERSION_ID -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-GOOGLE_CONVERSION_ID">
</script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('set', 'developer_id.<developer ID>', true); // Replace with your Google tag Developer ID
gtag('config', 'AW-GOOGLE_CONVERSION_ID');
</script>
Lo snippet del tag Google deve apparire solo una volta per pagina. Se è già presente di gtag.js, devi aggiungere nuovi ID tag al tag esistente. Per inviare a più account, puoi aggiungere una chiamata al per ogni stai utilizzando, specificando l'ID conversione di ogni account, come mostrato nel seguente esempio:
<!-- Google Tag (gtag.js) - Google Ads: GOOGLE_CONVERSION_ID_1 -->
<script async src="https://www.googletagmanager.com/gtag/js?id=AW-GOOGLE_CONVERSION_ID_1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments)};
gtag('js', new Date());
gtag('config', 'AW-GOOGLE_CONVERSION_ID_1');
gtag('config', 'AW-GOOGLE_CONVERSION_ID_2');
</script>
Scopri di più sullo snippet evento e su dove installarlo
Affinché il monitoraggio delle conversioni di acquisto funzioni, lo snippet evento di acquisto deve essere installato nella pagina di conversione stessa. Di solito questo è l'ordine pagina di conferma. Può essere inserito in qualsiasi punto del codice, dopo il tag globale. snippet di codice. Gli snippet evento per le azioni di conversione secondarie (ad es. aggiungi al carrello) deve essere inserito nelle rispettive pagine.
Nello snippet di esempio riportato di seguito, AW-CONVERSION_ID e gTag_developer_ID che rappresenta l'ID conversione univoco per il tuo account Google Ads e il tuo Tag sviluppatore, mentre AW-CONVERSION_LABEL indica la conversione univoco per ogni azione di conversione:
<!-- Event snippet for a purchase conversion page -->
<script>
gtag('event', 'conversion', {
'send_to':'AW-CONVERSION_ID/CONVERSION_LABEL',
'developer_id.<gTag developer ID>': true,
'transaction_id': '<transaction_id (string)>' //unique ID for the transaction (e.g. an order ID); it's used for de-duplication purposes
'value': 1.0,
'currency': 'USD', //three-letter currency code, useful for advertisers who accept multiple currencies
'country': 'US',
'new_customer': false, //new customer acquisition goal
'tax': 1.24, //tax cost-US only
'shipping': 0.00, //shipping cost-US only
'delivery_postal_code': '94043', //shipping data validation-US only
'estimated_delivery_date': '2020-07-31', //shipping validation-US only
'aw_merchant_id': 12345, //shipping validation-US only
'aw_feed_country': 'US', //shipping validation-US only
'aw_feed_language': 'EN', //shipping validation-US only
'items': [
{
'id': 'P12345',
'name': 'Android Warhol T-Shirt',
'quantity': 2,
'price': 12.04,
'estimated_delivery_date': '2020-07-31', //shipping-US only
'google_business_vertical': 'retail'
}, …],
});
</script>
Sebbene alcuni parametri siano facoltativi, è consigliabile includere disponibili per ogni evento. Scopri di più su quali parametri per ogni tipo di evento.
I parametri forniscono informazioni aggiuntive sulle modalità di interazione degli utenti con il tuo sito web o la tua app.
Se vuoi misurare un evento di conversione basato su un clic (ad esempio su un pulsante o una risposta dinamica per un sito utilizzando AJAX), puoi anche utilizzare il seguente snippet:
<!-- Event snippet for test conversion click -->
In your html page, add the snippet and call gtag_report_conversion when someone clicks on the chosen link or button. -->
<script>
function gtag_report_conversion(url) {
var callback = function () {
if (typeof(url) != 'undefined') {
window.location = url;
}
};
gtag('event', 'conversion', {
'send_to': 'AW-CONVERSION_ID/CONVERSION_LABEL',
'value': 1.0,
'event_callback': callback,
//other parameters
});
return false;
}
</script>
Implementare l'API Consent (nota anche come modalità di consenso)
Il tag Google ha un'API Consent integrata per gestire il consenso degli utenti. È in grado di differenziare il consenso degli utenti per l'uso dei cookie per gli annunci da quello per l'analisi scopi.
Il risultato previsto è che i clienti ricevano almeno il gtag('consent', 'update' {...}) chiamata integrata senza alcuna azione richiesta da parte del cliente. Questa operazione dovrebbe Verificare che i tag Google (Google Ads, Floodlight, Google Analytics, Linker conversioni) possono leggere l'ultimo stato del consenso degli utenti e includerlo nella rete richieste a Google (tramite il parametro &gcs).
Ulteriori passaggi di implementazione prevedono l'implementazione o l'assistenza agli inserzionisti nel eseguendo il deployment (ad es. tramite una UI) dello stato gtag('consent', default' {...}) e sbloccando i tag Google (ad esempio, nessuna attivazione condizionale basata sul consenso) attivare la modalità di consenso in modo che sia sensibile al consenso.
Per i dettagli dell'implementazione, consulta Gestire le impostazioni relative al consenso (web).
Suggerimenti
Dall'account amministratore Google Ads,puoi monitorare le conversioni su tutti i tuoi account inserzionista utilizzando un singolo tag codice di conversione. Consulta sul monitoraggio delle conversioni su più account.
Il modo migliore per verificare se l'implementazione del monitoraggio delle conversioni è è quella di recarti presso uno dei tuoi commercianti siti web (o un sito web di test interno) ed effettuare un acquisto reale. Poi potrai osservare nello strumento Google Tag Assistant. per utilizzare questa guida alla risoluzione dei problemi. per verificare che Google Ads abbia visto il tuo tag e sta registrando conversioni. Per ulteriori informazioni sulla risoluzione dei problemi, consulta Risolvere i problemi di tagging a livello di sito.
Puoi integrare il tag di conversione precedente con le conversioni avanzate, che possono migliorare la precisione della misurazione delle conversioni per migliorare l'efficacia delle offerte. Scopri di più sulla configurazione delle conversioni avanzate. Prima di implementare le conversioni avanzate, devi assicurarti che i tuoi commercianti possano rispettare norme sui dati dei clienti per le conversioni avanzate in Google Ads.