شبیهسازی پیشنهاد قیمت شامل دادههای شبیهسازی و اطلاعاتی درباره محدوده زمانی، نوع دادههای شبیهسازی، و پویش، گروه آگهی، معیار گروه آگهی، یا استراتژی پیشنهاد قیمتی است که بر آن اعمال میشود. دادههای شبیهسازی عبارت است از توالی نقاط شبیهسازی که بافتنگاشت عملکرد پیشبینیشده را با پیشنهادهای قیمت، هدفها، یا بودجههای مختلف در چارچوب زمانی معین ارائه میدهد. اطلاعات ارائهشده توسط نقطه شبیهسازی به نوع دادههای شبیهسازی بستگی دارد.
با انتخاب فیلد دادههای شبیهسازی مناسب (نوع دادههای شبیهسازی) از منبع مربوطه (سطح قیمت پیشنهادی)، میتوانید هر شبیهسازی قیمت پیشنهادی را با پُرسمان «زبان پُرسمان Google Ads» بازیابی کنید.
به اسناد هر نوع منبع مراجعه کنید.| سطح پیشنهاد قیمت و منبع | SimulationType |
فیلد داده شبیهسازی | نوع نقطه شبیهسازی |
|---|---|---|---|
| گروه آگهی |
|
|
|
| معیار گروه آگهی |
|
|
|
| استراتژی پیشنهاد قیمت (سبد سهام) |
|
||
| پویش |
|
|
روش اصلاح شبیهسازی مقیاسبندیشده در شبیهسازیهای پویش
هر منبع شبیهسازی شامل فیلد modification_method از نوع
SimulationModificationMethod است که نشان میدهد
مقادیر شبیهسازیشده چگونه اعمال میشوند (UNIFORM، DEFAULT، یا SCALING). درحالیکه
شبیهسازیهای UNIFORM و DEFAULT مقادیر میکرو صریح را در هر نقطه
شبیهسازی (مثل cpc_bid_micros یا target_cpa_micros) تکمیل میکنند،
شبیهسازیهای سطح پویش برای پویشهای «جستجو» نیز از روش اصلاح
SCALING برای شبیهسازیهای CPC_BID و
TARGET_CPA پشتیبانی میکنند:
- وقتی
CampaignSimulation.typeCPC_BIDاست وmodification_methodSCALINGاست، هرCpcBidSimulationPointcpc_bid_scaling_modifierرا پر میکند (بهجایcpc_bid_micros) تا نشان دهد اگر همه قیمتهای پیشنهادی کلیکبها در پویش (هم قیمتهای پیشنهادی کلیکبهای پیشفرض گروه آگهی و هم قیمتهای پیشنهادی کلیکبهای سطح معیار) با آن اصلاحکننده مقیاسبندی شوند، چه اتفاقی میافتد. برای مثال، اصلاحکننده مقیاسبندی2.0نشان میدهد اگر همه پیشنهادهای قیمت کلیکبها در پویش دوبرابر شود چه اتفاقی میافتد. - وقتی
CampaignSimulation.typeTARGET_CPAوmodification_methodSCALINGباشد، هریک از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; }