Recuperare le simulazioni di offerta

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 di simulazione sono una sequenza di punti di simulazione che fornisce un istogramma del rendimento previsto con offerte, target o budget diversi durante l'intervallo 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 del linguaggio di query di Google Ads selezionando il campo dei dati di simulazione appropriato (tipo di dati di simulazione) dalla risorsa corrispondente (livello di offerta).

Livello di offerta e risorsa SimulationType Campo dei dati di simulazione Tipo di punto di simulazione
Gruppo di annunci

ad_group_simulation

CPC_BID

CPV_BID

TARGET_CPA

TARGET_ROAS

ad_group_simulation.cpc_bid_point_list.points

ad_group_simulation.cpv_bid_point_list.points

ad_group_simulation.target_cpa_point_list.points

ad_group_simulation.target_roas_point_list.points

CpcBidSimulationPoint

CpvBidSimulationPoint

TargetCpaSimulationPoint

TargetRoasSimulationPoint

Criterio del gruppo di annunci

ad_group_criterion_simulation

CPC_BID

PERCENT_CPC_BID

ad_group_criterion_simulation.cpc_bid_point_list.points

ad_group_criterion_simulation.percent_cpc_bid_point_list.points

CpcBidSimulationPoint

PercentCpcBidSimulationPoint

Strategia di offerta (portfolio)

bidding_strategy_simulation

TARGET_CPA

TARGET_ROAS

bidding_strategy_simulation.target_cpa_point_list.points

bidding_strategy_simulation.target_roas_point_list.points

TargetCpaSimulationPoint

TargetRoasSimulationPoint

Campagna

campaign_simulation

BUDGET

CPC_BID

TARGET_CPA

TARGET_IMPRESSION_SHARE

TARGET_ROAS

campaign_simulation.budget_point_list.points

campaign_simulation.cpc_bid_point_list.points

campaign_simulation.target_cpa_point_list.points

campaign_simulation.target_impression_share_point_list.points

campaign_simulation.target_roas_point_list.points

BudgetSimulationPoint

CpcBidSimulationPoint

TargetCpaSimulationPoint

TargetImpressionShareSimulationPoint

TargetRoasSimulationPoint

Metodo di modifica della simulazione scalata nelle simulazioni di 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 inseriscono importi micro espliciti in 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 SCALING metodo di modifica sia per le simulazioni CPC_BID sia per quelle TARGET_CPA:

  • Quando CampaignSimulation.type è CPC_BID e modification_method è SCALING, ogni CpcBidSimulationPoint inserisce cpc_bid_scaling_modifier (anziché cpc_bid_micros) per mostrare cosa succede se tutte le offerte CPC nella 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à di 2.0 mostra cosa succede se tutte le offerte CPC nella campagna vengono raddoppiate.
  • Quando CampaignSimulation.type è TARGET_CPA e modification_method è SCALING, ogni TargetCpaSimulationPoint inserisce target_cpa_scaling_modifier (anziché target_cpa_micros) per mostrare cosa succede se il CPA target della campagna e tutti i CPA target del gruppo di annunci nella campagna vengono scalati in base a questo modificatore.

Per ulteriori informazioni, consulta Stimare i risultati con i simulatori di offerta, budget e target simulators.

Esempio di codice: recuperare 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 in base a 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;
}
      

curl