Punteggio di ottimizzazione e consigli

Video: approfondimento

I consigli possono migliorare le tue campagne in diversi modi:

  • Introduci funzionalità nuove e pertinenti
  • Ottimizza il 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, quindi 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 a livello di 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 relativo peso 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:

  1. metrics.optimization_score_url fornisce un link diretto all'account per visualizzare le informazioni sui consigli correlati nell'interfaccia utente di Google Ads.
  2. metrics.optimization_score_uplift indica di quanto aumenterebbe il punteggio di ottimizzazione se venissero applicati tutti i consigli correlati. Si tratta di una stima basata su tutti i consigli disponibili nel loro complesso, non solo sulla somma dei punteggi di incremento per ogni consiglio.

Per raggruppare e ordinare i consigli restituiti, puoi segmentare entrambe queste metriche in base al tipo di consiglio utilizzando segments.recommendation_type nella query.

Tipi di suggerimento

Tipi di consigli completamente supportati

RecommendationType Descrizione
CAMPAIGN_BUDGET Correggere le campagne limitate dal budget
KEYWORD Aggiungi nuove parole chiave
TEXT_AD Aggiungi suggerimenti di annunci
TARGET_CPA_OPT_IN Fai offerte con il 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 Fare offerte con il 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 budget non utilizzati ai budget limitati
TARGET_ROAS_OPT_IN Fare offerte con il 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 Espandere la copertura con i partner di ricerca di Google
CUSTOM_AUDIENCE_OPT_IN Crea un segmento di pubblico personalizzato
IMPROVE_DEMAND_GEN_AD_STRENGTH Migliorare 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 Creare campagne Performance Max nel tuo account
IMPROVE_PERFORMANCE_MAX_AD_STRENGTH Migliorare 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 per il quale è previsto un aumento del traffico e cambia la strategia di offerta da Massimizza il valore di conversione a ROAS target
LEAD_FORM_ASSET 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 di un'età mancante
SHOPPING_ADD_COLOR Aggiungere un colore alle offerte retrocesse a causa di un colore mancante
SHOPPING_ADD_GENDER Aggiungere un genere alle offerte retrocesse a causa di un genere mancante
SHOPPING_ADD_GTIN Aggiungi un GTIN (Global Trade Item Number) alle offerte retrocesse a causa della mancanza di 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 Risolvere 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 ROAS target più basso
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 Impostare un CPA target per le campagne per le quali non è stato specificato alcun valore
SET_TARGET_ROAS Impostare un ROAS target per le campagne per le quali non è stato specificato alcun valore
REFRESH_CUSTOMER_MATCH_LIST Aggiornare un elenco clienti che non è stato aggiornato negli ultimi 90 giorni
IMPROVE_GOOGLE_TAG_COVERAGE Implementare il tag Google su più pagine
KEYWORD_MATCH_TYPE (deprecato) Deprecato. Utilizza USE_BROAD_MATCH_KEYWORD.

Guarda questo video per saperne di più

Gestire i tipi non supportati

Recuperare i consigli

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 consiglio, i dettagli vengono forniti in un campo specifico per i consigli. Ad esempio, i dettagli del consiglio CAMPAIGN_BUDGET sono nel campo campaign_budget_recommendation e sono racchiusi in un oggetto CampaignBudgetRecommendation.

Trova tutti i campi specifici per i consigli nel campo unione recommendation.

Impatto dei consigli

Alcuni tipi di consigli compilano il impact campo del consiglio. RecommendationImpact contiene una stima dell'impatto sull'account derivante dall'applicazione del consiglio. Nei campi impact.base_metrics e impact.potential_metrics sono disponibili le seguenti metriche dei consigli:

  • impressions

  • clicks

  • cost_micros

  • conversions

  • all_conversions

  • video_views

Esempio di codice

Il seguente codice di esempio recupera da un account tutti i consigli disponibili e ignorati di tipo KEYWORD 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 consigli 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

Video: applicare i consigli

Puoi applicare i 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 unione apply_parameters ApplyRecommendationOperation per applicare consigli 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 codice seguente mostra come creare il messaggio ApplyRecommendationOperation e come ignorare i 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};
}
      

Guarda questi video per saperne di più

Applicare i parametri

Collettivo

Errori

Test

Ignorare i consigli

Video: ignorare i consigli

Puoi ignorare i consigli con RecommendationService. La struttura del codice è simile all'applicazione dei consigli, 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 informazioni sugli abbonamenti ai consigli 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 su 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 consigli da generare e vari punti dati dipendenti dai tipi specificati. Consente di generare un elenco di oggetti Recommendation in base ai dati forniti. Se non sono disponibili dati sufficienti per generare un consiglio per il 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 consigli per i tipi di consigli 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) Sia per le campagne sulla rete di ricerca sia per quelle Performance Max, sono obbligatori i seguenti campi:
  • final_url
  • bidding_strategy_type
Solo per le campagne sulla rete di ricerca, sono obbligatori anche i seguenti campi:
  • country_code
  • language_code
  • positive_location_id o negative_location_id
  • ad_group_info.keywords
  • bidding_info.
    bidding_strategy_target_info.
    target_impression_share_info
    se la strategia di offerta è impostata su TARGET_IMPRESSION_SHARE
  • asset_group_info
  • budget_info
KEYWORD
  • seed_info
  • ad_group_info
MAXIMIZE_CLICKS_OPT_IN
  • conversion_tracking_status
  • bidding_info
MAXIMIZE_CONVERSIONS_OPT_IN
  • conversion_tracking_status
  • bidding_info
MAXIMIZE_CONVERSION_VALUE_OPT_IN
  • conversion_tracking_status
  • bidding_info
SET_TARGET_CPA
  • conversion_tracking_status
  • bidding_info
SET_TARGET_ROAS
  • conversion_tracking_status
  • bidding_info
SITELINK_ASSET
Nota: l'oggetto SitelinkAssetRecommendation visualizzato conterrà elenchi vuoti. Se la risposta GenerateRecommendations contiene un SitelinkAssetRecommendation, può essere considerata un indicatore per aggiungere almeno un asset sitelink alla campagna.
  • campaign_sitelink_count
TARGET_CPA_OPT_IN
  • conversion_tracking_status
  • bidding_info
TARGET_ROAS_OPT_IN
  • conversion_tracking_status
  • bidding_info

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 campagne e che tu voglia offrire loro suggerimenti durante questo flusso. 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:

  1. Un utente visita la tua applicazione per creare una campagna Performance Max.

  2. 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 seleziona TARGET_SPEND come strategia Smart Bidding.

  3. Invii un GenerateRecommendationsRequest che imposta i seguenti campi:

    • campaign_sitelink_count: impostato su 1, ovvero il numero di asset sitelink della campagna in corso di elaborazione.

    • bidding_info: imposta il campo bidding_strategy_type nidificato su TARGET_SPEND.

    • conversion_tracking_status: impostato su ConversionTrackingStatus di questo cliente. Per indicazioni su come recuperare questo campo, consulta la Guida introduttiva alla gestione delle conversioni.

    • recommendation_types: impostato su [SITELINK_ASSET, MAXIMIZE_CLICKS_OPT_IN].

    • advertising_channel_type: impostato su PERFORMANCE_MAX.

    • customer_id: impostato sull'ID del cliente che crea la campagna.

  4. Puoi utilizzare i consigli in GenerateRecommendationsResponse, in questo caso un SitelinkAssetRecommendation e un MaximizeClicksOptInRecommendation, 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.