Punteggio di ottimizzazione e consigli

Video: Approfondimento

I consigli possono migliorare le tue campagne in vari 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 il punteggio di ottimizzazione, puoi utilizzare RecommendationService per recuperare consigli e poi applicarli o ignorarli di conseguenza. A partire dalla versione 15 dell'API Google Ads, puoi anche iscriverti per applicare automaticamente consigli mediante RecommendationSubscriptionService.

Punteggio di ottimizzazione

Video: Punteggio di ottimizzazione

Il punteggio di ottimizzazione è un una stima del possibile rendimento del tuo account Google Ads e che è disponibile alla Customer e Campaign livelli.

La Customer.optimization_score_weight è disponibile solo per gli account diversi dall'account amministratore e viene utilizzato per calcolare il il punteggio di ottimizzazione di più account. Recupera il punteggio di ottimizzazione e la ponderazione del punteggio di ottimizzazione degli account e (Customer.optimization_score * Customer.optimization_score_weight) per calcolare il punteggio di ottimizzazione complessivo.

Sono disponibili metriche relative all'ottimizzazione per customer e campaign report:

  1. La metrics.optimization_score_url fornisce un link diretto all'account per visualizzare le informazioni sui relativi consigli nella UI di Google Ads.
  2. La metrics.optimization_score_uplift indica di quanto aumenterebbe il punteggio di ottimizzazione se tutti l'applicazione dei consigli. È una stima basata su tutti i valori consigli nel complesso, non solo la somma dei punteggi di incremento per un consiglio per le nuove soluzioni.

Per raggruppare e ordinare i consigli restituiti, puoi segmentare entrambi le metriche per tipo di consiglio utilizzando segments.recommendation_type nel tuo 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 Fai offerte con Massimizza le conversioni
MAXIMIZE_CONVERSION_VALUE_OPT_IN Fai offerte con Massimizza il valore di conversione
ENHANCED_CPC_OPT_IN Fai offerte con CPC ottimizzato
MAXIMIZE_CLICKS_OPT_IN Fai offerte con Massimizza i clic
OPTIMIZE_AD_ROTATION Utilizza 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 si prevede saranno limitate dal budget nel futuro
RESPONSIVE_SEARCH_AD Aggiungi nuovo annuncio adattabile della rete di ricerca
MARGINAL_ROI_CAMPAIGN_BUDGET Modifica il budget della campagna per aumentare il ROI
USE_BROAD_MATCH_KEYWORD Usa generica corrispondenza per le campagne basate sulle conversioni con offerte automatiche
RESPONSIVE_SEARCH_AD_ASSET Aggiungere asset degli 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 Espansione alla Rete Display
SEARCH_PARTNERS_OPT_IN Espandi la copertura con i partner di ricerca 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 a quelle esistenti Campagne Performance Max
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 Migliorare l'efficacia del gruppo di asset di una campagna Performance Max in un "Eccellente" valutazione
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 quando è troppo basso e ci sono poche o nessuna conversione
FORECASTING_SET_TARGET_ROAS Aumenta il budget prima di un evento stagionale che si prevede aumenterà il traffico e modificherà 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 che vengono retrocesse a causa di: età mancante
SHOPPING_ADD_COLOR Aggiungi un colore alle offerte che vengono retrocesse a causa di una mancanza colore
SHOPPING_ADD_GENDER Aggiungi un genere alle offerte retrocesse a causa di un valore mancante genere
SHOPPING_ADD_GTIN Aggiungere un GTIN (Global Trade Item Number) alle offerte che vengono retrocesse a causa di un GTIN mancante
SHOPPING_ADD_MORE_IDENTIFIERS Aggiungi altri identificatori alle offerte retrocesse a causa di elementi mancanti identificatori
SHOPPING_ADD_SIZE Aggiungi la dimensione alle offerte retrocesse a causa di una mancanza dimensioni
SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN Aggiungi prodotti per la pubblicazione di una campagna
SHOPPING_FIX_DISAPPROVED_PRODUCTS Correggi i prodotti non approvati
SHOPPING_TARGET_ALL_OFFERS Crea una campagna generica che abbia come target tutte le offerte
SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT Risolvi i problemi di sospensione degli 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 Attiva 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 ne viene specificato uno in anticipo di un evento stagionale che si prevede aumenti il traffico
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 Aggiornare un elenco di clienti che non è stato aggiornato negli ultimi 90 giorni
IMPROVE_GOOGLE_TAG_COVERAGE Implementa il tag Google su più pagine
CALLOUT_EXTENSION (deprecato) Deprecato, usa 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

