Una simulazione di offerta contiene dati di simulazione e informazioni sull'intervallo di tempo, sul tipo di dati di simulazione e sulla campagna, sul gruppo di annunci, sul criterio del gruppo di annunci o sulla strategia di offerta a cui si applica. I dati della simulazione sono una sequenza di punti di simulazione che fornisce un istogramma del rendimento previsto con offerte, target o budget diversi durante il periodo di tempo specificato. Le informazioni fornite da un punto di simulazione dipendono dal tipo di dati di simulazione.
Puoi recuperare qualsiasi simulazione di offerta con una query Google Ads Query Language selezionando il campo di dati di simulazione appropriato (tipo di dati di simulazione) dalla risorsa corrispondente (livello di offerta).
| Livello di offerta e risorsa | SimulationType |
Campo dati di simulazione | Tipo di punto di simulazione |
|---|---|---|---|
| Gruppo di annunci |
|
|
|
| Ad Group Criterion |
|
|
|
| Strategia di offerta (portafoglio) |
|
||
| Campagna |
|
|
Metodo di modifica della simulazione scalata nelle simulazioni delle campagne
Ogni risorsa di simulazione include un campo modification_method di tipo
SimulationModificationMethod che indica
come vengono applicati i valori simulati (UNIFORM, DEFAULT o SCALING). Mentre
le simulazioni UNIFORM e DEFAULT compilano microimporti espliciti su ogni
punto di simulazione (ad esempio cpc_bid_micros o target_cpa_micros),
le simulazioni a livello di campagna per le campagne sulla rete di ricerca supportano anche un
metodo di modifica SCALING per le simulazioni CPC_BID e
TARGET_CPA:
- Quando
CampaignSimulation.typeèCPC_BIDemodification_methodèSCALING, ogniCpcBidSimulationPointcompilacpc_bid_scaling_modifier(anzichécpc_bid_micros) per mostrare cosa succede se tutte le offerte CPC della campagna (sia le offerte CPC predefinite del gruppo di annunci sia le offerte CPC a livello di criterio) vengono scalate in base a questo modificatore. Ad esempio, un modificatore di scalabilità pari a2.0mostra cosa succede se tutte le offerte CPC della campagna vengono raddoppiate. - Quando
CampaignSimulation.typeèTARGET_CPAemodification_methodèSCALING, ogniTargetCpaSimulationPointcompilatarget_cpa_scaling_modifier(anzichétarget_cpa_micros) per mostrare cosa accade se il CPA target della campagna e tutti i CPA target dei gruppi di annunci nella campagna vengono scalati in base a questo modificatore.
Per saperne di più, consulta Stima i risultati con i simulatori di offerta, budget e target.
Esempio di codice: recupera le simulazioni di offerta per i criteri del gruppo di annunci
L'esempio seguente mostra come recuperare e stampare tutte le simulazioni di offerta CPC
(CPC_BID) disponibili per i criteri in un determinato gruppo di annunci
filtrando ad_group_criterion_simulation su ad_group_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.V26.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: GoogleAdsClient, customer_id: str, ad_group_id: str): googleads_service: GoogleAdsServiceClient = 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: Iterable[SearchGoogleAdsStreamResponse] = ( 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. batch: SearchGoogleAdsStreamResponse for batch in stream: row: GoogleAdsRow for row in batch.results: simulation: AdGroupCriterionSimulation = ( 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}" ) point: CpcBidSimulationPoint 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::V26::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; }