Adjust Bids with Bid Modifiers

You can use the Google Ads API to set bid adjustments (also called bid modifiers) for Hotel ads. For details about the bid adjustments that you can set, see About bid adjustments for Hotel ads .

Campaign level bid adjustments

To use the Google Ads API to set bid adjustments at the campaign level, see Manage bid modifiers .

Ad group level bid adjustments

To use the Google Ads API to set bid adjustments at the ad group level, you need to first create an object of the relevant class (for example, HotelAdvanceBookingWindowInfo or HotelDateSelectionTypeInfo ) and then set its fields to appropriate values.

For instance, if you want to create an ad group bid modifier using an advanced booking window between 30 and 60 days, you need to create a HotelAdvanceBookingWindowInfo object and set min_days to 30 and max_days to 60.

Finally, associate the relevant object to an AdGroupBidModifier object. You also have to specify the resource name of an ad group to which the ad group bid modifier belongs by using ad_group .

Java

 private 
  
 void 
  
 runExample 
 ( 
 GoogleAdsClient 
  
 googleAdsClient 
 , 
  
 long 
  
 customerId 
 , 
  
 long 
  
 adGroupId 
 ) 
  
 { 
  
 List<AdGroupBidModifierOperation> 
  
 operations 
  
 = 
  
 new 
  
 ArrayList 
<> (); 
  
 // Constructs the ad group resource name to use for each bid modifier. 
  
 String 
  
 adGroupResourceName 
  
 = 
  
 ResourceNames 
 . 
 adGroup 
 ( 
 customerId 
 , 
  
 adGroupId 
 ); 
  
 // 1) Creates an ad group bid modifier based on the hotel check-in day. 
  
 AdGroupBidModifier 
  
 checkInDayAdGroupBidModifier 
  
 = 
  
 AdGroupBidModifier 
 . 
 newBuilder 
 () 
  
 // Sets the resource name to the ad group resource name joined with the criterion ID 
  
 // whose value corresponds to the desired check-in day. 
  
 . 
 setAdGroup 
 ( 
 adGroupResourceName 
 ) 
  
 . 
 setHotelCheckInDay 
 ( 
 HotelCheckInDayInfo 
 . 
 newBuilder 
 (). 
 setDayOfWeek 
 ( 
 DayOfWeek 
 . 
 MONDAY 
 )) 
  
 // Sets the bid modifier value to 150%. 
  
 . 
 setBidModifier 
 ( 
 1.5d 
 ) 
  
 . 
 build 
 (); 
  
 operations 
 . 
 add 
 ( 
  
 AdGroupBidModifierOperation 
 . 
 newBuilder 
 (). 
 setCreate 
 ( 
 checkInDayAdGroupBidModifier 
 ). 
 build 
 ()); 
  
 // 2) Creates an ad group bid modifier based on the hotel length of stay. 
  
 AdGroupBidModifier 
  
 lengthOfStayAdGroupBidModifier 
  
 = 
  
 AdGroupBidModifier 
 . 
 newBuilder 
 () 
  
 // Sets the ad group. 
  
 . 
 setAdGroup 
 ( 
 adGroupResourceName 
 ) 
  
 // Creates the hotel length of stay info. 
  
 . 
 setHotelLengthOfStay 
 ( 
  
 HotelLengthOfStayInfo 
 . 
 newBuilder 
 (). 
 setMinNights 
 ( 
 3L 
 ). 
 setMaxNights 
 ( 
 7L 
 ). 
 build 
 ()) 
  
 // Sets the bid modifier value to 170%. 
  
 . 
 setBidModifier 
 ( 
 1.7d 
 ) 
  
 . 
 build 
 (); 
  
 operations 
 . 
 add 
 ( 
  
 AdGroupBidModifierOperation 
 . 
 newBuilder 
 (). 
 setCreate 
 ( 
 lengthOfStayAdGroupBidModifier 
 ). 
 build 
 ()); 
  
 // Issues a mutate request to add the ad group bid modifiers. 
  
 try 
  
 ( 
 AdGroupBidModifierServiceClient 
  
 adGroupBidModifierServiceClient 
  
 = 
  
 googleAdsClient 
 . 
 getLatestVersion 
 (). 
 createAdGroupBidModifierServiceClient 
 ()) 
  
 { 
  
 MutateAdGroupBidModifiersResponse 
  
 response 
  
 = 
  
 adGroupBidModifierServiceClient 
 . 
 mutateAdGroupBidModifiers 
 ( 
  
 Long 
 . 
 toString 
 ( 
 customerId 
 ), 
  
 operations 
 ); 
  
 // Prints the resource names of the added ad group bid modifiers. 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Added %d hotel ad group bid modifiers:%n" 
 , 
  
 response 
 . 
 getResultsCount 
 ()); 
  
 for 
  
 ( 
 MutateAdGroupBidModifierResult 
  
 mutateAdGroupBidModifierResult 
  
 : 
  
 response 
 . 
 getResultsList 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "  %s%n" 
 , 
  
 mutateAdGroupBidModifierResult 
 . 
 getResourceName 
 ()); 
  
 } 
  
 } 
 } 
  
  