Per ulteriori informazioni, guarda questo video

Gestire i tipi non supportati

Recupera i suggerimenti

Video: programmazione dal vivo

Come la maggior parte delle altre entità nell'API Google Ads, Recommendation vengono recuperati utilizzando GoogleAdsService.SearchStream con una query nel linguaggio di query di Google Ads.

Per ogni tipo di suggerimento, i dettagli vengono forniti in un specifico per il suggerimento. Ad esempio, CAMPAIGN_BUDGET consiglio sono disponibili nella sezione campaign_budget_recommendation e sono incluse in un CampaignBudgetRecommendation .

Puoi trovare tutti i campi specifici per i suggerimenti nella recommendation.

Impatto dei suggerimenti

Alcuni tipi di consigli completano impact del consiglio. RecommendationImpact contiene una stima dell'impatto sul rendimento dell'account in seguito a l'applicazione del consiglio. Le seguenti metriche dei consigli sono disponibile nei campi impact.base_metrics e impact.potential_metrics:

  • impressions

  • clicks

  • cost_micros

  • conversions

  • all_conversions (disponibile a partire dalla versione 16 dell'API Google Ads)

  • video_views

Esempio di codice

Il codice di esempio seguente 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.V17.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 ogni giorno o anche più volte al giorno. In questo caso, viene visualizzato L'elemento resource_name dell'oggetto può diventano obsoleti dopo il recupero del suggerimento.

È buona norma agire sui consigli poco dopo averli recuperati.

Applicare i consigli

Video: applicare i consigli

Puoi applicare i consigli attivi o ignorati con la ApplyRecommendation del metodo RecommendationService.

I tipi di consigli possono avere parametri obbligatori o facoltativi. Più alta I suggerimenti contengono valori consigliati che vengono utilizzati per impostazione predefinita.

L'impostazione degli account per l'applicazione automatica dei consigli non è supportati per tutti i tipi di consigli. Tuttavia, puoi implementare simili per i tipi di consigli completamente supportati dall'API Google Ads. Fai riferimento al codice DetectAndApplyRecommendations esempio per saperne di più.

Utilizza la apply_parameters campo di unione di ApplyRecommendationOperation per applicare i consigli con e determinati valori parametro. Ogni tipo di suggerimento adatto ha il proprio campo. Qualsiasi tipo di consiglio non elencato nel campo apply_parameters non utilizza questi valori parametro.

Esempio di codice

Il seguente codice mostra come creare ApplyRecommendationOperation e come eseguire l'override dei valori consigliati se vuoi sostituirli con personali.

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::V17::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::V17::Resources::Ad->new({
  #   id => "INSERT_AD_ID_AS_INTEGER_HERE"
  # });
  # my $text_ad_parameters =
  #   Google::Ads::GoogleAds::V17::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::V17::Services::RecommendationService::ApplyRecommendationOperation
    ->new({
      resourceName => $recommendation->{resourceName}});

  return $apply_recommendation_operation;
}
      

L'esempio successivo chiama ApplyRecommendation, l'invio delle operazioni di applicazione dei consigli create nella precedente le API nel tuo codice.

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.V17.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

Applica parametri

Collettivo

Errori

Test

Ignorare i consigli

Video: ignorare i consigli

Puoi ignorare i consigli con RecommendationService Il codice è simile all'applicazione dei consigli, ma utilizzi DismissRecommendationOperation: e RecommendationService.DismissRecommendation.

Per scoprire di più, guarda questi video

Collettivo

Errori

Test

Applicare automaticamente i consigli

A partire dalla versione 15 dell'API Google Ads, puoi utilizzare RecommendationSubscriptionService per applicare automaticamente consigli di un determinato tipo.

Per abbonarti a un determinato tipo di consiglio, crea un Oggetto RecommendationSubscription, imposta il campo type su uno dei il suggerimento supportato tipi e imposta status su ENABLED.

Tipi di suggerimenti supportati da abbonamenti

  • 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 le sottoscrizioni

Per ottenere informazioni sugli abbonamenti ai consigli di un account, esegui una query sulla recommendation_subscription.

Per visualizzare le modifiche applicate automaticamente, esegui una query su change_event, filtrando change_client_type a GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION.

Consigli per la creazione della campagna

A partire dalla versione 16 dell'API Google Ads, 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 canale pubblicitario che deve essere SEARCH o PERFORMANCE_MAX, un elenco dei tipi di suggerimenti da generare e i vari punti dati dipendenti dei tipi specificati. Restituisce un elenco di Recommendation oggetti in base a i dati che fornisci. Se non sono disponibili dati sufficienti per generare un suggerimento per i casi d'uso recommendation_types, o se la campagna è già nello stato consigliato, il set di risultati non contengono un consiglio per quel tipo. Assicurati che la tua applicazione gestisca caso in cui non vengano restituiti suggerimenti per il suggerimento richiesto di testo.

La tabella seguente descrive i tipi di consigli che GenerateRecommendations e i campi che devi specificare per ricevere consigli per quel tipo. Come best practice, invia Richiesta GenerateRecommendations dopo la raccolta di tutte le informazioni correlati ai tipi di consigli richiesti. Per ulteriori dettagli per i campi obbligatori e facoltativi, compresi quelli nidificati, consulta documentazione di riferimento.

RecommendationType Campi obbligatori Campi facoltativi
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: lo stato restituito SitelinkAssetRecommendation: conterrà elenchi vuoti. Se GenerateRecommendations risposta contiene un valore SitelinkAssetRecommendation, può essere considerati come un indicatore di 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 pubblica una campagna flusso di lavoro di costruzione agli utenti e vuoi offrire loro suggerimenti durante questo flusso. Puoi utilizzare GenerateRecommendationsRequest generare consigli on demand e integrare questi consigli nell'interfaccia utente per la creazione della campagna.

Il flusso di utilizzo potrebbe essere simile al seguente:

  1. Un utente accede alla tua applicazione per creare una campagna Performance Max.

  2. L'utente fornisce alcune informazioni iniziali come parte della campagna flusso di costruzione. Ad esempio, forniscono i dettagli per creare un SitelinkAsset e selezionano TARGET_SPEND come Smart Bidding strategia.

  3. Invii un GenerateRecommendationsRequest che imposta i seguenti campi:

    • campaign_sitelink_count: impostato su 1, ovvero il numero di asset sitelink in fase di sviluppo campagna.

    • bidding_info: imposta il campo bidding_strategy_type nidificato su TARGET_SPEND.

    • conversion_tracking_status: impostata su ConversionTrackingStatus di questo cliente. Per indicazioni su come recuperare questo campo, visita la Come iniziare guida alla gestione delle conversioni.

    • recommendation_types: impostata su [SITELINK_ASSET, MAXIMIZE_CLICKS_OPT_IN].

    • advertising_channel_type: impostata su PERFORMANCE_MAX.

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

  4. Puoi seguire i consigli nella GenerateRecommendationsResponse - in questo caso SitelinkAssetRecommendation e un MaximizeClicksOptInRecommendation e suggeriscili all'utente mostrandoli nella tua campagna Google Cloud. Se l'utente accetta un suggerimento, puoi incorporarlo nella richiesta di creazione della campagna una volta che l'utente ha completato il flusso di creazione della campagna.