Uma simulação de lance é composta por dados de simulação e informações sobre o período, o tipo de dados de simulação, a campanha, o grupo de anúncios ou o critério a que ela se refere. Os dados de simulação são uma sequência de pontos de simulação que fornece um histograma da performance prevista com lances diferentes durante o período especificado. As informações fornecidas por um ponto de simulação dependem do tipo de dados de simulação.
Qualquer simulação de lance pode ser recuperada com uma consulta GAQL selecionando o campo de dados de simulação (tipo de dados de simulação) correto do recurso (nível de lance) certo.
Nível de lance e recurso | SimulationType | Campo de dados de simulação | Tipo de ponto de simulação |
---|---|---|---|
Grupo de anúncios |
|
||
Critério do grupo de anúncios | CPC_BID |
cpc_bid_point_list.points | CpcBidSimulationPoint |
Estratégia de lances (portfólio) |
|
||
Campanha |
|
Método de modificação da simulação de escalonamento nas simulações de campanhas
As simulações no nível da campanha são compatíveis com um método especial de modificação de simulação
chamado SCALING
.
Quando um CampaignSimulation
tem o
método de modificação SCALING
, ele mostra o que acontece se todos os lances de palavras-chave forem
dimensionados pelo modificador de escalonamento fornecido. Por exemplo, quando um modificador de escalonamento é
2,0, ele mostra o que acontece se todos os lances de palavras-chave forem duplicados. Para mais informações,
consulte o artigo sobre como
estimar seus resultados com simuladores de lances, orçamentos e metas.
O exemplo a seguir demonstra como recuperar e imprimir todas as simulações do tipo lance de CPC disponíveis para qualquer critério de um determinado grupo de anúncios filtrado no ID.
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId, long adGroupId) { try (GoogleAdsServiceClient googleAdsServiceClient = googleAdsClient.getLatestVersion().createGoogleAdsServiceClient()) { // Creates a query that retrieves the ad group criterion CPC bid simulations. String query = String.format( "SELECT ad_group_criterion_simulation.ad_group_id, " + "ad_group_criterion_simulation.criterion_id, " + "ad_group_criterion_simulation.start_date, " + "ad_group_criterion_simulation.end_date, " + "ad_group_criterion_simulation.cpc_bid_point_list.points " + "FROM ad_group_criterion_simulation " + "WHERE ad_group_criterion_simulation.type = CPC_BID " + "AND ad_group_criterion_simulation.ad_group_id = %d", adGroupId); // Constructs the SearchGoogleAdsStreamRequest. SearchGoogleAdsStreamRequest request = SearchGoogleAdsStreamRequest.newBuilder() .setCustomerId(Long.toString(customerId)) .setQuery(query) .build(); // Issues the search stream request. ServerStream<SearchGoogleAdsStreamResponse> stream = googleAdsServiceClient.searchStreamCallable().call(request); // Iterates over all rows in all messages and prints the requested field values for // the ad group criterion CPC bid simulation in each row. for (SearchGoogleAdsStreamResponse response : stream) { for (GoogleAdsRow googleAdsRow : response.getResultsList()) { AdGroupCriterionSimulation simulation = googleAdsRow.getAdGroupCriterionSimulation(); System.out.printf( "Found ad group criterion CPC bid simulation for ad group ID %d, " + "criterion ID %d, start date '%s', end date '%s', and points:%n", simulation.getAdGroupId(), simulation.getCriterionId(), simulation.getStartDate(), simulation.getEndDate()); for (CpcBidSimulationPoint point : simulation.getCpcBidPointList().getPointsList()) { System.out.printf( " bid: %d => clicks: %d, cost: %d, impressions: %d, " + "biddable conversions: %.2f, biddable conversions value: %.2f%s", point.getCpcBidMicros(), point.getClicks(), point.getCostMicros(), point.getImpressions(), point.getBiddableConversions(), point.getBiddableConversions()); } } } } }
C#
public void Run(GoogleAdsClient client, long customerId, long adGroupId) { // Get the GoogleAdsService. GoogleAdsServiceClient googleAdsService = client.GetService(Services.V18.GoogleAdsService); try { // Creates a query that retrieves the ad group criterion CPC bid simulations. string query = $@" SELECT ad_group_criterion_simulation.ad_group_id, ad_group_criterion_simulation.criterion_id, ad_group_criterion_simulation.start_date, ad_group_criterion_simulation.end_date, ad_group_criterion_simulation.cpc_bid_point_list.points FROM ad_group_criterion_simulation WHERE ad_group_criterion_simulation.type = CPC_BID AND ad_group_criterion_simulation.ad_group_id = {adGroupId}"; // Issue a search stream request. googleAdsService.SearchStream(customerId.ToString(), query, delegate (SearchGoogleAdsStreamResponse response) { // Iterates over all rows in all messages and prints the requested field // values for the ad group criterion CPC bid simulation in each row. foreach (GoogleAdsRow googleAdsRow in response.Results) { AdGroupCriterionSimulation simulation = googleAdsRow.AdGroupCriterionSimulation; Console.WriteLine("Found ad group criterion CPC bid simulation for " + $"ad group ID {simulation.AdGroupId}, " + $"criterion ID {simulation.CriterionId}, " + $"start date {simulation.StartDate}, " + $"end date {simulation.EndDate}"); foreach (CpcBidSimulationPoint point in simulation.CpcBidPointList.Points) { Console.WriteLine($"\tbid: {point.CpcBidMicros} => " + $"clicks: {point.Clicks}, " + $"cost: {point.CostMicros}, " + $"impressions: {point.Impressions}, " + $"biddable conversions: {point.BiddableConversions}, " + "biddable conversions value: " + $"{point.BiddableConversionsValue}"); } Console.WriteLine(); } } ); }
PHP
public static function runExample( GoogleAdsClient $googleAdsClient, int $customerId, int $adGroupId ) { $googleAdsServiceClient = $googleAdsClient->getGoogleAdsServiceClient(); // Creates a query that retrieves the ad group criterion CPC bid simulations. $query = sprintf( 'SELECT ad_group_criterion_simulation.ad_group_id, ' . 'ad_group_criterion_simulation.criterion_id, ' . 'ad_group_criterion_simulation.start_date, ' . 'ad_group_criterion_simulation.end_date, ' . 'ad_group_criterion_simulation.cpc_bid_point_list.points ' . 'FROM ad_group_criterion_simulation ' . 'WHERE ad_group_criterion_simulation.type = CPC_BID ' . 'AND ad_group_criterion_simulation.ad_group_id = %d', $adGroupId ); // Issues a search stream request. /** @var GoogleAdsServerStreamDecorator $stream */ $stream = $googleAdsServiceClient->searchStream( SearchGoogleAdsStreamRequest::build($customerId, $query) ); // Iterates over all rows in all messages and prints the requested field values for // the ad group criterion CPC bid simulation in each row. foreach ($stream->iterateAllElements() as $googleAdsRow) { /** @var GoogleAdsRow $googleAdsRow */ $simulation = $googleAdsRow->getAdGroupCriterionSimulation(); printf( 'Found ad group criterion CPC bid simulation for ad group ID %d, ' . 'criterion ID %d, start date "%s", end date "%s", and points:%s', $simulation->getAdGroupId(), $simulation->getCriterionId(), $simulation->getStartDate(), $simulation->getEndDate(), PHP_EOL ); foreach ($simulation->getCpcBidPointList()->getPoints() as $point) { /** @var CpcBidSimulationPoint $point */ printf( ' bid: %d => clicks: %d, cost: %d, impressions: %d, ' . 'biddable conversions: %.2f, biddable conversions value: %.2f%s', $point->getCpcBidMicros(), $point->getClicks(), $point->getCostMicros(), $point->getImpressions(), $point->getBiddableConversions(), $point->getBiddableConversionsValue(), PHP_EOL ); } print PHP_EOL; } }
Python
def main(client, customer_id, ad_group_id): googleads_service = client.get_service("GoogleAdsService") query = f""" SELECT ad_group_criterion_simulation.ad_group_id, ad_group_criterion_simulation.criterion_id, ad_group_criterion_simulation.start_date, ad_group_criterion_simulation.end_date, ad_group_criterion_simulation.cpc_bid_point_list.points FROM ad_group_criterion_simulation WHERE ad_group_criterion_simulation.type = CPC_BID AND ad_group_criterion_simulation.ad_group_id = {ad_group_id}""" # Issues a search request using streaming. stream = googleads_service.search_stream( customer_id=customer_id, query=query ) # Iterates over all rows in all messages and prints the requested field # values for the ad group criterion CPC bid simulation in each row. for batch in stream: for row in batch.results: simulation = row.ad_group_criterion_simulation print( "found ad group criterion CPC bid simulation for " f"ad group ID {simulation.ad_group_id}, " f"criterion ID {simulation.criterion_id}, " f"start date {simulation.start_date}, " f"end date {simulation.end_date}" ) for point in simulation.cpc_bid_point_list.points: print( f"\tbid: {point.cpc_bid_micros} => " f"clicks: {point.clicks}", f"cost: {point.cost_micros}, " f"impressions: {point.impressions}," "biddable conversions: " f"{point.biddable_conversions}," f"biddable conversions value: " f"{point.biddable_conversions_value}", ) print()
Ruby
def get_ad_group_criterion_cpc_bid_simulations(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 query = <<~QUERY SELECT ad_group_criterion_simulation.ad_group_id, ad_group_criterion_simulation.criterion_id, ad_group_criterion_simulation.start_date, ad_group_criterion_simulation.end_date, ad_group_criterion_simulation.cpc_bid_point_list.points FROM ad_group_criterion_simulation WHERE ad_group_criterion_simulation.type = CPC_BID AND ad_group_criterion_simulation.ad_group_id = #{ad_group_id} QUERY responses = client.service.google_ads.search_stream( customer_id: customer_id, query: query, ) responses.each do |response| response.results.each do |row| simulation = row.ad_group_criterion_simulation puts "Found ad group criterion CPC bid simulation for " \ "ad group ID #{simulation.ad_group_id}, " \ "criterion ID #{simulation.criterion_id}, " \ "start date '#{simulation.start_date}', " \ "end date '#{simulation.end_date}', and points:" simulation.cpc_bid_point_list.points.each do |point| puts " bid: #{point.cpc_bid_micros} => " \ "clicks: #{point.clicks}, " \ "cost: #{point.cost_micros}, " \ "impressions: #{point.impressions}, " \ "biddable conversions: #{point.biddable_conversions.round(2)}, " \ "biddable conversions value: #{point.biddable_conversions_value.round(2)}" end end end end
Perl
sub get_ad_group_criterion_cpc_bid_simulations { my ($api_client, $customer_id, $ad_group_id) = @_; # Create a query that retrieves the ad group criterion CPC bid simulations. my $search_query = "SELECT ad_group_criterion_simulation.ad_group_id, " . "ad_group_criterion_simulation.criterion_id, " . "ad_group_criterion_simulation.start_date, " . "ad_group_criterion_simulation.end_date, " . "ad_group_criterion_simulation.cpc_bid_point_list.points " . "FROM ad_group_criterion_simulation " . "WHERE ad_group_criterion_simulation.type = CPC_BID " . "AND ad_group_criterion_simulation.ad_group_id = $ad_group_id"; my $search_stream_request = Google::Ads::GoogleAds::V18::Services::GoogleAdsService::SearchGoogleAdsStreamRequest ->new({ customerId => $customer_id, query => $search_query }); # 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 => $search_stream_request }); # Issue a search stream request, iterate over all rows in all messages and # print the requested field values for the ad group criterion CPC bid # simulation in each row. $search_stream_handler->process_contents( sub { my $google_ads_row = shift; my $simulation = $google_ads_row->{adGroupCriterionSimulation}; printf "Found ad group criterion CPC bid simulation for ad group ID %d, " . "criterion ID %d, start date '%s', end date '%s', and points:\n", $simulation->{adGroupId}, $simulation->{criterionId}, $simulation->{startDate}, $simulation->{endDate}; foreach my $point (@{$simulation->{cpcBidPointList}{points}}) { printf " bid: %d => clicks: %d, cost: %d, impressions: %d, " . "biddable conversions: %.2f, biddable conversions value: %.2f\n", $point->{cpcBidMicros}, $point->{clicks}, $point->{costMicros}, $point->{impressions}, $point->{biddableConversions}, $point->{biddableConversionsValue}; } }); return 1; }