Rekomendacje mogą pomóc swoje kampanie możesz tworzyć na kilka sposobów:
- Wprowadzaj nowe i przydatne funkcje.
- Lepsze wykorzystanie budżetu dzięki lepszym stawkom, słowom kluczowym i reklamom
- Zwiększanie ogólnej skuteczności i skuteczności kampanii
Aby poprawić wyniki optymalizacji, możesz skorzystać z
RecommendationService
do pobrania
a potem stosować je lub odrzucać. Od wersji 15
interfejsu Google Ads API, możesz też zasubskrybować opcję stosowania automatycznego
rekomendacje, korzystając z RecommendationSubscriptionService
.
Wynik optymalizacji
Wynik optymalizacji to
prognoz skuteczności i dostępności konta Google Ads.
w: Customer
oraz
Campaign
poziomy.
Customer.optimization_score_weight
jest dostępna tylko na kontach innych niż konto menedżera i służy do obliczania
wyniku optymalizacji wielu kont. Pobierz wynik optymalizacji i
wagi wyniku optymalizacji kont i pomnożyć je przez siebie
(Customer.optimization_score * Customer.optimization_score_weight
) do obliczenia
ogólny wynik optymalizacji.
Dane związane z optymalizacją są dostępne dla tych typów: customer
i campaign
raportów:
-
metrics.optimization_score_url
udostępnia precyzyjny link do konta, aby wyświetlić informacje na temat powiązanych rekomendacje w interfejsie Google Ads. -
metrics.optimization_score_uplift
informuje, o ile zwiększyłby się wynik optymalizacji, gdyby wszystkie powiązane stosowane są rekomendacje. To oszacowanie oparte na wszystkich dostępnych danych podsumowuje się do wszystkich rekomendacji, a nie tylko sumy wyników wzrostu dla poszczególnych zalecenie.
Aby pogrupować i uporządkować zwrócone rekomendacje, możesz podzielić je na segmenty
według typu rekomendacji, używając opcji segments.recommendation_type
na swoim koncie
zapytania.
Typy rekomendacji
W pełni obsługiwane typy rekomendacji
RecommendationType | Opis |
---|---|
CAMPAIGN_BUDGET |
Popraw kampanie ograniczone z powodu budżetu |
KEYWORD |
Dodaj nowe słowa kluczowe |
TEXT_AD |
Dodaj propozycje reklam |
TARGET_CPA_OPT_IN |
Ustalaj stawki z użyciem docelowego CPA |
MAXIMIZE_CONVERSIONS_OPT_IN |
Ustalanie stawek pod kątem maksymalizacji liczby konwersji |
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
Ustalanie stawek ze strategią Maksymalizacja wartości konwersji |
ENHANCED_CPC_OPT_IN |
Ustalaj stawki z użyciem Ulepszonego CPC |
MAXIMIZE_CLICKS_OPT_IN |
Ustalaj stawki, korzystając ze strategii Maksymalizacja liczby kliknięć |
OPTIMIZE_AD_ROTATION |
Użyj zoptymalizowanych rotacji reklam |
MOVE_UNUSED_BUDGET |
Przenieś niewykorzystane środki do ograniczonych budżetów |
TARGET_ROAS_OPT_IN |
Ustalaj stawki z użyciem docelowego ROAS |
FORECASTING_CAMPAIGN_BUDGET |
Napraw kampanie, które prawdopodobnie zostaną ograniczone z powodu budżetu w przyszłe |
RESPONSIVE_SEARCH_AD |
Dodaj nową elastyczną reklamę w wyszukiwarce |
MARGINAL_ROI_CAMPAIGN_BUDGET |
Dostosuj budżet kampanii, aby zwiększyć ROI |
USE_BROAD_MATCH_KEYWORD |
Użyj przybliżonego w przypadku kampanii opartych na konwersjach z automatycznym określaniem stawek. |
RESPONSIVE_SEARCH_AD_ASSET |
Dodawanie komponentów elastycznych reklam w wyszukiwarce do reklamy |
RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH |
Zwiększanie skuteczności elastycznej reklamy w wyszukiwarce |
DISPLAY_EXPANSION_OPT_IN |
Jak zaktualizować kampanię, aby korzystać z rozszerzenia na sieć reklamową |
SEARCH_PARTNERS_OPT_IN |
Docieraj do nowych odbiorców dzięki partnerom w sieci wyszukiwania Google |
CUSTOM_AUDIENCE_OPT_IN |
Utwórz niestandardową listę odbiorców |
IMPROVE_DISCOVERY_AD_STRENGTH |
Zwiększanie skuteczności reklam w kampaniach generujących popyt |
UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX |
Przekształcanie inteligentnej kampanii produktowej w kampanię Performance Max |
UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX |
Przekształcanie starszej kampanii lokalnej w kampanię Performance Max |
SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX |
Przenieś oferty, na które kierowane są zwykłe kampanie produktowe, do dotychczasowych Kampanie Performance Max |
MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX |
Przenoszenie dynamicznych reklam w wyszukiwarce do kampanii Performance Max |
PERFORMANCE_MAX_OPT_IN |
Tworzenie kampanii Performance Max na koncie |
IMPROVE_PERFORMANCE_MAX_AD_STRENGTH |
Zwiększ skuteczność grupy plików w kampanii Performance Max do „Świetna” ocena |
PERFORMANCE_MAX_FINAL_URL_OPT_IN |
Włącz rozwinięcie końcowego adresu URL w kampaniach Performance Max |
RAISE_TARGET_CPA_BID_TOO_LOW |
Podnieś docelowy CPA, jeśli jest on zbyt niski i istnieje bardzo mało konwersji lub brak ich |
FORECASTING_SET_TARGET_ROAS |
Zwiększ budżet przed wydarzeniem sezonowym prognozowanego zwiększenia ruchu, a także zmiany strategii ustalania stawek. ze strategii Maksymalizacja wartości konwersji do strategii Docelowy ROAS |
LEAD_FORM |
Dodawanie komponentów z formularzem kontaktowym do kampanii |
CALLOUT_ASSET |
Dodawanie komponentów z objaśnieniami na poziomie kampanii lub klienta |
SITELINK_ASSET |
Dodawanie komponentów z linkami do podstron na poziomie kampanii lub klienta |
CALL_ASSET |
Dodawanie komponentów do wykonywania połączeń na poziomie kampanii lub klienta |
SHOPPING_ADD_AGE_GROUP |
Dodaj atrybut grupa wiekowa do ofert, które są przesuwane w dół ze względu na brak grupy wiekowej |
SHOPPING_ADD_COLOR |
Dodaj kolor do ofert, które są przesuwane w dół z powodu brakującego elementu kolor |
SHOPPING_ADD_GENDER |
Dodaj płeć do ofert, które są obniżone z powodu braku płeć |
SHOPPING_ADD_GTIN |
Dodawanie numeru GTIN (globalnego numeru jednostki handlowej) do ofert, które są przesuwane w dół z powodu braku numeru GTIN |
SHOPPING_ADD_MORE_IDENTIFIERS |
Dodaj więcej identyfikatorów do ofert, które są przesuwane w dół z powodu brakujących identyfikatory |
SHOPPING_ADD_SIZE |
Dodaj rozmiar do ofert, które są przesuwane w dół z powodu braku rozmiar |
SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN |
Dodaj produkty do kampanii, która ma wyświetlać reklamy |
SHOPPING_FIX_DISAPPROVED_PRODUCTS |
Popraw odrzucone produkty |
SHOPPING_TARGET_ALL_OFFERS |
Utwórz kampanię zbiorczą kierowaną na wszystkie oferty |
SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT |
Rozwiązywanie problemów z zawieszeniem konta Merchant Center |
SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING |
Rozwiązywanie problemów związanych z ostrzeżeniem o zawieszeniu konta Merchant Center |
DYNAMIC_IMAGE_EXTENSION_OPT_IN |
Włącz dynamiczne rozszerzenia graficzne na koncie |
RAISE_TARGET_CPA |
Podnieś docelowy CPA |
LOWER_TARGET_ROAS |
Niższy docelowy ROAS |
FORECASTING_SET_TARGET_CPA |
Ustaw docelowy CPA w kampaniach, które nie mają określonego docelowego CPA, w przed wydarzeniem sezonowym, które według prognoz może zwiększyć ruch |
SET_TARGET_CPA |
Ustaw docelowy CPA dla kampanii, które nie mają określonego docelowego CPA |
SET_TARGET_ROAS |
Ustaw docelowy ROAS dla kampanii, które nie mają określonego docelowego ROAS |
REFRESH_CUSTOMER_MATCH_LIST |
Zaktualizowanie listy klientów, która nie była aktualizowana od ostatnich 90 razy dni |
IMPROVE_GOOGLE_TAG_COVERAGE |
Wdróż tag Google na większej liczbie stron |
CALLOUT_EXTENSION (wycofano) |
Wycofano, zamiast niego użyj atrybutu CALLOUT_ASSET |
SITELINK_EXTENSION (wycofano) |
Wycofano, zamiast niego użyj atrybutu SITELINK_ASSET |
CALL_EXTENSION (wycofano) |
Wycofano, zamiast niego użyj atrybutu CALL_ASSET |
KEYWORD_MATCH_TYPE (wycofano) |
Wycofano, zamiast niego użyj atrybutu USE_BROAD_MATCH_KEYWORD |
Aby dowiedzieć się więcej, obejrzyj ten film
Obsługa nieobsługiwanych typów
Pobieranie rekomendacji
Podobnie jak większość innych elementów w interfejsie Google Ads API, Recommendation
można pobrać za pomocą
GoogleAdsService.SearchStream
za pomocą zapytania w języku Google Ads Query Language.
Szczegóły każdego typu rekomendacji są podane w
konkretnego rekomendacji. Na przykład: CAMPAIGN_BUDGET
rekomendacja
szczegóły znajdziesz w
campaign_budget_recommendation
.
i są umieszczone w
CampaignBudgetRecommendation
obiektu.
Wszystkie pola związane z rekomendacjami znajdziesz w
recommendation
Union.
Wpływ rekomendacji
Niektóre typy rekomendacji wypełniają pole
impact
rekomendacji.
RecommendationImpact
zawiera szacowany wpływ na skuteczność konta dzięki
przez zastosowanie rekomendacji. Poniżej
dane rekomendacji są
dostępne w polach impact.base_metrics
i impact.potential_metrics
:
impressions
clicks
cost_micros
conversions
all_conversions
(dostępny od wersji 16 interfejsu Google Ads API)video_views
Przykładowy kod
Ten przykładowy kod pobiera wszystkie dostępne i odrzucone rekomendacje
typu KEYWORD
z konta i drukuje niektóre z nich:
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); });
Podejmij działanie
Każdą pobraną rekomendację można zastosować lub odrzucić.
W zależności od typu rekomendacji mogą się one zmieniać codziennie
lub nawet kilka razy dziennie. W takim przypadku wyświetlane jest rekomendacje
resource_name
obiektu może
staje się przestarzałe po pobraniu rekomendacji.
Zalecamy podejmowanie działań w związku z rekomendacjami wkrótce po ich pobraniu.
Zastosuj rekomendacje
Wideo: stosowanie rekomendacji
Aktywne lub odrzucone rekomendacje możesz stosować za pomocą
ApplyRecommendation
funkcji
RecommendationService
Typy rekomendacji mogą mieć parametry obowiązkowe lub opcjonalne. Większość rekomendacje mają zalecane wartości, które są używane domyślnie.
Ustawienie na kontach automatycznego stosowania rekomendacji nie jest
obsługiwane w przypadku wszystkich typów rekomendacji. Możesz jednak zastosować podobne
w przypadku typów rekomendacji, które są w pełni obsługiwane przez interfejs Google Ads API.
Zapoznaj się z kodem DetectAndApplyRecommendations
przykład.
Użyj
apply_parameters
pole sumowania ApplyRecommendationOperation
, aby zastosować rekomendacje z
określonych wartości parametrów. Każdy odpowiedni typ rekomendacji ma własne pole.
Żaden typ rekomendacji niewymieniony w polu apply_parameters
nie używa
tych wartości parametrów.
Przykładowy kod
Ten kod pokazuje, jak utworzyć
ApplyRecommendationOperation
i
jak zastąpić zalecane wartości, jeśli chcesz je zastąpić
własnych.
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; }
Następny przykład wywołuje
ApplyRecommendation
wysyła operacje stosowania rekomendacji utworzone w poprzednim
w kodzie.
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}; }
Aby dowiedzieć się więcej, obejrzyj te filmy
Zastosuj parametry
Zbiorczy
Błędy
Testy
Odrzucanie rekomendacji
Wideo: odrzucanie rekomendacji
Aby odrzucić rekomendacje, użyj
RecommendationService
Kod
jest podobna do stosowania rekomendacji, ale zamiast tego
DismissRecommendationOperation
.
oraz
RecommendationService.DismissRecommendation
Aby dowiedzieć się więcej, obejrzyj te filmy
Zbiorczy
Błędy
Testy
Włącz automatyczne stosowanie rekomendacji
Począwszy od wersji 15 interfejsu Google Ads API możesz używać interfejsu
RecommendationSubscriptionService
aby automatycznie stosować rekomendacje określonego typu.
Aby zasubskrybować konkretny typ rekomendacji, utwórz
RecommendationSubscription
obiekt,
ustaw pole type
na jedną z
obsługiwana rekomendacja
typy oraz ustaw parametr
status
do ENABLED
.
Typy rekomendacji dostępne w ramach subskrypcji
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
Pobieranie subskrypcji
Aby uzyskać informacje o subskrypcjach rekomendacji na koncie, wyślij zapytanie do
recommendation_subscription
.
Aby wyświetlić zmiany, które zostały zastosowane automatycznie, wyślij zapytanie do
change_event
, filtrując
change_client_type
do
GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION
Rekomendacje podczas tworzenia kampanii
Począwszy od wersji 16 interfejsu Google Ads API możesz używać
RecommendationService.GenerateRecommendationsRequest
aby podczas tworzenia kampanii generować
rekomendacje dla danego zestawu
typów rekomendacji.
GenerateRecommendations
akceptuje jako identyfikator klienta, kanał reklamowy
który musi być:
SEARCH
.
lub
PERFORMANCE_MAX
,
listę typów rekomendacji do wygenerowania i różne punkty danych zależnie od tego,
określonych typów. Zwraca listę Recommendation
obiektów na podstawie
podane przez Ciebie dane. Jeśli nie ma wystarczającej ilości danych do wygenerowania rekomendacji
dla żądanego
recommendation_types
lub jeśli kampania ma już zalecany stan, zestaw wyników
zawierają rekomendację dotyczącą tego typu treści. Upewnij się, że aplikacja obsługuje
w przypadku, gdy dla żądanej rekomendacji nie zostaną zwrócone żadne rekomendacje
.
W tabeli poniżej opisano typy rekomendacji, które
GenerateRecommendations
, a pola, które musisz wypełnić, aby otrzymywać
i zalecenia dotyczące tego typu reklam. Zalecamy przesłanie
Żądanie GenerateRecommendations
po zebraniu wszystkich informacji
powiązane z żądanymi typami rekomendacji. Więcej informacji:
wymagane i opcjonalne pola, w tym pola zagnieżdżone, zapoznaj się z
dokumentacji referencyjnej.
RecommendationType | Pola wymagane | Pola opcjonalne |
---|---|---|
KEYWORD |
|
|
MAXIMIZE_CLICKS_OPT_IN |
|
|
MAXIMIZE_CONVERSIONS_OPT_IN |
|
|
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
|
|
SET_TARGET_CPA |
|
|
SET_TARGET_ROAS |
|
|
SITELINK_ASSET
Uwaga: zwrócone SitelinkAssetRecommendation .
będzie miał puste listy. Jeśli GenerateRecommendations
odpowiedź zawiera SitelinkAssetRecommendation , może być
jest traktowany jako sygnał, że trzeba dodać do kampanii co najmniej 1 komponent z linkami do podstron. |
|
|
TARGET_CPA_OPT_IN |
|
|
TARGET_ROAS_OPT_IN |
|
Przykładowy przepływ wykorzystania
Załóżmy, że Twoja firma to agencja reklamowa, która prowadzi kampanię
podczas tworzenia aplikacji. Chcesz też zaproponować użytkownikom
podczas tego procesu. Za pomocą
GenerateRecommendationsRequest
aby generować rekomendacje na żądanie i je stosować
do interfejsu tworzenia kampanii.
Przepływ użytkowników może wyglądać tak:
Użytkownik otwiera aplikację, aby utworzyć kampanię Performance Max.
Użytkownik podaje pewne informacje wstępne w ramach kampanii proces budowy. Zawierają na przykład szczegółowe informacje, które pozwalają utworzyć
SitelinkAsset
. Następnie wybierająTARGET_SPEND
jako inteligentne określanie stawek strategii ustalania stawek.Wysyłasz pole
GenerateRecommendationsRequest
, które ustawia te pola:campaign_sitelink_count
: ustawiono na1
, czyli liczbę komponentów z linkami do podstron w tworzonym działaniu kampanii.bidding_info
: ustaw zagnieżdżone polebidding_strategy_type
naTARGET_SPEND
.conversion_tracking_status
: ustaw wartość naConversionTrackingStatus
. tego klienta. Aby dowiedzieć się, jak odzyskać to pole, otwórz Pierwsze kroki .recommendation_types
: ustaw wartość[SITELINK_ASSET, MAXIMIZE_CLICKS_OPT_IN]
.advertising_channel_type
: ustaw wartośćPERFORMANCE_MAX
.customer_id
: ustaw identyfikator klienta tworzącego kampanię.
Skorzystaj z rekomendacji na stronie
GenerateRecommendationsResponse
– w tym przypadkuSitelinkAssetRecommendation
iMaximizeClicksOptInRecommendation
– i zaprezentować je użytkownikom, wyświetlając je w kampanii interfejsu konstrukcyjnego. Jeśli użytkownik zaakceptuje sugestię, możesz uwzględnić je w żądaniu utworzenia kampanii, gdy użytkownik zakończy proces tworzenia kampanii.