I consigli possono migliorare le tue campagne in diversi modi:
- Presenta funzionalità nuove e pertinenti
- Ottieni di più dal budget con offerte, parole chiave e annunci migliorati
- Aumentare il rendimento e l'efficienza complessivi delle campagne
Per aumentare i punteggi di ottimizzazione, puoi utilizzare RecommendationService
per recuperare i consigli e applicarli o ignorarli di conseguenza. Puoi anche scegliere di applicare automaticamente i consigli utilizzando RecommendationSubscriptionService
.
Punteggio di ottimizzazione
Video: punteggio di ottimizzazione
Il punteggio di ottimizzazione è una
stima del livello di efficacia del rendimento del tuo account Google Ads ed è disponibile
ai livelli Customer
e
Campaign
.
Customer.optimization_score_weight
è disponibile solo per gli account diversi dall'account amministratore e viene utilizzato per calcolare il punteggio di ottimizzazione complessivo di più account. Recupera il punteggio di ottimizzazione e il peso del punteggio di ottimizzazione degli account e moltiplicali tra loro (Customer.optimization_score * Customer.optimization_score_weight
) per calcolare il punteggio di ottimizzazione complessivo.
Per i report customer
e campaign
sono disponibili le seguenti metriche relative all'ottimizzazione:
metrics.optimization_score_url
fornisce un link diretto all'account per visualizzare le informazioni sui consigli correlati nell'interfaccia utente di Google Ads.metrics.optimization_score_uplift
indica di quanto aumenterebbe il punteggio di ottimizzazione se venissero applicati tutti i consigli correlati. È una stima basata su tutti i consigli disponibili nel complesso, non solo sulla somma dei punteggi di incremento per ciascun consiglio.
Per raggruppare e ordinare i suggerimenti restituiti, puoi segmentare entrambe queste
metriche per tipo di suggerimento utilizzando segments.recommendation_type
nella
query.
Tipi di suggerimento
Tipi di consigli completamente supportati
RecommendationType | Descrizione |
---|---|
CAMPAIGN_BUDGET |
Correggi le campagne limitate dal budget |
KEYWORD |
Aggiungi nuove parole chiave |
TEXT_AD |
Aggiungi suggerimenti di annunci |
TARGET_CPA_OPT_IN |
Fai offerte con CPA target |
MAXIMIZE_CONVERSIONS_OPT_IN |
Fare offerte con Massimizza le conversioni |
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
Fare offerte con Massimizza il valore di conversione |
ENHANCED_CPC_OPT_IN |
Fai offerte con CPC ottimizzato |
MAXIMIZE_CLICKS_OPT_IN |
Fare offerte con Massimizza i clic |
OPTIMIZE_AD_ROTATION |
Utilizzare le rotazioni degli annunci ottimizzate |
MOVE_UNUSED_BUDGET |
Trasferisci i dati non utilizzati ai budget vincolati |
TARGET_ROAS_OPT_IN |
Fai offerte con ROAS target |
FORECASTING_CAMPAIGN_BUDGET |
Correggi le campagne che dovrebbero essere limitate dal budget in futuro |
RESPONSIVE_SEARCH_AD |
Aggiungere un nuovo annuncio adattabile della rete di ricerca |
MARGINAL_ROI_CAMPAIGN_BUDGET |
Modificare il budget della campagna per aumentare il ROI |
USE_BROAD_MATCH_KEYWORD |
Utilizza la corrispondenza generica per le campagne basate sulle conversioni con le offerte automatiche |
RESPONSIVE_SEARCH_AD_ASSET |
Aggiungere asset per gli annunci adattabili della rete di ricerca a un annuncio |
RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH |
Migliorare l'efficacia di un annuncio adattabile della rete di ricerca |
DISPLAY_EXPANSION_OPT_IN |
Aggiornare una campagna per utilizzare l'espansione del display |
SEARCH_PARTNERS_OPT_IN |
Espandi la copertura con i partner di ricerca di Google |
CUSTOM_AUDIENCE_OPT_IN |
Crea un segmento di pubblico personalizzato |
IMPROVE_DISCOVERY_AD_STRENGTH |
Migliora l'efficacia degli annunci nelle campagne Demand Gen |
UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX |
Eseguire l'upgrade di una campagna Shopping intelligente a una campagna Performance Max |
UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX |
Eseguire l'upgrade di una campagna locale precedente a una campagna Performance Max |
SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX |
Esegui la migrazione delle offerte scelte come target dalle campagne Shopping standard alle campagne Performance Max esistenti |
MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX |
Eseguire la migrazione degli annunci dinamici della rete di ricerca alle campagne Performance Max |
PERFORMANCE_MAX_OPT_IN |
Crea campagne Performance Max nel tuo account |
IMPROVE_PERFORMANCE_MAX_AD_STRENGTH |
Migliora l'efficacia del gruppo di asset di una campagna Performance Max fino a una valutazione "Eccellente" |
PERFORMANCE_MAX_FINAL_URL_OPT_IN |
Attivare l'espansione dell'URL finale per le campagne Performance Max |
RAISE_TARGET_CPA_BID_TOO_LOW |
Aumenta il CPA target se è troppo basso e le conversioni sono molto poche o assenti |
FORECASTING_SET_TARGET_ROAS |
Aumenta il budget prima di un evento stagionale che si prevede aumenti il traffico e modifica la strategia di offerta da Massimizza il valore di conversione a ROAS target |
LEAD_FORM |
Aggiungere asset modulo per i lead a una campagna |
CALLOUT_ASSET |
Aggiungere asset callout a livello di campagna o cliente |
SITELINK_ASSET |
Aggiungere asset sitelink a livello di campagna o cliente |
CALL_ASSET |
Aggiungere asset di chiamata a livello di campagna o cliente |
SHOPPING_ADD_AGE_GROUP |
Aggiungi l'attributo età alle offerte retrocesse a causa dell'assenza di età |
SHOPPING_ADD_COLOR |
Aggiungere un colore alle offerte retrocesse a causa di un colore mancante |
SHOPPING_ADD_GENDER |
Aggiungere un genere alle offerte che sono retrocesse a causa di un genere mancante |
SHOPPING_ADD_GTIN |
Aggiungi un GTIN (Global Trade Item Number) alle offerte che vengono retrocesse perché manca un GTIN |
SHOPPING_ADD_MORE_IDENTIFIERS |
Aggiungi altri identificatori alle offerte retrocesse a causa di identificatori mancanti |
SHOPPING_ADD_SIZE |
Aggiungi la taglia alle offerte retrocesse a causa di una taglia mancante |
SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN |
Aggiungere prodotti da pubblicare in una campagna |
SHOPPING_FIX_DISAPPROVED_PRODUCTS |
Correggi i prodotti non approvati |
SHOPPING_TARGET_ALL_OFFERS |
Creare una campagna generica che abbia come target tutte le offerte |
SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT |
Risolvere i problemi relativi alla sospensione dell'account Merchant Center |
SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING |
Risolvi i problemi relativi agli avvisi di sospensione dell'account Merchant Center |
DYNAMIC_IMAGE_EXTENSION_OPT_IN |
Attivare le estensioni immagine dinamiche nell'account |
RAISE_TARGET_CPA |
Aumenta il CPA target |
LOWER_TARGET_ROAS |
Diminuzione del ROAS target |
FORECASTING_SET_TARGET_CPA |
Imposta un CPA target per le campagne per le quali non è stato specificato un valore, in advance of a seasonal event that is forecasted to increase traffic |
SET_TARGET_CPA |
Imposta un CPA target per le campagne per le quali non è specificato |
SET_TARGET_ROAS |
Imposta un ROAS target per le campagne per le quali non è stato specificato |
REFRESH_CUSTOMER_MATCH_LIST |
Aggiorna un elenco di clienti che non è stato aggiornato negli ultimi 90 giorni |
IMPROVE_GOOGLE_TAG_COVERAGE |
Implementare il tag Google su più pagine |
CALLOUT_EXTENSION (deprecato) |
Deprecato. Utilizza CALLOUT_ASSET . |
SITELINK_EXTENSION (deprecato) |
Deprecato, usa SITELINK_ASSET |
CALL_EXTENSION (deprecato) |
Deprecato, usa CALL_ASSET |
KEYWORD_MATCH_TYPE (deprecato) |
Deprecato, usa USE_BROAD_MATCH_KEYWORD |
Guarda questo video per saperne di più
Gestire i tipi non supportati
Recupera i suggerimenti
Video: programmazione in tempo reale
Come la maggior parte delle altre entità nell'API Google Ads, gli oggetti Recommendation
vengono recuperati utilizzando GoogleAdsService.SearchStream
con una query in linguaggio di query di Google Ads.
Per ogni tipo di suggerimento, i dettagli vengono forniti in un
campo specifico del consiglio. Ad esempio, i dettagli dei suggerimenti CAMPAIGN_BUDGET
si trovano nel campo campaign_budget_recommendation
e sono aggregati in un oggetto CampaignBudgetRecommendation
.
Trova tutti i campi specifici per i suggerimenti nel campo dell'unione recommendation
.
Impatto dei suggerimenti
Alcuni tipi di consigli compilano il
impact
campo del consiglio.
RecommendationImpact
contiene una stima dell'impatto sul rendimento dell'account come risultato
dell'applicazione del consiglio. Le seguenti
metriche dei suggerimenti sono
disponibili nei campi impact.base_metrics
e impact.potential_metrics
:
impressions
clicks
cost_micros
conversions
all_conversions
video_views
Esempio di codice
Il seguente codice campione recupera tutti i suggerimenti disponibili e ignorati di tipo KEYWORD
da un account e stampa alcuni dei relativi dettagli:
Java
try (GoogleAdsServiceClient googleAdsServiceClient = googleAdsClient.getLatestVersion().createGoogleAdsServiceClient(); RecommendationServiceClient recommendationServiceClient = googleAdsClient.getLatestVersion().createRecommendationServiceClient()) { // Creates a query that retrieves keyword recommendations. String query = "SELECT recommendation.resource_name, " + " recommendation.campaign, " + " recommendation.keyword_recommendation " + "FROM recommendation " + "WHERE recommendation.type = KEYWORD"; // Constructs the SearchGoogleAdsStreamRequest. SearchGoogleAdsStreamRequest request = SearchGoogleAdsStreamRequest.newBuilder() .setCustomerId(Long.toString(customerId)) .setQuery(query) .build(); // Issues the search stream request to detect keyword recommendations that exist for the // customer account. ServerStream<SearchGoogleAdsStreamResponse> stream = googleAdsServiceClient.searchStreamCallable().call(request); // Creates apply operations for all the recommendations found. List<ApplyRecommendationOperation> applyRecommendationOperations = new ArrayList<>(); for (SearchGoogleAdsStreamResponse response : stream) { for (GoogleAdsRow googleAdsRow : response.getResultsList()) { Recommendation recommendation = googleAdsRow.getRecommendation(); System.out.printf( "Keyword recommendation '%s' was found for campaign '%s'%n", recommendation.getResourceName(), recommendation.getCampaign()); KeywordInfo keyword = recommendation.getKeywordRecommendation().getKeyword(); System.out.printf("\tKeyword = '%s'%n", keyword.getText()); System.out.printf("\tMatch type = '%s'%n", keyword.getMatchType()); // Creates an ApplyRecommendationOperation that will apply this recommendation, and adds // it to the list of operations. applyRecommendationOperations.add(buildRecommendationOperation(recommendation)); } }
C#
// Get the GoogleAdsServiceClient. GoogleAdsServiceClient googleAdsService = client.GetService( Services.V18.GoogleAdsService); // Creates a query that retrieves keyword recommendations. string query = "SELECT recommendation.resource_name, " + "recommendation.campaign, recommendation.keyword_recommendation " + "FROM recommendation WHERE " + $"recommendation.type = KEYWORD"; List<ApplyRecommendationOperation> operations = new List<ApplyRecommendationOperation>(); try { // Issue a search request. googleAdsService.SearchStream(customerId.ToString(), query, delegate (SearchGoogleAdsStreamResponse resp) { Console.WriteLine($"Found {resp.Results.Count} recommendations."); foreach (GoogleAdsRow googleAdsRow in resp.Results) { Recommendation recommendation = googleAdsRow.Recommendation; Console.WriteLine("Keyword recommendation " + $"{recommendation.ResourceName} was found for campaign " + $"{recommendation.Campaign}."); if (recommendation.KeywordRecommendation != null) { KeywordInfo keyword = recommendation.KeywordRecommendation.Keyword; Console.WriteLine($"Keyword = {keyword.Text}, type = " + "{keyword.MatchType}"); } operations.Add( BuildApplyRecommendationOperation(recommendation.ResourceName) ); } } ); } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; }
PHP
$googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); // Creates a query that retrieves keyword recommendations. $query = 'SELECT recommendation.resource_name, recommendation.campaign, ' . 'recommendation.keyword_recommendation ' . 'FROM recommendation ' . 'WHERE recommendation.type = KEYWORD '; // Issues a search request to detect keyword recommendations that exist for the // customer account. $response = $googleAdsServiceClient->search(SearchGoogleAdsRequest::build($customerId, $query)); $operations = []; // Iterates over all rows in all pages and prints the requested field values for // the recommendation in each row. foreach ($response->iterateAllElements() as $googleAdsRow) { /** @var GoogleAdsRow $googleAdsRow */ $recommendation = $googleAdsRow->getRecommendation(); printf( "Keyword recommendation with resource name '%s' was found for campaign " . "with resource name '%s':%s", $recommendation->getResourceName(), $recommendation->getCampaign(), PHP_EOL ); if (!is_null($recommendation->getKeywordRecommendation())) { $keyword = $recommendation->getKeywordRecommendation()->getKeyword(); printf( "\tKeyword = '%s'%s\ttype = '%s'%s", $keyword->getText(), PHP_EOL, KeywordMatchType::name($keyword->getMatchType()), PHP_EOL ); } // Creates an ApplyRecommendationOperation that will be used to apply this // recommendation, and adds it to the list of operations. $operations[] = self::buildRecommendationOperation($recommendation->getResourceName()); }
Python
googleads_service = client.get_service("GoogleAdsService") query = f""" SELECT recommendation.campaign, recommendation.keyword_recommendation FROM recommendation WHERE recommendation.type = KEYWORD""" # Detects keyword recommendations that exist for the customer account. response = googleads_service.search(customer_id=customer_id, query=query) operations = [] for row in response.results: recommendation = row.recommendation print( f"Keyword recommendation ('{recommendation.resource_name}') " f"was found for campaign '{recommendation.campaign}." ) keyword = recommendation.keyword_recommendation.keyword print( f"\tKeyword = '{keyword.text}'\n" f"\tType = '{keyword.match_type}'" ) # Create an ApplyRecommendationOperation that will be used to apply # this recommendation, and add it to the list of operations. operations.append( build_recommendation_operation(client, recommendation.resource_name) )
Ruby
query = <<~QUERY SELECT recommendation.resource_name, recommendation.campaign, recommendation.keyword_recommendation FROM recommendation WHERE recommendation.type = KEYWORD QUERY google_ads_service = client.service.google_ads response = google_ads_service.search( customer_id: customer_id, query: query, ) operations = response.each do |row| recommendation = row.recommendation puts "Keyword recommendation ('#{recommendation.resource_name}') was found for "\ "campaign '#{recommendation.campaign}'." if recommendation.keyword_recommendation keyword = recommendation.keyword_recommendation.keyword puts "\tKeyword = '#{keyword.text}'" puts "\ttype = '#{keyword.match_type}'" end build_recommendation_operation(client, recommendation.resource_name) end
Perl
# Create the search query. my $search_query = "SELECT recommendation.resource_name, " . "recommendation.campaign, recommendation.keyword_recommendation " . "FROM recommendation " . "WHERE recommendation.type = KEYWORD"; # Get the GoogleAdsService. my $google_ads_service = $api_client->GoogleAdsService(); my $search_stream_handler = Google::Ads::GoogleAds::Utils::SearchStreamHandler->new({ service => $google_ads_service, request => { customerId => $customer_id, query => $search_query }}); # Create apply operations for all the recommendations found. my $apply_recommendation_operations = (); $search_stream_handler->process_contents( sub { my $google_ads_row = shift; my $recommendation = $google_ads_row->{recommendation}; printf "Keyword recommendation '%s' was found for campaign '%s'.\n", $recommendation->{resourceName}, $recommendation->{campaign}; my $keyword = $recommendation->{keywordRecommendation}{keyword}; printf "\tKeyword = '%s'\n", $keyword->{text}; printf "\tMatch type = '%s'\n", $keyword->{matchType}; # Creates an ApplyRecommendationOperation that will apply this recommendation, and adds # it to the list of operations. push @$apply_recommendation_operations, build_recommendation_operation($recommendation); });
Intervieni
Qualsiasi consiglio recuperato può essere applicato o ignorato.
A seconda del tipo, i suggerimenti possono cambiare su base giornaliera o anche più volte al giorno. In questo caso, resource_name
di un oggetto consiglio può diventare obsoleto dopo il recupero del consiglio.
È buona norma intervenire in base ai consigli poco dopo il recupero.
Applicare i consigli
Puoi applicare consigli attivi o ignorati con il metodo
ApplyRecommendation
del
RecommendationService
.
I tipi di consigli possono avere parametri obbligatori o facoltativi. La maggior parte delle raccomandazioni è dotata di valori consigliati che vengono utilizzati per impostazione predefinita.
L'impostazione degli account per l'applicazione automatica dei consigli non è supportata per tutti i tipi di consiglio. Tuttavia, puoi implementare un comportamento simile per i tipi di consigli completamente supportati dall'API Google Ads.
Per scoprire di più, consulta l'esempio di codice DetectAndApplyRecommendations
.
Utilizza il campo di unione apply_parameters
di ApplyRecommendationOperation
per applicare i suggerimenti con valori parametro specifici. Ogni tipo di consiglio adatto ha il proprio campo.
Qualsiasi tipo di consiglio non elencato nel campo apply_parameters
non utilizza questi valori di parametro.
Esempio di codice
Il seguente codice mostra come creare la ApplyRecommendationOperation
e come eseguire l'override dei valori consigliati se vuoi sostituirli con i tuoi.
Java
/** Creates and returns an ApplyRecommendationOperation to apply the given recommendation. */ private ApplyRecommendationOperation buildRecommendationOperation(Recommendation recommendation) { // If you have a recommendation ID instead of a resource name, you can create a resource name // like this: // String resourceName = ResourceNames.recommendation(customerId, recommendationId); // Creates a builder to construct the operation. Builder operationBuilder = ApplyRecommendationOperation.newBuilder(); // Each recommendation type has optional parameters to override the recommended values. Below is // an example showing how to override a recommended ad when a TextAdRecommendation is applied. // operationBuilder.getTextAdBuilder().getAdBuilder().setResourceName("INSERT_AD_RESOURCE_NAME"); // Sets the operation's resource name to the resource name of the recommendation to apply. operationBuilder.setResourceName(recommendation.getResourceName()); return operationBuilder.build(); }
C#
private ApplyRecommendationOperation BuildApplyRecommendationOperation( string recommendationResourceName ) { // If you have a recommendation_id instead of the resource_name you can create a // resource name from it like this: // string recommendationResourceName = // ResourceNames.Recommendation(customerId, recommendationId) // Each recommendation type has optional parameters to override the recommended values. // This is an example to override a recommended ad when a TextAdRecommendation is // applied. // For details, please read // https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation. /* Ad overridingAd = new Ad() { Id = "INSERT_AD_ID_AS_LONG_HERE" }; applyRecommendationOperation.TextAd = new TextAdParameters() { Ad = overridingAd }; */ ApplyRecommendationOperation applyRecommendationOperation = new ApplyRecommendationOperation() { ResourceName = recommendationResourceName }; return applyRecommendationOperation; }
PHP
private static function buildRecommendationOperation( string $recommendationResourceName ): ApplyRecommendationOperation { // If you have a recommendation_id instead of the resource name, you can create a resource // name from it like this: /* $recommendationResourceName = ResourceNames::forRecommendation($customerId, $recommendationId); */ // Each recommendation type has optional parameters to override the recommended values. // This is an example to override a recommended ad when a TextAdRecommendation is applied. // For details, please read // https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation. /* $overridingAd = new Ad([ 'id' => 'INSERT_AD_ID_AS_INTEGER_HERE' ]); $applyRecommendationOperation->setTextAd(new TextAdParameters(['ad' => $overridingAd])); */ // Issues a mutate request to apply the recommendation. $applyRecommendationOperation = new ApplyRecommendationOperation(); $applyRecommendationOperation->setResourceName($recommendationResourceName); return $applyRecommendationOperation; }
Python
def build_recommendation_operation(client, recommendation): """Creates a ApplyRecommendationOperation to apply the given recommendation. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. recommendation: a resource name for the recommendation to be applied. """ # If you have a recommendation ID instead of a resource name, you can create # a resource name like this: # # googleads_service = client.get_service("GoogleAdsService") # resource_name = googleads_service.recommendation_path( # customer_id, recommendation.id # ) operation = client.get_type("ApplyRecommendationOperation") # Each recommendation type has optional parameters to override the # recommended values. Below is an example showing how to override a # recommended ad when a TextAdRecommendation is applied. # # operation.text_ad.ad.resource_name = "INSERT_AD_RESOURCE_NAME" # # For more details, see: # https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation#apply_parameters operation.resource_name = recommendation return operation
Ruby
def build_recommendation_operation(client, recommendation) # If you have a recommendation_id instead of the resource_name # you can create a resource name from it like this: # recommendation_resource = # client.path.recommendation(customer_id, recommendation_id) operations = client.operation.apply_recommendation operations.resource_name = recommendation_resource # Each recommendation type has optional parameters to override the recommended # values. This is an example to override a recommended ad when a # TextAdRecommendation is applied. # # text_ad_parameters = client.resource.text_ad_parameters do |tap| # tap.ad = client.resource.ad do |ad| # ad.id = "INSERT_AD_ID_AS_INTEGER_HERE" # end # end # operation.text_ad = text_ad_parameters # # For more details, see: # https://developers.google.com/google-ads/api/reference/rpc/latest/ApplyRecommendationOperation#apply_parameters return operation end
Perl
sub build_recommendation_operation { my ($recommendation) = @_; # If you have a recommendation ID instead of a resource name, you can create a resource # name like this: # my $recommendation_resource_name = # Google::Ads::GoogleAds::V18::Utils::ResourceNames::recommendation( # $customer_id, $recommendation_id); # Each recommendation type has optional parameters to override the recommended values. # Below is an example showing how to override a recommended ad when a TextAdRecommendation # is applied. # my $overriding_ad = Google::Ads::GoogleAds::V18::Resources::Ad->new({ # id => "INSERT_AD_ID_AS_INTEGER_HERE" # }); # my $text_ad_parameters = # Google::Ads::GoogleAds::V18::Services::RecommendationService::TextAdParameters # ->new({ad => $overriding_ad}); # $apply_recommendation_operation->{textAd} = $text_ad_parameters; # Create an apply recommendation operation. my $apply_recommendation_operation = Google::Ads::GoogleAds::V18::Services::RecommendationService::ApplyRecommendationOperation ->new({ resourceName => $recommendation->{resourceName}}); return $apply_recommendation_operation; }
L'esempio seguente chiama ApplyRecommendation
inviando le operazioni di applicazione dei consigli create nel codice precedente.
Java
// Issues a mutate request to apply the recommendations. ApplyRecommendationResponse applyRecommendationsResponse = recommendationServiceClient.applyRecommendation( Long.toString(customerId), applyRecommendationOperations); for (ApplyRecommendationResult applyRecommendationResult : applyRecommendationsResponse.getResultsList()) { System.out.printf( "Applied recommendation with resource name: '%s'.%n", applyRecommendationResult.getResourceName()); }
C#
private void ApplyRecommendation(GoogleAdsClient client, long customerId, List<ApplyRecommendationOperation> operations) { // Get the RecommendationServiceClient. RecommendationServiceClient recommendationService = client.GetService( Services.V18.RecommendationService); ApplyRecommendationRequest applyRecommendationRequest = new ApplyRecommendationRequest() { CustomerId = customerId.ToString(), }; applyRecommendationRequest.Operations.AddRange(operations); ApplyRecommendationResponse response = recommendationService.ApplyRecommendation(applyRecommendationRequest); foreach (ApplyRecommendationResult result in response.Results) { Console.WriteLine("Applied a recommendation with resource name: " + result.ResourceName); } }
PHP
private static function applyRecommendations( GoogleAdsClient $googleAdsClient, int $customerId, array $operations ): void { // Issues a mutate request to apply the recommendations. $recommendationServiceClient = $googleAdsClient->getRecommendationServiceClient(); $response = $recommendationServiceClient->applyRecommendation( ApplyRecommendationRequest::build($customerId, $operations) ); foreach ($response->getResults() as $appliedRecommendation) { /** @var Recommendation $appliedRecommendation */ printf( "Applied a recommendation with resource name: '%s'.%s", $appliedRecommendation->getResourceName(), PHP_EOL ); } }
Python
def apply_recommendations(client, customer_id, operations): """Applies a batch of recommendations. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. operations: a list of ApplyRecommendationOperation messages. """ # Issues a mutate request to apply the recommendations. recommendation_service = client.get_service("RecommendationService") response = recommendation_service.apply_recommendation( customer_id=customer_id, operations=operations ) for result in response.results: print( "Applied a recommendation with resource name: " f"'{result[0].resource_name}'." )
Ruby
def apply_recommendations(client, customer_id, operations) # Issues a mutate request to apply the recommendation. recommendation_service = client.service.recommendation response = recommendation_service.apply_recommendation( customer_id: customer_id, operations: [operations], ) response.results.each do |applied_recommendation| puts "Applied recommendation with resource name: '#{applied_recommendation.resource_name}'." end end
Perl
# Issue a mutate request to apply the recommendations. my $apply_recommendation_response = $api_client->RecommendationService()->apply({ customerId => $customer_id, operations => $apply_recommendation_operations }); foreach my $result (@{$apply_recommendation_response->{results}}) { printf "Applied recommendation with resource name: '%s'.\n", $result->{resourceName}; }
Per scoprire di più, guarda questi video
Applicare i parametri
Collettivo
Errori
Test
Ignorare i consigli
Puoi ignorare i consigli con la
RecommendationService
. La struttura del codice è simile all'applicazione dei suggerimenti, ma utilizzi DismissRecommendationOperation
e RecommendationService.DismissRecommendation
.
Guarda questi video per saperne di più
Collettivo
Errori
Test
Applicare automaticamente i consigli
Puoi utilizzare il pulsante RecommendationSubscriptionService
per applicare automaticamente i consigli di un tipo specifico.
Per iscriverti a un determinato tipo di consiglio, crea un oggetto
RecommendationSubscription
, imposta il campo type
su uno dei
tipi di consigli supportati e imposta il campo
status
su ENABLED
.
Tipi di consigli supportati dall'abbonamento
ENHANCED_CPC_OPT_IN
KEYWORD
KEYWORD_MATCH_TYPE
LOWER_TARGET_ROAS
MAXIMIZE_CLICKS_OPT_IN
OPTIMIZE_AD_ROTATION
RAISE_TARGET_CPA
RESPONSIVE_SEARCH_AD
RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH
SEARCH_PARTNERS_OPT_IN
SEARCH_PLUS_OPT_IN
SET_TARGET_CPA
SET_TARGET_ROAS
TARGET_CPA_OPT_IN
TARGET_ROAS_OPT_IN
USE_BROAD_MATCH_KEYWORD
Recuperare gli abbonamenti
Per ottenere informazioni sulle sottoscrizioni ai suggerimenti di un account, esegui una query sulla risorsa recommendation_subscription
.
Per visualizzare le modifiche applicate automaticamente, esegui una query sulla risorsa change_event
, filtrando change_event.client_type
in GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION
.
Consigli per la creazione delle campagne
Puoi utilizzare
RecommendationService.GenerateRecommendationsRequest
per generare consigli durante la creazione della campagna, per un determinato insieme di
tipi di consigli.
GenerateRecommendations
accetta come input un ID cliente, un tipo di canale pubblicitario
che deve essere
SEARCH
o
PERFORMANCE_MAX
,
un elenco di tipi di suggerimenti da generare e vari punti dati dipendenti dai
tipi specificati. Restituisce un elenco di Recommendation
oggetti in base ai dati che fornisci. Se non sono disponibili dati sufficienti per generare un suggerimento per l'elemento recommendation_types
richiesto o se la campagna è già nello stato consigliato, il set di risultati non conterrà un consiglio per quel tipo. Assicurati che la tua applicazione gestisca il caso in cui non vengano restituiti suggerimenti per i tipi di suggerimenti richiesti.
La tabella seguente descrive i tipi di consigli supportati da GenerateRecommendations
e i campi che devi fornire per ricevere consigli di quel tipo. Come best practice, invia la richiestaGenerateRecommendations
dopo aver raccolto tutte le informazioni relative ai tipi di consigli richiesti. Per ulteriori dettagli sui campi obbligatori e facoltativi, inclusi i campi nidificati, consulta la documentazione di riferimento.
RecommendationType | Campi obbligatori | Campi facoltativi |
---|---|---|
CAMPAIGN_BUDGET (a partire dalla versione 18) |
Per le campagne sulla rete di ricerca e Performance Max, i seguenti campi sono obbligatori:
|
|
KEYWORD |
|
|
MAXIMIZE_CLICKS_OPT_IN |
|
|
MAXIMIZE_CONVERSIONS_OPT_IN |
|
|
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
|
|
SET_TARGET_CPA |
|
|
SET_TARGET_ROAS |
|
|
SITELINK_ASSET
Nota: l'oggetto SitelinkAssetRecommendation
restituito conterrà elenchi vuoti. Se la risposta GenerateRecommendations
contiene un SitelinkAssetRecommendation , può essere
considerata un indicatore per aggiungere almeno un asset sitelink alla campagna. |
|
|
TARGET_CPA_OPT_IN |
|
|
TARGET_ROAS_OPT_IN |
|
Esempio di flusso di utilizzo
Supponiamo che la tua azienda sia un'agenzia pubblicitaria che fornisce agli utenti un flusso di lavoro per la creazione di una campagna e che tu voglia offrire loro suggerimenti durante questa procedura. Puoi utilizzare
GenerateRecommendationsRequest
per generare consigli on demand e incorporarli
nell'interfaccia utente per la creazione della campagna.
Il flusso di utilizzo potrebbe essere il seguente:
Un utente visita la tua applicazione per creare una campagna Performance Max.
L'utente fornisce alcune informazioni iniziali nell'ambito del flusso di creazione della campagna. Ad esempio, fornisce i dettagli per creare un singolo
SitelinkAsset
e selezionaTARGET_SPEND
come strategia Smart Bidding.Invii un
GenerateRecommendationsRequest
che imposta i seguenti campi:campaign_sitelink_count
: impostato su1
, ovvero il numero di asset sitelink della campagna in corso di elaborazione.bidding_info
: imposta il campobidding_strategy_type
nidificato suTARGET_SPEND
.conversion_tracking_status
: impostato sul valoreConversionTrackingStatus
di questo cliente. Per indicazioni su come recuperare questo campo, consulta la Guida introduttiva alla gestione delle conversioni.recommendation_types
: impostata su[SITELINK_ASSET, MAXIMIZE_CLICKS_OPT_IN]
.advertising_channel_type
: impostato suPERFORMANCE_MAX
.customer_id
: impostato sull'ID del cliente che ha creato la campagna.
Puoi utilizzare i consigli in
GenerateRecommendationsResponse
, in questo caso unSitelinkAssetRecommendation
e unMaximizeClicksOptInRecommendation
, e suggerirli all'utente mostrandoli nell'interfaccia di creazione della campagna. Se l'utente accetta un suggerimento, puoi incorporarlo nella richiesta di creazione della campagna una volta completato il flusso di creazione della campagna.