אפשר לשפר את ההמלצות את הקמפיינים שלכם, בכמה דרכים:
- הוספת תכונות חדשות ורלוונטיות
- משפרים את הצעות המחיר, מילות המפתח והמודעות כדי לנצל את התקציב בצורה טובה יותר
- שיפור היעילות והביצועים הכוללים של הקמפיינים
כדי להגדיל את ציוני האופטימיזציה, אפשר להשתמש
RecommendationService
לאחזור
המלצות, ולאחר מכן ליישם או לדחות אותן בהתאם. מתחיל מגרסה 15
של Google Ads API, אפשר גם להירשם ליישום אוטומטי
באמצעות RecommendationSubscriptionService
.
ציון האופטימיזציה
ציון האופטימיזציה הוא
אומדן הביצועים של חשבון Google Ads לגבי הביצועים, והוא זמין
בCustomer
רמות של Campaign
.
Customer.optimization_score_weight
זמינה רק לחשבונות שאינם חשבונות ניהול, ומשמשת לחישוב
בציון האופטימיזציה של כמה חשבונות. מאחזרים את ציון האופטימיזציה,
ציון האופטימיזציה של החשבונות ומכפילים אותם זו בזו
(Customer.optimization_score * Customer.optimization_score_weight
) לחישוב
בציון האופטימיזציה הכולל.
יש מדדים שקשורים לאופטימיזציה שזמינים עבור customer
ו-campaign
דוחות:
-
metrics.optimization_score_url
מספקת קישור עומק אל החשבון כדי להציג מידע על המלצות בממשק המשתמש של Google Ads. -
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 |
אופטימיזציית עלות לקליק (eCPC) |
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) כשהוא נמוך מדי ויש מעט מאוד המרות או ללא המרות |
FORECASTING_SET_TARGET_ROAS |
הגדלת התקציב מראש לפני אירוע עונתי שצפויה להגדיל את נפח התנועה ולשנות את שיטת הבידינג ממקסימום ערך המרות ליעד החזר על הוצאות פרסום |
LEAD_FORM |
הוספת נכסי השארת פרטים לקמפיין |
CALLOUT_ASSET |
הוספה של נכסי יתרונות מרכזיים ברמת הקמפיין או הלקוח |
SITELINK_ASSET |
הוספה של נכסי Sitelink ברמת הקמפיין או הלקוח |
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 |
פתרון בעיות שקשורות להשעיית חשבון Merchant Center |
SHOPPING_FIX_MERCHANT_CENTER_ACCOUNT_SUSPENSION_WARNING |
פתרון בעיות שקשורות לאזהרה על השעיה של חשבון Merchant Center |
DYNAMIC_IMAGE_EXTENSION_OPT_IN |
הפעלה של תוספי תמונות דינמיים בחשבון |
RAISE_TARGET_CPA |
כדאי להגדיל את יעד העלות להמרה |
LOWER_TARGET_ROAS |
יעד החזר נמוך יותר על הוצאות פרסום |
FORECASTING_SET_TARGET_CPA |
הגדרת יעד עלות להמרה (CPA) לקמפיינים שלא צוין בהם יעד עלות להמרה התקדמות באירוע עונתי שצפוי להגדיל את תנועת הגולשים |
SET_TARGET_CPA |
יש להגדיר יעד עלות להמרה (CPA) לקמפיינים שלא צוין בהם יעד |
SET_TARGET_ROAS |
צריך להגדיר יעד החזר על הוצאות פרסום לקמפיינים שלא צוין בהם יעד החזר |
REFRESH_CUSTOMER_MATCH_LIST |
עדכון רשימת לקוחות שלא עודכנה ב-90 הימים האחרונים ימים |
IMPROVE_GOOGLE_TAG_COVERAGE |
פריסה של Google Tag בדפים נוספים |
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
באמצעות שאילתה ב'שפת השאילתות של Google Ads'.
הפרטים לגבי כל סוג המלצה מפורטים
שדה ספציפי להמלצה. לדוגמה, המלצה אחת (CAMPAIGN_BUDGET
)
הפרטים מופיעים
campaign_budget_recommendation
הם ועוטפים
CampaignBudgetRecommendation
לאובייקט.
כל השדות הספציפיים להמלצות זמינים בכרטיסייה
שדה איחוד recommendation
.
ההשפעה של ההמלצות
חלק מסוגי ההמלצות מאכלסים את
impact
בשדה של ההמלצה.
RecommendationImpact
מכיל הערכה של ההשפעה על ביצועי החשבון כתוצאה
יישום ההמלצה. הבאים
מדדי המלצות הם
זמין בשדות impact.base_metrics
ו-impact.potential_metrics
:
impressions
clicks
cost_micros
conversions
all_conversions
(זמין החל מגרסה 16 של Google Ads API)video_views
קוד לדוגמה
הקוד לדוגמה הבא מאחזר את כל ההמלצות הזמינות וההמלצות שנסגרו
מסוג KEYWORD
מהחשבון, ומדפיס חלק מהפרטים שלהם:
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); });
מעבר ל-AdSense
אפשר ליישם או לסגור כל המלצה שאוחזרה.
ההמלצות עשויות להשתנות מדי יום בהתאם לסוג ההמלצה
וגם כמה פעמים ביום. במקרה כזה, תקבלו המלצה
הפונקציה resource_name
של האובייקט יכולה
מיושנות לאחר אחזור ההמלצה.
מומלץ ליישם את ההמלצות זמן קצר אחרי האחזור.
יישום ההמלצות
אפשר ליישם המלצות פעילות או המלצות שנסגרו באמצעות:
ApplyRecommendation
ה-method של
RecommendationService
סוגי ההמלצות יכולים לכלול פרמטרים נדרשים או אופציונליים. נפוצים ההמלצות מגיעות עם ערכים מומלצים שבהם המערכת משתמשת כברירת מחדל.
אם מגדירים יישום אוטומטי של המלצות, אי אפשר
נתמכים בכל סוגי ההמלצות. אבל אפשר ליישם
של סוגי ההמלצות שנתמכים באופן מלא על ידי Google Ads API.
יש לעיין בקוד DetectAndApplyRecommendations
לדוגמה כדי לקבל מידע נוסף.
משתמשים ב
apply_parameters
שדה האיחוד של ApplyRecommendationOperation
ליישום המלצות עם
ערכי פרמטרים ספציפיים. לכל סוג המלצה מתאים יש שדה נפרד.
אי אפשר להשתמש באף סוג של המלצה שלא מופיע בשדה apply_parameters
את ערכי הפרמטרים האלה.
קוד לדוגמה
הקוד הבא מדגים איך לפתח את
ApplyRecommendationOperation
ו-
איך לשנות את הערכים המומלצים אם רוצים להחליף אותם בערכים
שלו.
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; }
הדוגמה הבאה מפעילה
ApplyRecommendation
שליחה של פעולות יישום ההמלצה שנוצרו לפני כן
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}; }
אפשר למצוא מידע נוסף בסרטונים האלה
החלת פרמטרים
קבוצתי
שגיאות
בדיקות
דחיית המלצות
אפשר לדחות המלצות באמצעות
RecommendationService
הקוד
דומה ליישום של המלצות, אבל במקום זאת
DismissRecommendationOperation
וגם
RecommendationService.DismissRecommendation
.
אפשר למצוא מידע נוסף בסרטונים האלה
קבוצתי
שגיאות
בדיקות
יישום אוטומטי של המלצות
החל מגרסה 15 של Google Ads API, ניתן להשתמש
RecommendationSubscriptionService
כדי ליישם באופן אוטומטי המלצות מסוג מסוים.
כדי להירשם לסוג המלצה מסוים,
אובייקט RecommendationSubscription
,
מגדירים את השדה type
לאחד מהערכים
ההמלצה הנתמכת
סוגים, ולהגדיר
השדה status
עד ENABLED
.
סוגי המלצות שנתמכים על ידי מינויים
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
.
המלצות בתהליך יצירת הקמפיין
החל מגרסה 16 של Google Ads API, ניתן להשתמש
RecommendationService.GenerateRecommendationsRequest
כדי ליצור המלצות במהלך יצירת הקמפיין, לפי קבוצה נתונה של
סוגי המלצות.
GenerateRecommendations
מקבל כקלט מספר לקוח, ערוץ פרסום
חייב להיות אחד או יותר
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 , היא יכולה להיות
כאות להוספת נכס Sitelink אחד לפחות לקמפיין. |
|
|
TARGET_CPA_OPT_IN |
|
|
TARGET_ROAS_OPT_IN |
|
תהליך שימוש לדוגמה
נניח שהחברה שלך היא סוכנות פרסום שמספקת קמפיין
את תהליך העבודה למשתמשים, ואתם רוצים להציע למשתמשים הצעות
בתהליך הזה. אפשר להשתמש
GenerateRecommendationsRequest
תוכלו ליצור המלצות על פי דרישה ולשלב את ההמלצות האלה.
בממשק המשתמש של יצירת הקמפיין.
תהליך השימוש עשוי להיראות כך:
משתמש מגיע לאפליקציה שלכם כדי ליצור קמפיין למיקסום ביצועים.
המשתמש מספק מידע ראשוני כחלק מהקמפיין את תהליך הבנייה. לדוגמה, הם מספקים פרטים על בניית מודל
SitelinkAsset
, ואז הם בוחריםTARGET_SPEND
בתור שיטות בידינג חכמות את האסטרטגיה שלנו.שולחים
GenerateRecommendationsRequest
שמגדיר את השדות הבאים:campaign_sitelink_count
: מוגדר ל-1
, שהוא מספר נכסי ה-Sitelink שנמצאים בתהליך .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
: מוגדר למזהה של הלקוח שיוצר את הקמפיין.
אפשר ליישם את ההמלצות
GenerateRecommendationsResponse
– במקרה הזה,SitelinkAssetRecommendation
וגםMaximizeClicksOptInRecommendation
– ולהציע אותם למשתמש על ידי הצגתם בקמפיין ממשק בנייה. אם המשתמש מקבל הצעה, ניתן לאחר מכן לשלב אותו בבקשה ליצירת הקמפיין ברגע שהמשתמש משלים את הפעולה. תהליך יצירת הקמפיין.