دو روش اصلی برای گزارشدهی درباره آزمایشهای استاندارد A/B وجود دارد:
- گزارشدهی آزمایش مستقیم: منبع
experimentرا برای سنجهها پُرسمان کنید. این گزینه سنجههای مربوط به شاخههای کنترل و درمان را در یک پاسخ واحد، همراه با دادههای مقایسه آماری مانند بهبود و مقادیر p ارائه میدهد. این تنها راه گزارش دادن درباره آزمایشهای درونپویشی است. - گزارشدهی پویش: منبع
campaignرا برای سنجهها پُرسمان کنید و ازcampaign.experiment_typeبرای تشخیص پویشهای پایه و آزمایشی استفاده کنید. این گزینه فقط برای آزمایشهایی دردسترس است که از پویشهای کنترل و آزمایش جداگانه استفاده میکنند، مثل آزمایشهای مدیریتشده توسط سیستم.
برای آزمایشهای استاندارد، این راهنما عمدتاً بر گزارشدهی آزمایش مستقیم تمرکز دارد که با همه انواع آزمایشهایی که از گزارشدهی پشتیبانی میکنند سازگار است. برای مطالعات اندازهگیری بهینهگر، میتوانید بااستفاده از منابع اختصاصی اندازهگیری بهینهگر، درباره بهینهگر نمانام، بهینهگر تبدیل، و بهینهگر جستجو نیز گزارش دهید.
گزارشدهی آزمایش مستقیم
میتوانید مستقیماً از منبع experiment پرسمان کنید تا سنجههای عملکرد
و مقایسههای آماری بین بازوهای کنترل و درمان را بازیابی کنید.
سنجهها و معناداری آماری
برای سنجههای اصلی مانند کلیکها، ظهورها، هزینه، تبدیلها، و مقدار تبدیل، منبع experiment هم سنجههای درمان (برای مثال، metrics.clicks) و هم سنجههای کنترل (برای مثال، metrics.control_clicks) را در همان ردیف ارائه میدهد.
همچنین فیلدهایی را برای کمک به شما در ارزیابی معناداری آماری هرگونه تفاوت بین شاخهها ارائه میدهد:
metrics.*_p_value: احتمال اینکه نتایج مشاهدهشده درصورت عدم تأثیر واقعی آزمایش بر سنجه رخ دهد. مقدار p کمتر نشاندهنده معناداری آماری بالاتر است.metrics.*_point_estimate: درصد تخمینی بهینهگر (مثبت یا منفی) در سنجه ارائهشده برای بازوی درمان درمقایسه با بازوی کنترل. این مقدار بههمراهmargin_of_errorبازه اطمینانی را با سطح اطمینان تجویزشده برای تفاوت تخمینزدهشده توصیف میکند. مقدار تخمینی (تیمار / کنترل - ۱) است. برآورد نقطهای مرکز بازه اطمینان است.-
metrics.*_margin_of_error: شعاع بازه اطمینان که درpoint_estimateمتمرکز است. این مقدار برای سطح اطمینان تجویزشدهای محاسبه میشود که به نوع آزمایش بستگی دارد.
فیلدهای سنجه اصلی زیر در منبع experiment پشتیبانی میشوند،
ازجمله مقدار گروه تحت آزمایش، مقدار گروه کنترل، و فیلدهای آماری
که قبلاً فهرست شدهاند:
clicksimpressionscost_microsconversionscost_per_conversionconversion_valueconversion_value_per_cost
بهطور خاص برای تبدیلها، فیلدهای آماری ازطریق فیلدهای absolute_change زیر دردسترس هستند، نه بهعنوان مقادیر نسبی:
metrics.conversions_absolute_change_p_value: مقدار p برای فرضیه صفر که آزمایش هیچ تأثیری بر تغییر مطلق تبدیلها ندارد. محدوده از ۰ تا ۱.metrics.conversions_absolute_change_point_estimate: تخمین نقطهای هنگام تخمین تأثیر آزمایش بر تغییر مطلق تبدیلها.metrics.conversions_absolute_change_margin_of_error: حاشیه خطا هنگام تخمین تأثیر آزمایش بر تغییر مطلق تبدیلها.
برای کمک در ساختن پرسمانهای معتبر برای منبع experiment، از ابزار
پرسمانساز Google Ads استفاده کنید.
پُرسمان نمونه
پرسمان GAQL زیر سنجههای کلیدی را برای یک آزمایش بازیابی میکند:
SELECT
experiment.experiment_id,
experiment.name,
experiment.type,
metrics.clicks,
metrics.control_clicks,
metrics.clicks_point_estimate,
metrics.clicks_margin_of_error,
metrics.clicks_p_value,
metrics.conversions,
metrics.control_conversions,
metrics.conversions_absolute_change_point_estimate,
metrics.conversions_absolute_change_margin_of_error,
metrics.conversions_absolute_change_p_value
FROM experiment
WHERE experiment.experiment_id = EXPERIMENT_ID
تفسیر نتایج
میتوانید از فیلدهای مقدار p، برآورد نقطهای، و حاشیه خطا استفاده کنید تا تعیین کنید
آیا آزمایشتان نتایج معنادار آماری داشته است یا نه. برای مثال،
اگر conversions_absolute_change_p_value کمتر از آستانه انتخابی شما باشد (مثلاً
0.05 برای اطمینان ۹۵٪) و conversions_absolute_change_point_estimate -
conversions_absolute_change_margin_of_error بیشتر از صفر باشد،
شاخه درمان ازنظر تبدیلها عملکرد بهطور قابلتوجهی بهتری نسبت به شاخه کنترل دارد.
در اینجا یک قطعه کد Python آورده شده است که نحوه ارزیابی نتایج را براساس مقدار p و برآوردهای بهبود نشان میدهد:
جاوا
private void evaluateExperiment( GoogleAdsClient googleAdsClient, long customerId, GoogleAdsRow row) { Metrics metrics = row.getMetrics(); String experimentResourceName = row.getExperiment().getResourceName(); // 1. Evaluate conversion success as a primary success signal if available. // - Point Estimate: Represents the estimated average lift or difference in conversions. // - Margin of Error: Outlines the confidence interval bounds. Note that the margin_of_error // provided by the API is calculated for a preset confidence level which is set based on the // experiment type. // - Lower Bound: (Point Estimate - Margin of Error). If this value is above 0, // we have statistical significance that performance has improved. double convPValue = metrics.getConversionsAbsoluteChangePValue(); double convLift = metrics.getConversionsAbsoluteChangePointEstimate(); double convError = metrics.getConversionsAbsoluteChangeMarginOfError(); double convLowerBound = convLift - convError; if (convPValue <= P_VALUE_THRESHOLD) { if (convLowerBound > 0) { System.out.printf( "Significant Success: Conversions increased. Even at the lower bound, the lift is %.2f." + " Promoting changes.%n", convLowerBound); promoteExperiment(googleAdsClient, customerId, experimentResourceName); return; } else if ((convLift + convError) < 0) { System.out.printf( "Significant Decline: Even the upper bound (%.2f) is below zero. Ending experiment.%n", convLift + convError); endExperiment(googleAdsClient, customerId, experimentResourceName); return; } } // 2. Fall back to evaluating click metrics if conversions are inconclusive. double clickPValue = metrics.getClicksPValue(); double clickLift = metrics.getClicksPointEstimate(); double clickError = metrics.getClicksMarginOfError(); double clickLowerBound = clickLift - clickError; if (clickPValue <= P_VALUE_THRESHOLD && clickLowerBound > 0) { System.out.printf("Click volume is significantly up (+%.1f%%).%n", clickLift * 100); // Graduation is only supported for separate campaign experiments, not // intra-campaign experiments where there is no separate treatment campaign. ExperimentType experimentType = row.getExperiment().getType(); if (experimentType != ExperimentType.ADOPT_BROAD_MATCH_KEYWORDS && experimentType != ExperimentType.ADOPT_AI_MAX) { System.out.println("Graduating treatment campaign for further manual analysis."); graduateExperiment(googleAdsClient, customerId, experimentResourceName); } else { System.out.println( "Intra-campaign trial detected: graduation is not supported. Continuing to run the" + " experiment to gather more conversion data."); } } else { // 3. Print status if no action was taken. System.out.printf( "Inconclusive: No significant lift in Conversions (p=%.2f) or Clicks (p=%.2f). Current" + " estimated lift: %.2f +/- %.2f. Allowing the experiment to continue running.%n", convPValue, clickPValue, convLift, convError); } }
C#
private static void EvaluateExperiment(GoogleAdsClient client, long customerId, GoogleAdsRow row) { // This function evaluates performance metrics and immediately takes action // to update the experiment's status (promote, end, or graduate) if // statistical significance thresholds are met. var metrics = row.Metrics; string experimentResourceName = row.Experiment.ResourceName; bool hasConvMetrics = metrics.HasConversionsAbsoluteChangePValue && metrics.HasConversionsAbsoluteChangePointEstimate && metrics.HasConversionsAbsoluteChangeMarginOfError; bool hasClickMetrics = metrics.HasClicksPValue && metrics.HasClicksPointEstimate && metrics.HasClicksMarginOfError; // 1. Evaluate conversion success as a primary success signal if available. // - Point Estimate: Represents the estimated average lift or difference in conversions. // - Margin of Error: Outlines the confidence interval bounds. Note that the margin_of_error // provided by the API is calculated for a preset confidence level which is set based on // the experiment type. // - Lower Bound: (Point Estimate - Margin of Error). If this value is above 0, // we have statistical significance that performance has improved. if (hasConvMetrics) { double convPValue = metrics.ConversionsAbsoluteChangePValue; double convLift = metrics.ConversionsAbsoluteChangePointEstimate; double convError = metrics.ConversionsAbsoluteChangeMarginOfError; double convLowerBound = convLift - convError; if (convPValue <= P_VALUE_THRESHOLD) { if (convLowerBound > 0) { Console.WriteLine( $"Significant Success: Conversions increased. Even at the lower" + $" bound, the lift is {convLowerBound:F2}. Promoting changes."); PromoteExperiment(client, customerId, experimentResourceName); return; } else if ((convLift + convError) < 0) { Console.WriteLine( $"Significant Decline: Even the upper bound ({convLift + convError:F2}) " + $"is below zero. Ending experiment."); EndExperiment(client, customerId, experimentResourceName); return; } } } // 2. Evaluate click volume as a secondary signal. // This is helpful as an early indicator or for lower-volume accounts. if (hasClickMetrics) { double clickPValue = metrics.ClicksPValue; double clickLift = metrics.ClicksPointEstimate; double clickError = metrics.ClicksMarginOfError; double clickLowerBound = clickLift - clickError; if (clickPValue <= P_VALUE_THRESHOLD && clickLowerBound > 0) { // We have a directional winner: high confidence in more traffic, // but not enough data to confirm conversion impact yet. Console.WriteLine( $"Click volume is significantly up (+{clickLift * 100:F1}%)."); // Graduation is only supported for separate campaign experiments, not // intra-campaign experiments where there is no separate treatment campaign. if (row.Experiment.Type != ExperimentType.AdoptBroadMatchKeywords && row.Experiment.Type != ExperimentType.AdoptAiMax) { Console.WriteLine("Graduating treatment campaign for further manual analysis."); GraduateExperiment(client, customerId, experimentResourceName); } else { Console.WriteLine( "Intra-campaign trial detected: graduation is not supported. " + "Continuing to run the experiment to gather more conversion data."); } return; } } // 3. Print status if no action was taken. if (hasConvMetrics || hasClickMetrics) { string convStatus = hasConvMetrics ? $"Conversions (p={metrics.ConversionsAbsoluteChangePValue:F2}, " + $"lift={metrics.ConversionsAbsoluteChangePointEstimate:F2} +/- " + $"{metrics.ConversionsAbsoluteChangeMarginOfError:F2})" : "Conversions (not populated)"; string clickStatus = hasClickMetrics ? $"Clicks (p={metrics.ClicksPValue:F2}, " + $"lift={metrics.ClicksPointEstimate:F2} +/- " + $"{metrics.ClicksMarginOfError:F2})" : "Clicks (not populated)"; Console.WriteLine( $"Inconclusive: No significant action taken. {convStatus}, {clickStatus}. " + "Allowing the experiment to continue running."); } else { Console.WriteLine( "Conversion and click performance metrics are not yet populated. " + "Allowing the experiment to continue running."); } }
PHP
This example is not yet available in PHP; you can take a look at the other languages.
Python
def evaluate_experiment( client: GoogleAdsClient, customer_id: str, row: GoogleAdsRow ) -> None: """Evaluates the performance of the experiment and updates it accordingly (for example, promotes, ends, or graduates). Checks conversion and click metrics against statistical significance thresholds to determine the appropriate action to take on the experiment. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. row: a GoogleAdsRow containing the experiment and metrics. """ # This function evaluates performance metrics and immediately takes action # to update the experiment's status (promote, end, or graduate) if # statistical significance thresholds are met. metrics = row.metrics experiment_resource_name = row.experiment.resource_name has_conv_metrics = ( "conversions_absolute_change_p_value" in metrics and "conversions_absolute_change_point_estimate" in metrics and "conversions_absolute_change_margin_of_error" in metrics ) has_click_metrics = ( "clicks_p_value" in metrics and "clicks_point_estimate" in metrics and "clicks_margin_of_error" in metrics ) # 1. Evaluate conversion success as a primary success signal if available. # - Point Estimate: Represents the estimated average lift or difference in conversions. # - Margin of Error: Outlines the confidence interval bounds. Note that the margin_of_error provided by the API is calculated for a preset confidence level which is set based on the experiment type. # - Lower Bound: (Point Estimate - Margin of Error). If this value is above 0, # we have statistical significance that performance has improved. if has_conv_metrics: conv_p_value = metrics.conversions_absolute_change_p_value conv_lift = metrics.conversions_absolute_change_point_estimate conv_error = metrics.conversions_absolute_change_margin_of_error conv_lower_bound = conv_lift - conv_error if conv_p_value <= P_VALUE_THRESHOLD: if conv_lower_bound > 0: print( "Significant Success: Conversions increased. Even at the lower" f" bound, the lift is {conv_lower_bound:.2f}. Promoting" " changes." ) promote_experiment( client, customer_id, experiment_resource_name ) return elif (conv_lift + conv_error) < 0: print( "Significant Decline: Even the upper bound" f" ({conv_lift + conv_error:.2f}) is below zero. Ending" " experiment." ) end_experiment(client, customer_id, experiment_resource_name) return # 2. Evaluate click volume as a secondary signal. # This is helpful as an early indicator or for lower-volume accounts. click_p_value = metrics.clicks_p_value click_lift = metrics.clicks_point_estimate click_error = metrics.clicks_margin_of_error click_lower_bound = click_lift - click_error if click_p_value <= P_VALUE_THRESHOLD and click_lower_bound > 0: # We have a directional winner: high confidence in more traffic, # but not enough data to confirm conversion impact yet. print(f"Click volume is significantly up (+{click_lift*100:.1f}%).") # Graduation is only supported for separate campaign experiments, not # intra-campaign experiments where there is no separate treatment campaign. experiment_type_name = row.experiment.type_.name if ( experiment_type_name != "ADOPT_BROAD_MATCH_KEYWORDS" and experiment_type_name != "ADOPT_AI_MAX" ): print( "Graduating treatment campaign for further manual analysis." ) graduate_experiment( client, customer_id, experiment_resource_name ) else: print( "Intra-campaign trial detected: graduation is not supported. " "Continuing to run the experiment to gather more conversion data." ) return # 3. Print status if no action was taken. if has_conv_metrics or has_click_metrics: conv_status = ( f"Conversions (p={metrics.conversions_absolute_change_p_value:.2f}, " f"lift={metrics.conversions_absolute_change_point_estimate:.2f} +/- " f"{metrics.conversions_absolute_change_margin_of_error:.2f})" if has_conv_metrics else "Conversions (not populated)" ) click_status = ( f"Clicks (p={metrics.clicks_p_value:.2f}, " f"lift={metrics.clicks_point_estimate:.2f} +/- " f"{metrics.clicks_margin_of_error:.2f})" if has_click_metrics else "Clicks (not populated)" ) print( f"Inconclusive: No significant action taken. {conv_status}, {click_status}." " Allowing the experiment to continue running." ) else: print( "Conversion and click performance metrics are not yet populated. " "Allowing the experiment to continue running." )
Ruby
def evaluate_experiment(client, customer_id, row) # This function evaluates performance metrics and immediately takes action # to update the experiment's status (promote, end, or graduate) if # statistical significance thresholds are met. metrics = row.metrics experiment_resource_name = row.experiment.resource_name has_conv_metrics = !metrics.nil? && metrics.has_conversions_absolute_change_p_value? && metrics.has_conversions_absolute_change_point_estimate? && metrics.has_conversions_absolute_change_margin_of_error? has_click_metrics = !metrics.nil? && metrics.has_clicks_p_value? && metrics.has_clicks_point_estimate? && metrics.has_clicks_margin_of_error? # 1. Evaluate conversion success as a primary success signal if available. # - Point Estimate: Represents the estimated average lift or difference in conversions. # - Margin of Error: Outlines the confidence interval bounds. Note that the margin_of_error # provided by the API is calculated for a preset confidence level which is set based on the experiment type. # - Lower Bound: (Point Estimate - Margin of Error). If this value is above 0, # we have statistical significance that performance has improved. if has_conv_metrics conv_p_value = metrics.conversions_absolute_change_p_value conv_lift = metrics.conversions_absolute_change_point_estimate conv_error = metrics.conversions_absolute_change_margin_of_error conv_lower_bound = conv_lift - conv_error if conv_p_value <= P_VALUE_THRESHOLD if conv_lower_bound > 0 puts sprintf( "Significant Success: Conversions increased. Even at the lower " \ "bound, the lift is %.2f. Promoting changes.", conv_lower_bound, ) promote_experiment(client, customer_id, experiment_resource_name) return elsif (conv_lift + conv_error) < 0 puts sprintf( "Significant Decline: Even the upper bound (%.2f) is below zero. " \ "Ending experiment.", conv_lift + conv_error, ) end_experiment(client, customer_id, experiment_resource_name) return end end end # 2. Evaluate click volume as a secondary signal. # This is helpful as an early indicator or for lower-volume accounts. if has_click_metrics click_p_value = metrics.clicks_p_value click_lift = metrics.clicks_point_estimate click_error = metrics.clicks_margin_of_error click_lower_bound = click_lift - click_error if click_p_value <= P_VALUE_THRESHOLD && click_lower_bound > 0 # We have a directional winner: high confidence in more traffic, # but not enough data to confirm conversion impact yet. puts sprintf("Click volume is significantly up (+%.1f%%).", click_lift * 100) # Graduation is only supported for separate campaign experiments, not # intra-campaign experiments where there is no separate treatment campaign. experiment_type = row.experiment.type if experiment_type != :ADOPT_BROAD_MATCH_KEYWORDS && experiment_type != :ADOPT_AI_MAX puts "Graduating treatment campaign for further manual analysis." graduate_experiment(client, customer_id, experiment_resource_name) else puts "Intra-campaign trial detected: graduation is not supported. " \ "Continuing to run the experiment to gather more conversion data." end return end end # 3. Print status if no action was taken. if has_conv_metrics || has_click_metrics conv_status = if has_conv_metrics sprintf( "Conversions (p=%.2f, lift=%.2f +/- %.2f)", metrics.conversions_absolute_change_p_value, metrics.conversions_absolute_change_point_estimate, metrics.conversions_absolute_change_margin_of_error, ) else "Conversions (not populated)" end click_status = if has_click_metrics sprintf( "Clicks (p=%.2f, lift=%.2f +/- %.2f)", metrics.clicks_p_value, metrics.clicks_point_estimate, metrics.clicks_margin_of_error, ) else "Clicks (not populated)" end puts "Inconclusive: No significant action taken. #{conv_status}, #{click_status}. " \ "Allowing the experiment to continue running." else puts "Conversion and click performance metrics are not yet populated. " \ "Allowing the experiment to continue running." end end
پرل
This example is not yet available in Perl; you can take a look at the other languages.
curl
مزایای گزارشدهی پویش
گزارشدهی آزمایش مستقیم چندین مزیت نسبت به پُرسمان جداگانه گزارشهای پویش دارد:
- سنجههای متمرکز: سنجههای کنترل و درمان را در یک ردیف بازیابی کنید.
- دادههای اطمینان آماری: مقادیر p، برآوردهای نقطهای، و حاشیههای خطا را ارائه میدهد.
- کارایی: نیاز به پیوستن دستی یا مقایسه نتایج از چندین گزارش را برطرف میکند.
- پشتیبانی درونپویشی: این تنها راه برای مقایسه کنترل دربرابر درمان برای آزمایشهای درونپویشی است، که در آن ترافیک در یک پویش تقسیم میشود.
گزارشدهی پویش
برای آزمایشهایی که کمپینهای درمانی جداگانه ایجاد میکنند (برای مثال،
SEARCH_CUSTOM)، میتوانید منبع campaign را پُرسمان کنید و از
campaign.experiment_type برای شناسایی کمپینهای BASE (کنترل) و EXPERIMENT
(درمان) استفاده کنید. این رویکرد زمانی مفید است که لازم باشد سنجهها را در سطح جزئیتری (مانند گروه آگهی یا کلیدواژه) بخشبندی کنید یا فرادادههای پویش را که در منبع experiment دردسترس نیستند مشاهده کنید. اما برای این کار باید مقایسههای عملکرد و محاسبات آماری را بهصورت دستی انجام دهید.
نمیتوانید از گزارشدهی سطح پویش برای مقایسه شاخهها در آزمایشهای درونپویشی استفاده کنید، زیرا توزیع ترافیک بهصورت داخلی در یک پویش انجام میشود.
پرسوجو کردن campaign برای آزمایش درونپویشی فقط مجموعهای انبوهشی را برمیگرداند.
گزارشدهی «بهینهگر نمانام»
میتوانید بااستفاده از منابع سنجش اختصاصی «بهینهگر نمانام»، مطالعات «بهینهگر نمانام» را در Google Ads API گزارش کنید.
منابع بهینهگر نمانام و نماهای تفکیکشده
منبع LiftMeasurementFlight را برای بازیابی نتایج مطالعه «بهینهگر نمانام» در سطح دسته پرواز، ازجمله محدوده تاریخ دسته پرواز (start_date و end_date) در منطقه زمانی مشتری، پُرسمان کنید.
برای تجزیهوتحلیل سنجههای «بهینهگر نمانام» در ابعاد مختلف بخش، منابع تفکیک مربوطه را پُرسمان کنید:
LiftMeasurementCampaign: تفکیک براساس پویش.LiftMeasurementAgeRange: تفکیک براساس گروه سنی.LiftMeasurementDevice: تفکیک براساس دستگاه.LiftMeasurementGender: تفکیک براساس جنسیت.LiftMeasurementVideo: تفکیک براساس دارایی ویدیویی.
BrandLiftMeasurementType enum نوع اندازهگیری را برای مطالعه مشخص میکند، مانند آگاهی از نمانام یا یادآوری آگهی.
نمونه پُرسمانهای «بهینهگر نمانام»
Because flight metadata and lift statistics reside on separate resources, querying flight details and performance statistics requires separate GAQL queries.
پُرسمان جزئیات پرواز
برای بازیابی فرادادههای یک دوره «بهینهگر نمانام» مانند وضعیت، نوع اندازهگیری، و تاریخهای زمانبندیشده، منبع LiftMeasurementFlight را پُرسمان کنید:
SELECT
lift_measurement_flight.lift_measurement_config_id,
lift_measurement_flight.lift_measurement_flight_id,
lift_measurement_flight.name,
lift_measurement_flight.status,
lift_measurement_flight.lift_type,
lift_measurement_flight.start_date,
lift_measurement_flight.end_date
FROM lift_measurement_flight
WHERE lift_measurement_flight.lift_measurement_config_id = CONFIG_ID
پُرسمان آمار
برای بازیابی سنجههای «بهینهگر نمانام»، منبع تفکیک مناسب (یا پیکربندی کلی مطالعه در LiftMeasurementConfig) را پُرسمان کنید. برای مثال، پُرسمان زیر سنجههای «بهینهگر نمانام» را که براساس پویش از LiftMeasurementCampaign تفکیک شدهاند بازیابی میکند:
SELECT
lift_measurement_campaign.lift_measurement_config_id,
lift_measurement_campaign.campaign,
metrics.absolute_brand_lift,
metrics.relative_brand_lift
FROM lift_measurement_campaign
WHERE lift_measurement_campaign.lift_measurement_config_id = CONFIG_ID
گزارشدهی بهینهگر تبدیل
بااستفاده از گزارشدهی «بهینهگر تبدیل» در Google Ads API، میتوانید تأثیر افزایشی آگهیهایتان را بر تبدیلها اندازهگیری کنید.
پیکربندی و سنجههای «بهینهگر تبدیل»
برای بازیابی پیکربندیهای مطالعه «بهینهگر تبدیل» و دادههای عملکرد، منبع LiftMeasurementConfig را پُرسمان کنید.
این منبع سنجههای «بهینهگر تبدیل» را برای ارزیابی عملکرد افزایشی ارائه میدهد:
metrics.conversion_lift_baseline_conversions: تبدیلهای خط پایه برای مطالعه.metrics.conversion_lift_exposed_conversions: تبدیلهای مشاهدهشده در گروه درمعرض.metrics.incremental_conversions: تبدیلهای افزایشی نسبتدادهشده به آگهیها.metrics.cost_per_incremental_conversion: هزینه بهازای تبدیل فزاینده.metrics.relative_conversion_lift: بهینهگر نسبی در تبدیلها.metrics.conversion_lift_baseline_conversion_value: مقدار تبدیل پایه.metrics.conversion_lift_exposed_conversion_value: ارزش تبدیل در گروه درمعرض.metrics.incremental_conversion_value: ارزش تبدیل افزایشی نسبتدادهشده به آگهیها.metrics.relative_conversion_value_lift: بهینهگر نسبی در ارزش تبدیل.
گزارشدهی «بهینهگر تبدیل» همچنین امکان بخشبندی براساس کنشهای تبدیل و بازیابی جزئیات پویش پیوندشده، جزئیات آزمایش، و اهداف تبدیل را فراهم میکند.
نمونه پُرسمان بهینهگر تبدیل
پرسوجوی GAQL زیر پیکربندیهای «بهینهگر تبدیل» و سنجههای عملکرد کلیدی را بازیابی میکند. توجه داشته باشید که segments.conversion_lift_start_date و
segments.conversion_lift_end_date فیلدهای INT64 هستند که بهصورت عدد صحیح ۸ رقمی بدون نقلقول در قالب YYYYMMDD قالببندی شدهاند (برای مثال، 20260501):
SELECT
lift_measurement_config.lift_measurement_config_id,
segments.conversion_lift_start_date,
segments.conversion_lift_end_date,
segments.conversion_lift_included_conversion_action_types,
metrics.conversion_lift_baseline_conversions,
metrics.conversion_lift_exposed_conversions,
metrics.incremental_conversions,
metrics.cost_per_incremental_conversion,
metrics.relative_conversion_lift,
metrics.incremental_conversion_value,
metrics.relative_conversion_value_lift
FROM lift_measurement_config
WHERE segments.conversion_lift_start_date = YYYYMMDD
AND segments.conversion_lift_end_date = YYYYMMDD
AND lift_measurement_config.lift_measurement_config_id = CONFIG_ID
گزارشدهی «بهینهگر جستجو»
بااستفاده از گزارش «بهینهگر جستجو» در Google Ads API میتوانید افزایش حجم پرسمان جستجوی طبیعی را که از پویشهای آگهی شما ناشی میشود اندازهگیری کنید. «بهینهگر جستجو» تفاوت در رفتار جستجو برای نمانام یا محصولات شما را بین کاربرانی که درمعرض آگهیهایتان قرار گرفتهاند و گروه شاهد که درمعرض قرار نگرفتهاند بهصورت کمی بیان میکند.
منابع و بخشبندی «بهینهگر جستجو»
منبع SearchLiftKeywordBundle را پرسمان کنید تا
جزئیات مربوط به دستههای کلیدواژه پیکربندیشده برای مطالعات «بهینهگر جستجو» را بازیابی کنید.
SearchLiftKeywordBundle در API فقط خواندنی است (همه فیلدها
OUTPUT_ONLY هستند)، و دستههای کلیدواژه در واسط کاربری Google Ads یا توسط
نمایندگان Google / «راهحلهای جهانی محصول» (GPS) پیکربندی میشوند. فیلدهای قابلپرسوجو در GAQL
عبارتاند از resource_name، search_lift_keyword_bundle_id، source
(SearchLiftMatchingInfoSource)، و status
(SearchLiftKeywordBundleStatus) (فیلد تکراری keywords
در پُرسمانهای GAQL قابلانتخاب نیست).
برای بازیابی سنجههای «بهینهگر جستجو» و پیکربندیهای کلی مطالعه، منبع LiftMeasurementConfig را پُرسمان کنید.
میتوانید عملکرد «بهینهگر جستجو» را بااستفاده از ابعاد زیر بخشبندی کنید:
segments.search_lift_keyword_bundle: بخشبندی براساس نام منبع دسته کلیدواژه. سازگار باsegments.search_property،segments.date، و بخشهای جمعیتشناختی (segments.device،segments.age_range، وsegments.gender).segments.search_property: بخشبندی براساس دارایی جستجویی که جستجو در آن انجام شده است، که باSearchLiftSearchPropertyتعریف میشود (مانند «جستجوی Google» یا YouTube). توجه داشته باشید کهsegments.search_propertyفقط باsegments.search_lift_keyword_bundleوsegments.dateسازگار است؛ ترکیب کردنsegments.search_propertyبا بخشهای جمعیتشناختی (segments.device،segments.age_range، یاsegments.gender) پشتیبانی نمیشود و اعتبارسنجی پُرسمان میانای برنامهسازی کاربردی را ناموفق میکند.- بخشهای جمعیتشناختی و تاریخ:
segments.device،segments.age_range،segments.gender، وsegments.date.
سنجههای بهینهگر جستجو
منبع LiftMeasurementConfig سنجههای «بهینهگر جستجو» را برای ارزیابی تغییرات رفتار جستجو ارائه میدهد:
metrics.relative_search_lift: تفاوت در حجم پرسمان جستجو بین گروههای درمعرضبوده و شاهد، که بهصورت کسری از پرسمانهای جستجو در گروه شاهد بیان میشود.metrics.relative_search_lift_p90_lower_boundوmetrics.relative_search_lift_p90_upper_bound: حدود پایین و بالای بازه اطمینان ۹۰٪ برای بهینهگر جستجوی نسبی.metrics.incremental_searches_p_value: مقدار p برای جستجوهای افزایشی، که نشاندهنده احتمال آماری است که افزایش مشاهدهشده در پرسمانهای جستجو بهطور تصادفی رخ داده است.metrics.search_lift_cost_micros: هزینه کل (به میکرو) ظهورهای آگهی ارائهشده برای این بخش اندازهگیری «بهینهگر جستجو».metrics.search_lift_impressions: تعداد کل ظهورهای آگهی ارائهشده برای این بخش اندازهگیری «بهینهگر جستجو».
سنجههای افزایشی نرمالشده زیر—همراه با حدود بالا و پایین بازه اطمینان ۹۰٪ مربوطه (*_p90_lower_bound و *_p90_upper_bound)—وقتی بهینهگر ازنظر آماری مثبت باشد گزارش میشوند:
metrics.normalized_incremental_searches(باmetrics.normalized_incremental_searches_p90_lower_boundوmetrics.normalized_incremental_searches_p90_upper_bound): تعداد تخمینی پُرسمانهای جستجوی افزایشی ناشیاز عرضه آگهی، نرمالسازیشده در گروههای درمعرض و شاهد.metrics.normalized_incremental_searches_per_cost(باmetrics.normalized_incremental_searches_per_cost_p90_lower_boundوmetrics.normalized_incremental_searches_per_cost_p90_upper_bound): تعداد تخمینی پُرسمانهای جستجوی افزایشی تولیدشده بهازای هر واحد هزینهکرد آگهی.metrics.normalized_incremental_searches_per_impression(باmetrics.normalized_incremental_searches_per_impression_p90_lower_boundوmetrics.normalized_incremental_searches_per_impression_p90_upper_bound): تعداد تخمینی پُرسمانهای جستجوی افزایشی تولیدشده بهازای هر ظهور آگهی.
نمونه پُرسمانهای «بهینهگر جستجو»
پُرسمانهای GAQL زیر نشان میدهند که چگونه میتوان دستههای کلیدواژه و سنجههای عملکرد «بهینهگر جستجو» را بازیابی کرد.
پرسمان بسته کلیدواژه
برای بازیابی دستههای کلیدواژه پیکربندیشده برای اندازهگیریهای «بهینهگر جستجو»:
SELECT
search_lift_keyword_bundle.resource_name,
search_lift_keyword_bundle.search_lift_keyword_bundle_id,
search_lift_keyword_bundle.source,
search_lift_keyword_bundle.status
FROM search_lift_keyword_bundle
پُرسمان سنجهها
مقادیر search_lift_keyword_bundle.resource_name بازیابیشده در پُرسمان دسته کلیدواژه با مقادیر برگرداندهشده در segments.search_lift_keyword_bundle در پُرسمان زیر مطابقت دارد. برای پیدا کردن
CONFIG_ID برای مطالعهتان، lift_measurement_config را پُرسمان کنید (برای مثال،
SELECT lift_measurement_config.lift_measurement_config_id,
lift_measurement_config.name FROM lift_measurement_config).
برای بازیابی سنجههای «بهینهگر جستجو» که براساس دسته کلیدواژه و دارایی جستجو بخشبندی شدهاند:
SELECT
lift_measurement_config.lift_measurement_config_id,
segments.search_lift_keyword_bundle,
segments.search_property,
metrics.relative_search_lift,
metrics.relative_search_lift_p90_lower_bound,
metrics.relative_search_lift_p90_upper_bound,
metrics.incremental_searches_p_value,
metrics.search_lift_cost_micros,
metrics.search_lift_impressions,
metrics.normalized_incremental_searches,
metrics.normalized_incremental_searches_p90_lower_bound,
metrics.normalized_incremental_searches_p90_upper_bound
FROM lift_measurement_config
WHERE lift_measurement_config.lift_measurement_config_id = CONFIG_ID
روالهای مطلوب
روالهای مطلوب زیر برای آزمایشهای استاندارد A/B (مثل آزمایشهای پویش و آزمایشهای درونپویش) اعمال میشود. مطالعات اندازهگیری بهینهگر (بهینهگر نمانام،
بهینهگر تبدیل، و بهینهگر جستجو) از پیکربندیهای مختص مطالعه استفاده میکنند و
بازه اطمینان ۹۰٪ (*_p90_lower_bound و *_p90_upper_bound) را بهجای
آستانه اطمینان ۹۵٪ گزارش میکنند.
- سطح اطمینان مناسبی را انتخاب کنید: تنظیم آستانه مقدار p پایینتر میتواند راهنمایی جهتدار را سریعتر ارائه دهد، بهویژه با بودجهها یا حجمهای تبدیل پایینتر. اطمینان ۹۵٪ (مقدار p <= ۰٫۰۵) بهعنوان استاندارد دانشگاهی درنظر گرفته میشود و ممکن است برای نتایج دقیقتر در بازه زمانی طولانیتر بهتر باشد.
- آزمایشها را بهمدت کافی اجرا کنید: آزمایشها را حداقل بهمدت ۴ هفته اجرا کنید تا چرخههای عملکرد هفتگی، تأخیرهای تبدیل، و دورههای یادگیری را درنظر بگیرید.
- زمان کافی برای افزایش تدریجی اختصاص دهید: برای کمپینهایی که از پیشنهاد قیمت خودکارسازیشده استفاده میکنند یا ویژگیهای جدید را آزمایش میکنند، دادههای ۱ تا ۲ هفته اول را نادیده بگیرید تا مدلهای پیشنهاد قیمت و سطوح ترافیک زمان کافی برای کالیبره کردن مجدد با تقسیم را داشته باشند.
- استفاده از توزیع ۵۰/۵۰: توزیع ترافیک ۵۰/۵۰ معمولاً سریعترین راه برای دستیابی به نتایج معنادار ازلحاظ آماری است.
- ازقبل زمانبندی کنید: تاریخ شروع آزمایشتان را ۳ تا ۷ روز بعد تنظیم کنید تا زمان کافی برای فرایندهای بازبینی و تأیید آگهی وجود داشته باشد.