추천은 캠페인을 만들 수 있습니다.
- 새롭고 관련성 높은 기능 소개
- 개선된 입찰가, 키워드, 광고로 예산 대비 효과를 극대화하세요.
- 캠페인의 전반적인 실적과 효율성을 높일 수 있습니다.
최적화 점수를 높이려면
가져올 RecommendationService
그에 따라 추천을 적용하거나 무시할 수 있습니다. v15부터
자동 적용
RecommendationSubscriptionService
를 사용하여 추천을 제공합니다.
최적화 점수
최적화 점수는
Google Ads 계정이 얼마나 좋은 실적을 낼 수 있을지를 추정한 수치
Customer
및
Campaign
등급
이
Customer.optimization_score_weight
드림
비관리자 계정에서만 사용할 수 있으며 전체
여러 계정의 최적화 점수 최적화 점수를 가져옵니다.
계정의 최적화 점수 가중치와 곱셈
(Customer.optimization_score * Customer.optimization_score_weight
) 계산
전반적인 최적화 점수
customer
및 campaign
에 사용할 수 있는 최적화 관련 측정항목이 있습니다.
보고서:
- 이
metrics.optimization_score_url
드림 관련 정보를 볼 수 있도록 계정으로 연결되는 딥 링크를 제공합니다. Google Ads UI에서 추천을 확인할 수 있습니다 - 이
metrics.optimization_score_uplift
드림 관련된 모든 관련 요청이 있을 경우 최적화 점수가 얼마나 높아질지 추천이 적용됩니다. 사용 가능한 모든 인벤토리를 기반으로 한 추정치입니다 각 추천의 상승 폭 합계가 아닌 전반적인 추천을 확인할 수 있습니다 추천을 제공합니다
반환된 추천을 그룹화하고 정렬하려면 두 추천을 모두 분류할 수 있습니다.
segments.recommendation_type
을(를) 사용하여 추천 유형별 측정항목
쿼리합니다.
추천 유형
완전히 지원되는 추천 유형
RecommendationType | 설명 |
---|---|
CAMPAIGN_BUDGET |
예산 제약이 있는 캠페인 수정 |
KEYWORD |
새 키워드 추가 |
TEXT_AD |
광고 제안 추가 |
TARGET_CPA_OPT_IN |
타겟 CPA로 입찰 |
MAXIMIZE_CONVERSIONS_OPT_IN |
전환수 최대화 입찰 |
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
전환 가치 극대화 입찰 |
ENHANCED_CPC_OPT_IN |
향상된 CPC 입찰기능을 사용하여 입찰 |
MAXIMIZE_CLICKS_OPT_IN |
클릭수 최대화 입찰 |
OPTIMIZE_AD_ROTATION |
최적화된 광고 로테이션 사용 |
MOVE_UNUSED_BUDGET |
사용하지 않는 항목을 제한된 예산으로 옮기기 |
TARGET_ROAS_OPT_IN |
타겟 광고 투자수익(ROAS)으로 입찰 |
FORECASTING_CAMPAIGN_BUDGET |
다음에서 예산 제약이 발생할 것으로 예상되는 캠페인을 수정합니다. 향후 |
RESPONSIVE_SEARCH_AD |
새 반응형 검색 광고 추가 |
MARGINAL_ROI_CAMPAIGN_BUDGET |
캠페인 예산을 조정하여 ROI 늘리기 |
USE_BROAD_MATCH_KEYWORD |
확장 사용 일치 타겟팅(자동 입찰을 사용하는 전환 기반 캠페인) |
RESPONSIVE_SEARCH_AD_ASSET |
광고에 반응형 검색 광고 확장 소재 추가 |
RESPONSIVE_SEARCH_AD_IMPROVE_AD_STRENGTH |
반응형 검색 광고의 효력 개선 |
DISPLAY_EXPANSION_OPT_IN |
디스플레이 네트워크 추가를 사용하도록 캠페인 업데이트 |
SEARCH_PARTNERS_OPT_IN |
Google 검색 파트너로 도달범위 확대 |
CUSTOM_AUDIENCE_OPT_IN |
맞춤 잠재고객 만들기 |
IMPROVE_DISCOVERY_AD_STRENGTH |
디맨드젠 캠페인의 광고 효력 개선 |
UPGRADE_SMART_SHOPPING_CAMPAIGN_TO_PERFORMANCE_MAX |
스마트 쇼핑 캠페인을 실적 최대화 캠페인으로 업그레이드 |
UPGRADE_LOCAL_CAMPAIGN_TO_PERFORMANCE_MAX |
기존 지역 캠페인을 실적 최대화 캠페인으로 업그레이드 |
SHOPPING_MIGRATE_REGULAR_SHOPPING_CAMPAIGN_OFFERS_TO_PERFORMANCE_MAX |
일반 쇼핑 캠페인에서 타겟팅하는 항목을 기존 항목으로 이전합니다. 실적 최대화 캠페인 |
MIGRATE_DYNAMIC_SEARCH_ADS_CAMPAIGN_TO_PERFORMANCE_MAX |
동적 검색 광고를 실적 최대화 캠페인으로 이전하기 |
PERFORMANCE_MAX_OPT_IN |
계정에서 실적 최대화 캠페인 만들기 |
IMPROVE_PERFORMANCE_MAX_AD_STRENGTH |
실적 최대화 캠페인의 애셋 그룹 효력을 '매우 좋음' 평점 |
PERFORMANCE_MAX_FINAL_URL_OPT_IN |
실적 최대화 캠페인에 최종 URL 확장 사용 설정하기 |
RAISE_TARGET_CPA_BID_TOO_LOW |
타겟 CPA가 너무 낮고 타겟 CPA가 전환수가 매우 적거나 아예 없음 |
FORECASTING_SET_TARGET_ROAS |
시즌 이벤트에 앞서 예산 증액 트래픽을 늘리고 입찰 전략을 변경할 것으로 예측되는 전환 가치 극대화에서 타겟 ROAS까지 |
LEAD_FORM |
캠페인에 리드 양식 확장 소재 추가 |
CALLOUT_ASSET |
캠페인 또는 고객 수준에 콜아웃 확장 소재 추가 |
SITELINK_ASSET |
캠페인 또는 고객 수준에 사이트링크 확장 소재 추가 |
CALL_ASSET |
캠페인 또는 고객 수준에 전화번호 확장 소재 추가 |
SHOPPING_ADD_AGE_GROUP |
다음과 같은 이유로 순위가 내려진 상품에 연령대 속성을 추가하세요. 연령대 누락 |
SHOPPING_ADD_COLOR |
누락으로 인해 순위가 내려진 상품에 색상을 추가하세요. 색상 |
SHOPPING_ADD_GENDER |
누락으로 인해 순위가 내려진 제품에 성별을 추가하세요. 성별 |
SHOPPING_ADD_GTIN |
순위가 내려진 상품에 GTIN (국제거래단품식별코드)을 추가하세요. GTIN 누락 |
SHOPPING_ADD_MORE_IDENTIFIERS |
누락으로 인해 순위가 내려진 상품에 식별자를 더 추가하세요. 식별자 |
SHOPPING_ADD_SIZE |
누락된 정보로 인해 순위가 내려진 제품에 크기를 추가하세요. 크기 |
SHOPPING_ADD_PRODUCTS_TO_CAMPAIGN |
게재할 캠페인의 제품 추가 |
SHOPPING_FIX_DISAPPROVED_PRODUCTS |
비승인된 제품 수정 |
SHOPPING_TARGET_ALL_OFFERS |
모든 혜택을 타겟팅하는 포괄적인 캠페인을 만듭니다. |
SHOPPING_FIX_SUSPENDED_MERCHANT_CENTER_ACCOUNT |
판매자 센터 계정 정지 문제 해결 |
SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING |
판매자 센터 계정 정지 경고 문제 해결 |
DYNAMIC_IMAGE_EXTENSION_OPT_IN |
계정에서 동적 이미지 광고 확장 사용 설정 |
RAISE_TARGET_CPA |
타겟 CPA 증액 |
LOWER_TARGET_ROAS |
타겟 광고 투자수익(ROAS) 감소 |
FORECASTING_SET_TARGET_CPA |
타겟 CPA가 지정되지 않은 캠페인의 경우 트래픽 증가가 예상되는 시즌 이벤트를 앞두고 |
SET_TARGET_CPA |
타겟 CPA가 지정되지 않은 캠페인의 경우 타겟 CPA를 설정하세요. |
SET_TARGET_ROAS |
지정된 타겟이 없는 캠페인의 경우 타겟 광고 투자수익(ROAS)을 설정하세요. |
REFRESH_CUSTOMER_MATCH_LIST |
지난 90일 동안 업데이트되지 않은 고객 목록 업데이트 일 |
IMPROVE_GOOGLE_TAG_COVERAGE |
더 많은 페이지에 Google 태그 배포 |
CALLOUT_EXTENSION (지원 중단됨) |
지원 중단되었습니다. 대신 CALLOUT_ASSET 를 사용하세요. |
SITELINK_EXTENSION (지원 중단됨) |
지원 중단되었습니다. 대신 SITELINK_ASSET 를 사용하세요. |
CALL_EXTENSION (지원 중단됨) |
지원 중단되었습니다. 대신 CALL_ASSET 를 사용하세요. |
KEYWORD_MATCH_TYPE (지원 중단됨) |
지원 중단되었습니다. 대신 USE_BROAD_MATCH_KEYWORD 를 사용하세요. |
이 동영상에서 자세히 알아보기
지원되지 않는 유형 처리
추천 가져오기
Google Ads API의 다른 대부분의 항목과 마찬가지로 Recommendation
객체는
GoogleAdsService.SearchStream
쿼리를 실행합니다.
각 추천 유형에 대한 세부정보는
추천별 필드에서 확인할 수 있습니다. 예: CAMPAIGN_BUDGET
추천
자세한 내용은
campaign_budget_recommendation
필드로 래핑되고
CampaignBudgetRecommendation
객체를 지정합니다.
다음에서 모든 추천 관련 필드를 찾아보세요.
recommendation
공용체 필드입니다.
추천의 영향
일부 추천 유형은
권장사항의 impact
필드입니다.
RecommendationImpact
드림
최근 30일의 기간으로 인해 발생한 계정 실적에 대한
가상 머신을 실행하는 것입니다 다음
추천 측정항목은
impact.base_metrics
및 impact.potential_metrics
필드에서 사용할 수 있습니다.
impressions
clicks
cost_micros
conversions
all_conversions
(Google Ads API v16부터 사용 가능)video_views
코드 예
다음 샘플 코드는 사용 가능한 추천과 닫은 추천을 모두 검색합니다.
계정에서 KEYWORD
유형의 데이터를 가져와서 세부정보를 출력합니다.
자바
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); });
조치 취하기
가져온 추천은 적용하거나 닫을 수 있습니다.
추천 유형에 따라 추천은 매일 변경될 수 있음
하루에 여러 번
추적할 수 있습니다 이 경우 권장사항은
객체의 resource_name
가
추천을 가져온 후에는 더 이상 사용되지 않습니다.
추천을 가져온 직후에 조치를 취하는 것이 좋습니다.
권장사항 적용
활성 또는 닫은 추천을 적용할 수 있습니다.
ApplyRecommendation
드림
메서드의
RecommendationService
추천 유형에는 필수 또는 선택적 매개변수가 있을 수 있습니다. 대부분 추천에는 기본적으로 사용되는 권장값이 함께 제공됩니다.
계정에 추천 자동 적용을 설정하는 것은 그렇지 않습니다.
모든 추천 유형에 지원됩니다 그러나 비슷한
Google Ads API에서 완전히 지원하는 추천 유형의 동작
DetectAndApplyRecommendations
코드 참조
예를 참고하세요.
사용
apply_parameters
드림
ApplyRecommendationOperation
의 union 필드로 추천 적용
확인할 수 있습니다. 적합한 추천 유형마다 자체 필드가 있습니다.
apply_parameters
필드에 나열되지 않은 추천 유형은
이 매개변수 값에 적용됩니다.
코드 예
다음 코드는
ApplyRecommendationOperation
및
권장 값을 재정의하는 방법을
있습니다.
자바
/** 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; }
다음 예는
ApplyRecommendation
님,
앞에서 만든 권장사항 적용 작업을
있습니다.
자바
// 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}; }
다음 동영상에서 자세히 알아보기
매개변수 적용
대량
오류
테스트
추천 삭제하기
RecommendationService
코드
추천 적용과 유사하지만 대신
DismissRecommendationOperation
및
RecommendationService.DismissRecommendation
다음 동영상에서 자세히 알아보기
대량
오류
테스트
추천 자동 적용
Google Ads API v15부터
RecommendationSubscriptionService
드림
특정 유형의 추천을 자동으로 적용합니다.
특정 추천 유형을 구독하려면
RecommendationSubscription
객체
type
필드를
지원되는 권장사항
유형을 사용하고
ENABLED
에 status
입력란을 추가합니다.
구독 지원 추천 유형
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
구독 가져오기
계정의 추천 구독에 대한 정보를 가져오려면 다음을 쿼리하세요.
recommendation_subscription
리소스
자동으로 적용된 변경사항을 보려면 다음을 쿼리하세요.
change_event
리소스,
change_client_type
도착
GOOGLE_ADS_RECOMMENDATIONS_SUBSCRIPTION
캠페인 구성 시 추천
Google Ads API v16부터는
RecommendationService.GenerateRecommendationsRequest
드림
캠페인을 구성하는 동안 특정 조합에 대한 추천을 생성할 수 있습니다.
추천 유형
GenerateRecommendations
는 고객 ID(광고 채널)를 입력으로 받아들입니다.
유형(예:
SEARCH
또는
PERFORMANCE_MAX
,
생성할 추천 유형 목록 및 이에 따른 다양한 데이터 포인트
지정할 수 있습니다. 다음을 기반으로 Recommendation
객체의 목록을 출력합니다.
데이터를 수집하는 데 사용됩니다. 추천을 생성하기에 충분한 데이터가 없는 경우
요청된
recommendation_types
님,
캠페인이 이미 권장 상태에 있는 경우에는 결과 집합이
해당 유형에 대한 권장사항이 포함됩니다. 애플리케이션이
요청된 추천에 대해 추천이 반환되지 않는 경우
있습니다.
다음 표에서는 특정 작업을 수행하는 데 도움이 되는
GenerateRecommendations
에서 지원하는 필드 및
맞춤 추천을 제공합니다. 일반적으로
모든 정보가 수집된 후 GenerateRecommendations
요청
요청된 추천 유형과 관련된
정보가 표시됩니다 이 기능에 대한 자세한 내용은
필수 및 선택 입력란에 대한 자세한 내용은
참조 문서를 확인하세요.
RecommendationType | 필수 입력란 | 선택적 필드 |
---|---|---|
KEYWORD |
|
|
MAXIMIZE_CLICKS_OPT_IN |
|
|
MAXIMIZE_CONVERSIONS_OPT_IN |
|
|
MAXIMIZE_CONVERSION_VALUE_OPT_IN |
|
|
SET_TARGET_CPA |
|
|
SET_TARGET_ROAS |
|
|
SITELINK_ASSET
참고: 반환된 SitelinkAssetRecommendation
객체에 빈 목록이 포함됩니다. GenerateRecommendations
응답에 SitelinkAssetRecommendation 가 포함되어 있으면
캠페인에 사이트링크 확장 소재를 1개 이상 추가하라는 신호로 간주됩니다. |
|
|
TARGET_CPA_OPT_IN |
|
|
TARGET_ROAS_OPT_IN |
|
사용 흐름의 예
캠페인이 캠페인을 제공하는 광고 대행사라고 가정해 보겠습니다.
사용자에게 제안하고 싶은 경우
이 흐름에서 벗어나지 않게 될 것입니다. 이때
GenerateRecommendationsRequest
드림
필요에 따라 추천을 생성하고 이러한 추천을 통합합니다.
캠페인 생성 사용자 인터페이스에
추가할 수 있습니다
사용 흐름은 다음과 같습니다.
사용자가 실적 최대화 캠페인을 만들기 위해 애플리케이션을 방문합니다.
사용자가 캠페인의 일부로 초기 정보를 제공합니다. 구성 흐름에 따라 달라집니다. 예를 들어 단일 모델을 빌드하기 위한 세부정보를 제공합니다.
SitelinkAsset
사용자가 다음을 선택합니다.TARGET_SPEND
을 스마트 자동 입찰로 전략입니다.다음 필드를 설정하는
GenerateRecommendationsRequest
를 전송합니다.campaign_sitelink_count
: 값으로 설정:1
(진행 중인 사이트링크 확장 소재의 수) 확인할 수 있습니다.bidding_info
: 중첩된bidding_strategy_type
필드를TARGET_SPEND
로 설정합니다.conversion_tracking_status
:ConversionTrackingStatus
확인할 수 있습니다. 이 필드를 가져오는 방법에 대한 안내는 다음을 참조하세요. 시작하기 전환 관리 가이드입니다.recommendation_types
:[SITELINK_ASSET, MAXIMIZE_CLICKS_OPT_IN]
로 설정합니다.advertising_channel_type
:PERFORMANCE_MAX
로 설정합니다.customer_id
: 캠페인을 만드는 고객의 ID로 설정합니다.
실습 안내에 있는
GenerateRecommendationsResponse
드림 - 이 경우에는SitelinkAssetRecommendation
및MaximizeClicksOptInRecommendation
—캠페인 내에 표시하여 사용자에게 추천합니다. 생성 인터페이스입니다. 사용자가 제안을 수락하면 다음을 수행할 수 있습니다. 캠페인 생성 요청에 포함할 수 있습니다. 살펴보겠습니다