Com os modificadores de lances, é possível ajustar os lances para um critério específico sem mudar a segmentação da campanha ou do grupo de anúncios. Por exemplo, um modificador de lance de grupo de anúncios para dispositivos móveis não exclui impressões de outros tipos de dispositivo, mas permite aumentar ou diminuir os lances para impressões em dispositivos móveis.
Os modificadores são definidos como multiplicadores de usar pontos flutuantes no campo bid_modifier. Por
exemplo, um valor de 1.2 aumenta um lance em 20%, enquanto 0.8 o diminui em
20%. Para critérios compatíveis (como excluir um tipo de dispositivo), um valor de 0.0 (equivalente a um ajuste de lance de -100% na interface do Google Ads) desativa o critério. Quando vários modificadores de lance se aplicam a uma impressão, eles são multiplicados para calcular o ajuste de lance final. Consulte a documentação de referência de CampaignBidModifier e AdGroupBidModifier para ver os intervalos de valores válidos.
Para mais informações sobre como os lances funcionam e como definir modificadores de lances, consulte os guias Visão geral de lances e Gerenciar modificadores de lances.
Modificadores de lance da campanha
É possível especificar modificadores de lance no nível da campanha para o seguinte tipo de critério usando o CampaignBidModifierService:
InteractionTypeInfo- Defina os critérios de
InteractionTypeInfousando um dos tipos enumerados predefinidos deInteractionType.CALLé o único valor de tipo enumerado compatível com modificadores de lance de campanha. Especificar qualquer outro valor retorna umCriterionError.
Modificadores de lance de grupo de anúncios
É possível especificar modificadores de lances no nível do grupo de anúncios para os seguintes tipos de critério usando o AdGroupBidModifierService:
DeviceInfo- Defina os critérios de
DeviceInfousando um dos tipos enumerados predefinidos deDevice. - Vários critérios de viagem
- Na v26 e em versões mais recentes, defina modificadores para critérios de itinerário de viagem usando
critérios independentes de vertical:
UserSetDatesInfo,AdvanceBookingWindowInfo,LengthOfBookingInfo,StartDayOfWeekInfoeStartDateRangeInfo. Na v25 e versões anteriores, defina modificadores específicos de hotel paraHotelDateSelectionTypeInfo,HotelAdvanceBookingWindowInfo,HotelLengthOfStayInfo,HotelCheckInDayInfoeHotelCheckInDateRangeInfo. Esses critérios se aplicam apenas a anúncios de hotel em campanhas de hotel e campanhas de pesquisa para viagem. Consulte Ajustar lances com modificadores de lances para mais detalhes.
Modificadores de lance no nível do critério
Além dos serviços dedicados de modificador de lances, determinados critérios definidos nos recursos CampaignCriterion ou AdGroupCriterion permitem definir um campo bid_modifier diretamente (CampaignCriterion.bid_modifier ou AdGroupCriterion.bid_modifier, como para local, programação de anúncios ou critérios demográficos).
Exemplo de código
O exemplo de código a seguir demonstra como adicionar um modificador de lances para dispositivos móveis no grupo de anúncios:
Java
private void runExample( GoogleAdsClient googleAdsClient, long customerId, long adGroupId, double bidModifier) { // Creates an ad group bid modifier for mobile devices with the specified ad group ID and // bid modifier value. AdGroupBidModifier adGroupBidModifier = AdGroupBidModifier.newBuilder() .setAdGroup(ResourceNames.adGroup(customerId, adGroupId)) .setBidModifier(bidModifier) .setDevice(DeviceInfo.newBuilder().setType(Device.MOBILE)) .build(); // Creates an ad group bid modifier operation for creating an ad group bid modifier. AdGroupBidModifierOperation adGroupBidModifierOperation = AdGroupBidModifierOperation.newBuilder().setCreate(adGroupBidModifier).build(); // Issues a mutate request to add the ad group bid modifier. try (AdGroupBidModifierServiceClient adGroupBidModifierServiceClient = googleAdsClient.getLatestVersion().createAdGroupBidModifierServiceClient()) { MutateAdGroupBidModifiersResponse response = adGroupBidModifierServiceClient.mutateAdGroupBidModifiers( Long.toString(customerId), ImmutableList.of(adGroupBidModifierOperation)); System.out.printf("Added %d ad group bid modifiers:%n", response.getResultsCount()); for (MutateAdGroupBidModifierResult mutateAdGroupBidModifierResult : response.getResultsList()) { System.out.printf("\t%s%n", mutateAdGroupBidModifierResult.getResourceName()); } } }
C#
public void Run(GoogleAdsClient client, long customerId, long adGroupId, double bidModifierValue) { // Get the AdGroupBidModifierService. AdGroupBidModifierServiceClient adGroupBidModifierService = client.GetService(Services.V26.AdGroupBidModifierService); // Creates an ad group bid modifier for mobile devices with the specified ad group // ID and bid modifier value. AdGroupBidModifier adGroupBidModifier = new AdGroupBidModifier() { AdGroup = ResourceNames.AdGroup(customerId, adGroupId), BidModifier = bidModifierValue, Device = new DeviceInfo() { Type = Device.Mobile } }; // Creates an ad group bid modifier operation for creating an ad group bid modifier. AdGroupBidModifierOperation adGroupBidModifierOperation = new AdGroupBidModifierOperation() { Create = adGroupBidModifier }; // Send the operation in a mutate request. try { MutateAdGroupBidModifiersResponse response = adGroupBidModifierService.MutateAdGroupBidModifiers(customerId.ToString(), new AdGroupBidModifierOperation[] { adGroupBidModifierOperation }); Console.WriteLine("Added {0} ad group bid modifiers:", response.Results.Count); foreach (MutateAdGroupBidModifierResult result in response.Results) { Console.WriteLine($"\t{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, float $bidModifierValue ) { // Creates an ad group bid modifier for mobile devices with the specified ad group ID and // bid modifier value. $adGroupBidModifier = new AdGroupBidModifier( [ 'ad_group' => ResourceNames::forAdGroup($customerId, $adGroupId), 'bid_modifier' => $bidModifierValue, 'device' => new DeviceInfo(['type' => Device::MOBILE]) ] ); // Creates an ad group bid modifier operation for creating an ad group bid modifier. $adGroupBidModifierOperation = new AdGroupBidModifierOperation(); $adGroupBidModifierOperation->setCreate($adGroupBidModifier); // Issues a mutate request to add the ad group bid modifier. $adGroupBidModifierServiceClient = $googleAdsClient->getAdGroupBidModifierServiceClient(); $response = $adGroupBidModifierServiceClient->mutateAdGroupBidModifiers( MutateAdGroupBidModifiersRequest::build($customerId, [$adGroupBidModifierOperation]) ); printf("Added %d ad group bid modifier:%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, bid_modifier_value: float, ) -> None: ad_group_service: AdGroupServiceClient = client.get_service( "AdGroupService" ) ad_group_bm_service: AdGroupBidModifierServiceClient = client.get_service( "AdGroupBidModifierService" ) # Create ad group bid modifier for mobile devices with the specified ad # group ID and bid modifier value. ad_group_bid_modifier_operation: AdGroupBidModifierOperation = ( client.get_type("AdGroupBidModifierOperation") ) ad_group_bid_modifier: AdGroupBidModifier = ( ad_group_bid_modifier_operation.create ) # Set the ad group. ad_group_bid_modifier.ad_group = ad_group_service.ad_group_path( customer_id, ad_group_id ) # Set the bid modifier. ad_group_bid_modifier.bid_modifier = bid_modifier_value # Sets the device. device_enum: DeviceEnum = client.enums.DeviceEnum ad_group_bid_modifier.device.type_ = device_enum.MOBILE # Add the ad group bid modifier. ad_group_bm_response: MutateAdGroupBidModifiersResponse = ( ad_group_bm_service.mutate_ad_group_bid_modifiers( customer_id=customer_id, operations=[ad_group_bid_modifier_operation], ) )
Ruby
def add_ad_group_bid_modifier(customer_id, ad_group_id, bid_modifier_value) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Creates an ad group bid modifier for mobile devices with the specified # ad group ID and bid modifier value. ad_group_bid_modifier = client.resource.ad_group_bid_modifier do |mod| # Sets the ad group. mod.ad_group = client.path.ad_group(customer_id, ad_group_id) # Sets the Bid Modifier. mod.bid_modifier = bid_modifier_value # Sets the Device. mod.device = client.resource.device_info do |device| device.type = :MOBILE end end # Create the operation. operation = client.operation.create_resource.ad_group_bid_modifier(ad_group_bid_modifier) # Add the ad group ad. response = client.service.ad_group_bid_modifier.mutate_ad_group_bid_modifiers( customer_id: customer_id, operations: [operation] ) puts "Added #{response.results.size} ad group bid modifiers:" response.results.each do |added_ad_group_bid_modifier| puts "\t#{added_ad_group_bid_modifier.resource_name}" end end
Perl
sub add_ad_group_bid_modifier { my ($api_client, $customer_id, $ad_group_id, $bid_modifier_value) = @_; # Create an ad group bid modifier for mobile devices with the specified ad group ID and # bid modifier value. my $ad_group_bid_modifier = Google::Ads::GoogleAds::V26::Resources::AdGroupBidModifier->new({ adGroup => Google::Ads::GoogleAds::V26::Utils::ResourceNames::ad_group( $customer_id, $ad_group_id ), bidModifier => $bid_modifier_value, device => Google::Ads::GoogleAds::V26::Common::DeviceInfo->new({ type => MOBILE })}); # Create an ad group bid modifier operation. my $ad_group_bid_modifier_operation = Google::Ads::GoogleAds::V26::Services::AdGroupBidModifierService::AdGroupBidModifierOperation ->new({ create => $ad_group_bid_modifier }); # Add the ad group bid modifier. my $ad_group_bid_modifiers_response = $api_client->AdGroupBidModifierService()->mutate({ customerId => $customer_id, operations => [$ad_group_bid_modifier_operation]}); printf "Created ad group bid modifier '%s'.\n", $ad_group_bid_modifiers_response->{results}[0]{resourceName}; return 1; }