بازیابی شبیه‌سازی‌های قیمت پیشنهادی

شبیه‌سازی پیشنهاد قیمت شامل داده‌های شبیه‌سازی و اطلاعاتی درباره محدوده زمانی، نوع داده‌های شبیه‌سازی، و پویش، گروه آگهی، معیار گروه آگهی، یا استراتژی پیشنهاد قیمتی است که بر آن اعمال می‌شود. داده‌های شبیه‌سازی عبارت است از توالی نقاط شبیه‌سازی که بافت‌نگاشت عملکرد پیش‌بینی‌شده را با پیشنهادهای قیمت، هدف‌ها، یا بودجه‌های مختلف در چارچوب زمانی معین ارائه می‌دهد. اطلاعات ارائه‌شده توسط نقطه شبیه‌سازی به نوع داده‌های شبیه‌سازی بستگی دارد.

با انتخاب فیلد داده‌های شبیه‌سازی مناسب (نوع داده‌های شبیه‌سازی) از منبع مربوطه (سطح قیمت پیشنهادی)، می‌توانید هر شبیه‌سازی قیمت پیشنهادی را با پُرسمان «زبان پُرسمان Google Ads» بازیابی کنید.

به اسناد هر نوع منبع مراجعه کنید.
سطح پیشنهاد قیمت و منبع SimulationType فیلد داده شبیه‌سازی نوع نقطه شبیه‌سازی
گروه آگهی

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

معیار گروه آگهی

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

استراتژی پیشنهاد قیمت (سبد سهام)

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

پویش

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

روش اصلاح شبیه‌سازی مقیاس‌بندی‌شده در شبیه‌سازی‌های پویش

هر منبع شبیه‌سازی شامل فیلد modification_method از نوع SimulationModificationMethod است که نشان می‌دهد مقادیر شبیه‌سازی‌شده چگونه اعمال می‌شوند (UNIFORM، DEFAULT، یا SCALING). درحالی‌که شبیه‌سازی‌های UNIFORM و DEFAULT مقادیر میکرو صریح را در هر نقطه شبیه‌سازی (مثل cpc_bid_micros یا target_cpa_micros) تکمیل می‌کنند، شبیه‌سازی‌های سطح پویش برای پویش‌های «جستجو» نیز از روش اصلاح SCALING برای شبیه‌سازی‌های CPC_BID و TARGET_CPA پشتیبانی می‌کنند:

  • وقتی CampaignSimulation.type CPC_BID است و modification_method SCALING است، هر CpcBidSimulationPoint cpc_bid_scaling_modifier را پر می‌کند (به‌جای cpc_bid_micros) تا نشان دهد اگر همه قیمت‌های پیشنهادی کلیک‌بها در پویش (هم قیمت‌های پیشنهادی کلیک‌بهای پیش‌فرض گروه آگهی و هم قیمت‌های پیشنهادی کلیک‌بهای سطح معیار) با آن اصلاح‌کننده مقیاس‌بندی شوند، چه اتفاقی می‌افتد. برای مثال، اصلاح‌کننده مقیاس‌بندی 2.0 نشان می‌دهد اگر همه پیشنهادهای قیمت کلیک‌بها در پویش دوبرابر شود چه اتفاقی می‌افتد.
  • وقتی CampaignSimulation.type TARGET_CPA و modification_method SCALING باشد، هریک از TargetCpaSimulationPoint با target_cpa_scaling_modifier (به‌جای target_cpa_micros) تکمیل می‌شود تا نشان دهد اگر «کنش‌بهای هدف پویش» و همه «کنش‌بهای هدف گروه آگهی» در پویش با این اصلاح‌کننده مقیاس‌بندی شوند چه اتفاقی می‌افتد.

برای اطلاعات بیشتر، برآورد نتایج با شبیه‌سازهای پیشنهاد قیمت، بودجه، و هدف را ببینید.

مثال کد: بازیابی شبیه‌سازی‌های پیشنهاد قیمت معیار گروه آگهی

مثال زیر نشان می‌دهد که چگونه با فیلتر کردن ad_group_criterion_simulation در ad_group_id، همه شبیه‌سازی‌های پیشنهاد قیمت «کلیک‌بها» (CPC_BID) دردسترس برای معیارهای گروه آگهی معینی را بازیابی و چاپ کنید.

جاوا

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
      

پرل

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;
}
      

فر کردن