C#

 public 
  
 void 
  
 Run 
 ( 
 GoogleAdsClient 
  
 client 
 , 
  
 long 
  
 customerId 
 , 
  
 long 
  
 adGroupId 
 ) 
 { 
  
 // Get the AdGroupBidModifierService. 
  
 AdGroupBidModifierServiceClient 
  
 service 
  
 = 
  
 client 
 . 
 GetService 
 ( 
  
 Services 
 . 
 V21 
 . 
 AdGroupBidModifierService 
 ); 
  
 // Constructs the ad group resource name to use for each bid modifier. 
  
 string 
  
 adGroupResourceName 
  
 = 
  
 ResourceNames 
 . 
 AdGroup 
 ( 
 customerId 
 , 
  
 adGroupId 
 ); 
  
 // 1) Create an ad group bid modifier based on the hotel check-in day. 
  
 AdGroupBidModifier 
  
 checkInDayAdGroupBidModifier 
  
 = 
  
 new 
  
 AdGroupBidModifier 
 () 
  
 { 
  
 // Sets the resource name to the ad group resource name joined with the criterion 
  
 // ID whose value corresponds to the desired check-in day. 
  
 AdGroup 
  
 = 
  
 adGroupResourceName 
 , 
  
 HotelCheckInDay 
  
 = 
  
 new 
  
 HotelCheckInDayInfo 
 () 
  
 { 
  
 DayOfWeek 
  
 = 
  
 DayOfWeek 
 . 
 Monday 
  
 }, 
  
 // Set the bid modifier value to 150%. 
  
 BidModifier 
  
 = 
  
 1.5 
 , 
  
 }; 
  
 // Creates an ad group bid modifier operation. 
  
 var 
  
 checkInDayAdGroupBidModifierOperation 
  
 = 
  
 new 
  
 AdGroupBidModifierOperation 
 () 
  
 { 
  
 Create 
  
 = 
  
 checkInDayAdGroupBidModifier 
  
 }; 
  
 // 2) Create an ad group bid modifier based on the hotel length of stay. 
  
 AdGroupBidModifier 
  
 lengthOfStayAdGroupBidModifier 
  
 = 
  
 new 
  
 AdGroupBidModifier 
 () 
  
 { 
  
 // Set the ad group. 
  
 AdGroup 
  
 = 
  
 ResourceNames 
 . 
 AdGroup 
 ( 
 customerId 
 , 
  
 adGroupId 
 ), 
  
 // Set the hotel length of stay info. 
  
 HotelLengthOfStay 
  
 = 
  
 new 
  
 HotelLengthOfStayInfo 
 () 
  
 { 
  
 MinNights 
  
 = 
  
 3 
 , 
  
 MaxNights 
  
 = 
  
 7 
  
 }, 
  
 // Set the bid modifier value to 170%. 
  
 BidModifier 
  
 = 
  
 1.7 
  
 }; 
  
 // Create an ad group bid modifier operation. 
  
 var 
  
 lengthOfStayAdGroupBidModifierOperation 
  
 = 
  
 new 
  
 AdGroupBidModifierOperation 
 () 
  
 { 
  
 Create 
  
 = 
  
 lengthOfStayAdGroupBidModifier 
  
 }; 
  
 try 
  
 { 
  
 // Issue a mutate request to add an ad group bid modifiers. 
  
 MutateAdGroupBidModifiersResponse 
  
 response 
  
 = 
  
 service 
 . 
 MutateAdGroupBidModifiers 
 ( 
  
 customerId 
 . 
 ToString 
 (), 
  
 new 
  
 AdGroupBidModifierOperation 
 [] 
  
 { 
  
 checkInDayAdGroupBidModifierOperation 
 , 
  
 lengthOfStayAdGroupBidModifierOperation 
  
 } 
  
 ); 
  
 // Display the resource names of the added ad group bid modifiers. 
  
 Console 
 . 
 WriteLine 
 ( 
 $"Added {response.Results.Count} hotel ad group bid modifiers:" 
 ); 
  
 foreach 
  
 ( 
 MutateAdGroupBidModifierResult 
  
 result 
  
 in 
  
 response 
 . 
 Results 
 ) 
  
 { 
  
 Console 
 . 
 WriteLine 
 ( 
 $"- {result.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

 public static function runExample( 
 GoogleAdsClient $googleAdsClient, 
 int $customerId, 
 int $adGroupId 
 ) { 
 $operations = []; 
 // 1) Creates an ad group bid modifier based on the hotel check-in day. 
 $checkInDayAdGroupBidModifier = new AdGroupBidModifier([ 
 // Sets the ad group. 
 'ad_group' => ResourceNames::forAdGroup($customerId, $adGroupId), 
 'hotel_check_in_day' => new HotelCheckInDayInfo([ 
 'day_of_week' => DayOfWeek::MONDAY 
 ]), 
 // Sets the bid modifier value to 150%. 
 'bid_modifier' => 1.5 
 ]); 
 // Creates an ad group bid modifier operation. 
 $checkInDayAdGroupBidModifierOperation = new AdGroupBidModifierOperation(); 
 $checkInDayAdGroupBidModifierOperation->setCreate($checkInDayAdGroupBidModifier); 
 $operations[] = $checkInDayAdGroupBidModifierOperation; 
 // 2) Creates an ad group bid modifier based on the hotel length of stay. 
 $lengthOfStayAdGroupBidModifier = new AdGroupBidModifier([ 
 // Sets the ad group. 
 'ad_group' => ResourceNames::forAdGroup($customerId, $adGroupId), 
 // Creates the hotel length of stay info. 
 'hotel_length_of_stay' => new HotelLengthOfStayInfo([ 
 'min_nights' => 3, 
 'max_nights' => 7, 
 ]), 
 // Sets the bid modifier value to 170%. 
 'bid_modifier' => 1.7 
 ]); 
 // Creates an ad group bid modifier operation. 
 $lengthOfStayAdGroupBidModifierOperation = new AdGroupBidModifierOperation(); 
 $lengthOfStayAdGroupBidModifierOperation->setCreate( 
 $lengthOfStayAdGroupBidModifier 
 ); 
 $operations[] = $lengthOfStayAdGroupBidModifierOperation; 
 // Issues a mutate request to add an ad group bid modifiers. 
 $adGroupBidModifierServiceClient = $googleAdsClient->getAdGroupBidModifierServiceClient(); 
 $response = $adGroupBidModifierServiceClient->mutateAdGroupBidModifiers( 
 MutateAdGroupBidModifiersRequest::build($customerId, $operations) 
 ); 
 // Print out resource names of the added ad group bid modifiers. 
 printf( 
 "Added %d hotel ad group bid modifiers:%s", 
 $response->getResults()->count(), 
 PHP_EOL 
 ); 
 foreach ($response->getResults() as $addedAdGroupBidModifier) { 
 /** @var AdGroupBidModifier $addedAdGroupBidModifier */ 
 print $addedAdGroupBidModifier->getResourceName() . PHP_EOL; 
 } 
 }  
 

Python

 def 
  
 main 
 ( 
 client 
 : 
 GoogleAdsClient 
 , 
 customer_id 
 : 
 str 
 , 
 ad_group_id 
 : 
 str 
 ) 
 - 
> None 
 : 
 ad_group_service 
 : 
 AdGroupServiceClient 
 = 
 client 
 . 
 get_service 
 ( 
 "AdGroupService" 
 ) 
 ag_bm_service 
 : 
 AdGroupBidModifierServiceClient 
 = 
 client 
 . 
 get_service 
 ( 
 "AdGroupBidModifierService" 
 ) 
 # Create ad group bid modifier based on hotel check-in day. 
 check_in_ag_bm_operation 
 : 
 AdGroupBidModifierOperation 
 = 
 client 
 . 
 get_type 
 ( 
 "AdGroupBidModifierOperation" 
 ) 
 check_in_ag_bid_modifier 
 : 
 AdGroupBidModifier 
 = 
 ( 
 check_in_ag_bm_operation 
 . 
 create 
 ) 
 check_in_ag_bid_modifier 
 . 
 hotel_check_in_day 
 . 
 day_of_week 
 = 
 ( 
 client 
 . 
 enums 
 . 
 DayOfWeekEnum 
 . 
 MONDAY 
 ) 
 check_in_ag_bid_modifier 
 . 
 ad_group 
 = 
 ad_group_service 
 . 
 ad_group_path 
 ( 
 customer_id 
 , 
 ad_group_id 
 ) 
 # Sets the bid modifier value to 150%. 
 check_in_ag_bid_modifier 
 . 
 bid_modifier 
 = 
 1.5 
 # Create ad group bid modifier based on hotel length of stay info. 
 los_ag_bm_operation 
 : 
 AdGroupBidModifierOperation 
 = 
 client 
 . 
 get_type 
 ( 
 "AdGroupBidModifierOperation" 
 ) 
 los_ag_bid_modifier 
 : 
 AdGroupBidModifier 
 = 
 los_ag_bm_operation 
 . 
 create 
 los_ag_bid_modifier 
 . 
 ad_group 
 = 
 ad_group_service 
 . 
 ad_group_path 
 ( 
 customer_id 
 , 
 ad_group_id 
 ) 
 # Creates the hotel length of stay info. 
 hotel_length_of_stay_info 
 : 
 HotelLengthOfStayInfo 
 = 
 ( 
 los_ag_bid_modifier 
 . 
 hotel_length_of_stay 
 ) 
 hotel_length_of_stay_info 
 . 
 min_nights 
 = 
 3 
 hotel_length_of_stay_info 
 . 
 max_nights 
 = 
 7 
 # Sets the bid modifier value to 170%. 
 los_ag_bid_modifier 
 . 
 bid_modifier 
 = 
 1.7 
 # Add the bid modifiers 
 ag_bm_response 
 : 
 MutateAdGroupBidModifiersResponse 
 = 
 ( 
 ag_bm_service 
 . 
 mutate_ad_group_bid_modifiers 
 ( 
 customer_id 
 = 
 customer_id 
 , 
 operations 
 = 
 [ 
 check_in_ag_bm_operation 
 , 
 los_ag_bm_operation 
 ], 
 ) 
 ) 
 # Print out resource names of the added ad group bid modifiers. 
 print 
 ( 
 f 
 "Added 
 { 
 len 
 ( 
 ag_bm_response 
 . 
 results 
 ) 
 } 
 hotel ad group bid modifiers:" 
 ) 
 result 
 : 
 MutateAdGroupBidModifierResult 
 for 
 result 
 in 
 ag_bm_response 
 . 
 results 
 : 
 print 
 ( 
 result 
 . 
 resource_name 
 ) 
  

Ruby

 def 
  
 add_hotel_ad_group_bid_modifiers 
 ( 
 customer_id 
 , 
  
 ad_group_id 
 ) 
  
 # GoogleAdsClient will read a config file from 
  
 # ENV['HOME']/google_ads_config.rb when called without parameters 
  
 client 
  
 = 
  
 Google 
 :: 
 Ads 
 :: 
 GoogleAds 
 :: 
 GoogleAdsClient 
 . 
 new 
  
 operations 
  
 = 
  
 [] 
  
 ad_group_resource 
  
 = 
  
 client 
 . 
 path 
 . 
 ad_group 
 ( 
 customer_id 
 , 
  
 ad_group_id 
 ) 
  
 # 1) Creates an ad group bid modifier based on the hotel check-in day. 
  
 operations 
 << 
 client 
 . 
 operation 
 . 
 create_resource 
 . 
 ad_group_bid_modifier 
  
 do 
  
 | 
 bm 
 | 
  
 # Sets the ad group. 
  
 bm 
 . 
 ad_group 
  
 = 
  
 ad_group_resource 
  
 # Sets the check-in day to Monday. 
  
 bm 
 . 
 hotel_check_in_day 
  
 = 
  
 client 
 . 
 resource 
 . 
 hotel_check_in_day_info 
  
 do 
  
 | 
 info 
 | 
  
 info 
 . 
 day_of_week 
  
 = 
  
 :MONDAY 
  
 end 
  
 # Sets the bid modifier value to 150%. 
  
 bm 
 . 
 bid_modifier 
  
 = 
  
 1 
 . 
 5 
  
 end 
  
 # 2) Creates an ad group bid modifier based on the hotel length of stay. 
  
 operations 
 << 
 client 
 . 
 operation 
 . 
 create_resource 
 . 
 ad_group_bid_modifier 
  
 do 
  
 | 
 bm 
 | 
  
 # Sets the ad group. 
  
 bm 
 . 
 ad_group 
  
 = 
  
 ad_group_resource 
  
 # Creates the hotel length of stay info. 
  
 bm 
 . 
 hotel_length_of_stay 
  
 = 
  
 client 
 . 
 resource 
 . 
 hotel_length_of_stay_info 
  
 do 
  
 | 
 info 
 | 
  
 info 
 . 
 min_nights 
  
 = 
  
 3 
  
 info 
 . 
 max_nights 
  
 = 
  
 7 
  
 end 
  
 # Sets the bid modifier value to 170%. 
  
 bm 
 . 
 bid_modifier 
  
 = 
  
 1 
 . 
 7 
  
 end 
  
 # 3) Issues a mutate request to add an ad group bid modifiers. 
  
 ad_group_bid_modifier_service 
  
 = 
  
 client 
 . 
 service 
 . 
 ad_group_bid_modifier 
  
 response 
  
 = 
  
 ad_group_bid_modifier_service 
 . 
 mutate_ad_group_bid_modifiers 
 ( 
  
 customer_id 
 : 
  
 customer_id 
 , 
  
 operations 
 : 
  
 operations 
 , 
  
 ) 
  
 # Print out resource names of the added ad group bid modifiers. 
  
 puts 
  
 "Added 
 #{ 
 response 
 . 
 results 
 . 
 size 
 } 
 hotel ad group bid modifiers:" 
  
 response 
 . 
 results 
 . 
 each 
  
 do 
  
 | 
 added_ad_group_bid_modifier 
 | 
  
 puts 
  
 " 
 \t 
 #{ 
 added_ad_group_bid_modifier 
 . 
 resource_name 
 } 
 " 
  
 end 
 end  
 
 . 
 rb 
  

Perl

 sub 
  
 add_hotel_ad_group_bid_modifiers 
  
 { 
  
 my 
  
 ( 
 $api_client 
 , 
  
 $customer_id 
 , 
  
 $ad_group_id 
 ) 
  
 = 
  
 @_ 
 ; 
  
 # 1) Create an ad group bid modifier based on the hotel check-in day. 
  
 my 
  
 $check_in_day_ad_group_bid_modifier 
  
 = 
  
 Google::Ads::GoogleAds::V21::Resources:: 
 AdGroupBidModifier 
 - 
> new 
 ({ 
  
 # Set the ad group. 
  
 adGroup 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Utils::ResourceNames:: 
 ad_group 
 ( 
  
 $customer_id 
 , 
  
 $ad_group_id 
  
 ), 
  
 hotelCheckInDay 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Common:: 
 HotelCheckInDayInfo 
 - 
> new 
 ({ 
  
 dayOfWeek 
  
 = 
>  
 MONDAY 
  
 } 
  
 ), 
  
 # Set the bid modifier value to 150%. 
  
 bidModifier 
  
 = 
>  
 1.5 
  
 }); 
  
 # Create an ad group bid modifier operation. 
  
 my 
  
 $check_in_day_ad_group_bid_modifier_operation 
  
 = 
  
 Google::Ads::GoogleAds::V21::Services::AdGroupBidModifierService:: 
 AdGroupBidModifierOperation 
  
 - 
> new 
 ({ 
  
 create 
  
 = 
>  
 $check_in_day_ad_group_bid_modifier 
  
 }); 
  
 # 2) Create an ad group bid modifier based on the hotel length of stay. 
  
 my 
  
 $length_of_stay_ad_group_bid_modifier 
  
 = 
  
 Google::Ads::GoogleAds::V21::Resources:: 
 AdGroupBidModifier 
 - 
> new 
 ({ 
  
 # Set the ad group. 
  
 adGroup 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Utils::ResourceNames:: 
 ad_group 
 ( 
  
 $customer_id 
 , 
  
 $ad_group_id 
  
 ), 
  
 # Create the hotel length of stay info. 
  
 hotelLengthOfStay 
  
 = 
>  
 Google::Ads::GoogleAds::V21::Common:: 
 HotelLengthOfStayInfo 
 - 
> new 
 ({ 
  
 minNights 
  
 = 
>  
 3 
 , 
  
 maxNights 
  
 = 
>  
 7 
  
 } 
  
 ), 
  
 # Set the bid modifier value to 170%. 
  
 bidModifier 
  
 = 
>  
 1.7 
  
 }); 
  
 # Create an ad group bid modifier operation. 
  
 my 
  
 $length_of_stay_ad_group_bid_modifier_operation 
  
 = 
  
 Google::Ads::GoogleAds::V21::Services::AdGroupBidModifierService:: 
 AdGroupBidModifierOperation 
  
 - 
> new 
 ({ 
  
 create 
  
 = 
>  
 $length_of_stay_ad_group_bid_modifier 
  
 }); 
  
 # 3) Add the ad group bid modifiers. 
  
 my 
  
 $ad_group_bid_modifiers_response 
  
 = 
  
 $api_client 
 - 
> AdGroupBidModifierService 
 () 
 - 
> mutate 
 ({ 
  
 customerId 
  
 = 
>  
 $customer_id 
 , 
  
 operations 
  
 = 
>  
 [ 
  
 $check_in_day_ad_group_bid_modifier_operation 
 , 
  
 $length_of_stay_ad_group_bid_modifier_operation 
  
 ]}); 
  
 # Print out resource names of the added ad group bid modifiers. 
  
 my 
  
 $ad_group_bid_modifier_results 
  
 = 
  
 $ad_group_bid_modifiers_response 
 - 
> { 
 results 
 }; 
  
 printf 
  
 "Added %d hotel ad group bid modifiers:\n" 
 , 
  
 scalar 
  
 @$ad_group_bid_modifier_results 
 ; 
  
 foreach 
  
 my 
  
 $ad_group_bid_modifier_result 
  
 ( 
 @$ad_group_bid_modifier_results 
 ) 
  
 { 
  
 printf 
  
 "\t%s\n" 
 , 
  
 $ad_group_bid_modifier_result 
 - 
> { 
 resourceName 
 }; 
  
 } 
  
 return 
  
 1 
 ; 
 } 
  
  
Create a Mobile Website
View Site in Mobile | Classic
Share by: