การรายงานเกี่ยวกับการทดสอบ A/B มาตรฐานทำได้ 2 วิธีหลักๆ ดังนี้
- การรายงานการทดสอบโดยตรง: ค้นหาเมตริกจากทรัพยากร
experimentตัวเลือกนี้จะแสดงเมตริกสำหรับกลุ่มควบคุมและกลุ่มทดสอบในการตอบกลับเดียว พร้อมกับข้อมูลการเปรียบเทียบทางสถิติ เช่น การเพิ่มขึ้นและค่า p-value วิธีนี้เป็นวิธีเดียวในการรายงานการทดสอบภายในแคมเปญ - การรายงานแคมเปญ: ค้นหาทรัพยากร
campaignเพื่อดูเมตริก โดยใช้campaign.experiment_typeเพื่อแยกความแตกต่างระหว่างแคมเปญพื้นฐานกับแคมเปญการทดสอบ ตัวเลือกนี้ใช้ได้กับการทดสอบที่ใช้แคมเปญควบคุมและแคมเปญทดสอบแยกกันเท่านั้น เช่น การทดสอบที่จัดการโดยระบบ
สําหรับการทดสอบมาตรฐาน คู่มือนี้จะมุ่งเน้นที่การรายงานการทดสอบโดยตรงเป็นหลัก ซึ่งใช้ได้กับการทดสอบทุกประเภทที่รองรับการรายงาน สําหรับการศึกษาการวัด Lift คุณยังสามารถรายงานเกี่ยวกับ Brand Lift, Conversion Lift และ Search Lift โดยใช้แหล่งข้อมูลการวัด Lift โดยเฉพาะได้ด้วย
การรายงานการทดสอบโดยตรง
คุณสามารถค้นหาทรัพยากร experiment โดยตรงเพื่อดึงข้อมูลเมตริกประสิทธิภาพและการเปรียบเทียบทางสถิติระหว่างกลุ่มควบคุมและกลุ่มทดสอบ
เมตริกและนัยสำคัญทางสถิติ
สําหรับเมตริกหลัก เช่น การคลิก การแสดงผล ต้นทุน Conversion และมูลค่า Conversion แหล่งข้อมูล experiment จะแสดงทั้งเมตริกกลุ่มทดสอบ (เช่น metrics.clicks) และเมตริกกลุ่มควบคุม (เช่น metrics.control_clicks) ในแถวเดียวกัน
นอกจากนี้ยังมีช่องที่จะช่วยคุณประเมินนัยสำคัญทางสถิติของความแตกต่างระหว่างกลุ่มต่างๆ ดังนี้
metrics.*_p_value: ความน่าจะเป็นที่ผลลัพธ์ที่สังเกตได้จะเกิดขึ้นหากการทดสอบไม่มีผลจริงต่อเมตริก ค่า P-Value ที่ต่ำลงบ่งชี้ถึงนัยสำคัญทางสถิติที่สูงขึ้นmetrics.*_point_estimate: เปอร์เซ็นต์ Lift โดยประมาณ (บวกหรือลบ) ในเมตริกที่ระบุสำหรับกลุ่มทดสอบเมื่อเทียบกับกลุ่มควบคุม เมื่อใช้ร่วมกับmargin_of_errorจะอธิบายช่วงความเชื่อมั่นที่มีระดับความเชื่อมั่นที่กำหนดไว้สำหรับความแตกต่างที่ประมาณไว้ ปริมาณที่ประมาณคือ (กลุ่มทดสอบ / กลุ่มควบคุม - 1) ค่าประมาณแบบจุดคือจุดกึ่งกลางของช่วงความเชื่อมั่นmetrics.*_margin_of_error: รัศมีของช่วงความเชื่อมั่นซึ่งมีจุดศูนย์กลางอยู่ที่point_estimateโดยจะคํานวณตามระดับความเชื่อมั่นที่กําหนดไว้ ซึ่งขึ้นอยู่กับประเภทการทดสอบ
ระบบรองรับช่องเมตริกหลักต่อไปนี้ในทรัพยากร experiment ซึ่งรวมถึงค่ากลุ่มทดสอบ ค่ากลุ่มควบคุม และช่องสถิติที่ระบุไว้ก่อนหน้านี้
clicksimpressionscost_microsconversionscost_per_conversionconversion_valueconversion_value_per_cost
สําหรับ Conversion โดยเฉพาะ ช่องสถิติจะพร้อมใช้งานผ่านช่อง absolute_change ต่อไปนี้ แทนที่จะเป็นค่าสัมพัทธ์
metrics.conversions_absolute_change_p_value: ค่า p-value สำหรับสมมติฐานว่างที่ว่าการทดสอบไม่มีผลต่อการเปลี่ยนแปลงแบบสัมบูรณ์ของ Conversion มีค่าตั้งแต่ 0 ถึง 1metrics.conversions_absolute_change_point_estimate: ค่าประมาณจุดเมื่อประมาณผลกระทบของการทดสอบต่อการเปลี่ยนแปลงสัมบูรณ์ของ Conversionmetrics.conversions_absolute_change_margin_of_error: ส่วนต่างข้อผิดพลาดเมื่อประมาณผลกระทบของการทดสอบที่มีต่อการเปลี่ยนแปลงแบบสัมบูรณ์ของ Conversion
หากต้องการความช่วยเหลือในการสร้างคำค้นหาที่ถูกต้องสำหรับแหล่งข้อมูล experiment ให้ใช้เครื่องมือ Google Ads Query Builder
ตัวอย่างคำค้นหา
คําค้นหา 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-Value, ค่าประมาณจุด และส่วนต่างความผิดพลาดเพื่อระบุว่าการทดสอบให้ผลลัพธ์ที่มีนัยสำคัญทางสถิติหรือไม่ ตัวอย่างเช่น หาก conversions_absolute_change_p_value ต่ำกว่าเกณฑ์ที่คุณเลือก (เช่น 0.05 สำหรับความเชื่อมั่น 95%) และ conversions_absolute_change_point_estimate - conversions_absolute_change_margin_of_error มากกว่า 0 กลุ่มทดสอบจะมีประสิทธิภาพดีกว่ากลุ่มควบคุมอย่างมากในแง่ของ Conversion
ต่อไปนี้คือข้อมูลโค้ด Python ที่แสดงวิธีประเมินผลลัพธ์ตามค่า P-Value และค่าประมาณ Lift
Java
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
Perl
This example is not yet available in Perl; you can take a look at the other languages.
curl
ประโยชน์เหนือการรายงานแคมเปญ
การรายงานการทดสอบโดยตรงมีข้อดีหลายประการเมื่อเทียบกับการค้นหารายงานแคมเปญแยกต่างหาก ดังนี้
- เมตริกแบบรวมศูนย์: ดึงข้อมูลเมตริกสําหรับกลุ่มควบคุมและกลุ่มทดสอบในแถวเดียว
- ข้อมูลความเชื่อมั่นทางสถิติ: แสดงค่า p-value, ค่าประมาณจุด และส่วนต่างความผิดพลาดที่คำนวณแล้ว
- ประสิทธิภาพ: ไม่จำเป็นต้องรวมหรือเปรียบเทียบผลลัพธ์จากรายงานหลายฉบับด้วยตนเอง
- การรองรับภายในแคมเปญ: เป็นวิธีเดียวในการเปรียบเทียบกลุ่มควบคุมกับกลุ่มทดสอบสําหรับการทดสอบภายในแคมเปญ ซึ่งจะมีการแยกการเข้าชมภายในแคมเปญเดียว
การรายงานแคมเปญ
สําหรับการทดสอบที่สร้างแคมเปญกลุ่มทดสอบแยกต่างหาก (เช่น SEARCH_CUSTOM) คุณสามารถค้นหาแหล่งข้อมูล campaign และใช้ campaign.experiment_type เพื่อระบุแคมเปญ BASE (กลุ่มควบคุม) และ EXPERIMENT (กลุ่มทดสอบ) วิธีนี้มีประโยชน์หากคุณต้องการแบ่งกลุ่มเมตริกในระดับที่ละเอียดยิ่งขึ้น (เช่น ตามกลุ่มโฆษณาหรือคีย์เวิร์ด) หรือดูข้อมูลเมตาของแคมเปญที่ไม่มีในทรัพยากร experiment อย่างไรก็ตาม คุณจะต้องเปรียบเทียบประสิทธิภาพและคำนวณทางสถิติด้วยตนเอง
คุณไม่สามารถใช้การรายงานระดับแคมเปญเพื่อเปรียบเทียบกลุ่มสําหรับการทดสอบภายในแคมเปญ เนื่องจากการแยกการเข้าชมเกิดขึ้นภายในแคมเปญเดียว
การค้นหา campaign สําหรับการทดสอบภายในแคมเปญจะแสดงเฉพาะผลรวมที่รวบรวมไว้เท่านั้น
การรายงาน Brand Lift
คุณสามารถรายงานเกี่ยวกับการศึกษา Brand Lift ใน Google Ads API โดยใช้แหล่งข้อมูลการวัด Brand Lift โดยเฉพาะ
แหล่งข้อมูล Brand Lift และมุมมองรายละเอียด
ค้นหาทรัพยากร LiftMeasurementFlight เพื่อดึงข้อมูลผลการศึกษา Brand Lift ระดับช่วงเวลา รวมถึงช่วงวันที่ของช่วงเวลา (start_date และ end_date) ในเขตเวลาของลูกค้า
หากต้องการวิเคราะห์เมตริก Brand Lift ในมิติข้อมูลกลุ่มต่างๆ ให้ค้นหาทรัพยากรรายละเอียดที่เกี่ยวข้อง ดังนี้
LiftMeasurementCampaign: รายละเอียดตามแคมเปญLiftMeasurementAgeRange: รายละเอียดตามช่วงอายุLiftMeasurementDevice: รายละเอียดตามอุปกรณ์LiftMeasurementGender: รายละเอียดตามเพศLiftMeasurementVideo: รายละเอียดตามชิ้นงานวิดีโอ
BrandLiftMeasurementType enum จะระบุประเภทการวัดสําหรับการศึกษา เช่น การรับรู้ถึงแบรนด์หรือการจำโฆษณาได้
ตัวอย่างการค้นหา Brand Lift
เนื่องจากข้อมูลเมตาของเที่ยวบินและสถิติ Lift อยู่ในทรัพยากรที่แยกกัน การค้นหารายละเอียดเที่ยวบินและสถิติประสิทธิภาพจึงต้องใช้การค้นหา GAQL แยกกัน
การค้นหารายละเอียดเที่ยวบิน
หากต้องการดึงข้อมูลเมตาสำหรับช่วงเวลาของ Brand Lift เช่น สถานะ ประเภทการวัด และวันที่ที่กำหนดเวลาไว้ ให้ค้นหาทรัพยากร 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
การค้นหาสถิติ
หากต้องการดึงข้อมูลเมตริก Brand Lift ให้ค้นหาทรัพยากรรายละเอียดที่เหมาะสม (หรือการกำหนดค่าการศึกษาโดยรวมใน LiftMeasurementConfig) ตัวอย่างเช่น การค้นหาต่อไปนี้จะดึงข้อมูลเมตริก Brand Lift ที่แจกแจงตามแคมเปญจาก 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
การรายงาน Conversion Lift
คุณสามารถวัดผลลัพธ์ที่เพิ่มขึ้นของโฆษณาที่มีต่อ Conversion ได้โดยใช้การรายงาน Conversion Lift ใน Google Ads API
การกำหนดค่าและเมตริก Conversion Lift
ค้นหาทรัพยากร LiftMeasurementConfig เพื่อดึงข้อมูลการกำหนดค่าและข้อมูลประสิทธิภาพของการศึกษา Conversion Lift
แหล่งข้อมูลนี้แสดงเมตริก Conversion Lift เพื่อประเมินประสิทธิภาพที่เพิ่มขึ้น ดังนี้
metrics.conversion_lift_baseline_conversions: Conversion พื้นฐานสําหรับการศึกษาmetrics.conversion_lift_exposed_conversions: Conversion ที่พบในกลุ่มที่เห็นโฆษณาmetrics.incremental_conversions: Conversion ที่เพิ่มขึ้นซึ่งมาจากโฆษณาmetrics.cost_per_incremental_conversion: ต้นทุนต่อ Conversion ที่เพิ่มขึ้นmetrics.relative_conversion_lift: Conversion Lift แบบสัมพัทธ์metrics.conversion_lift_baseline_conversion_value: มูลค่า Conversion พื้นฐานmetrics.conversion_lift_exposed_conversion_value: มูลค่า Conversion ในกลุ่มที่เห็นโฆษณาmetrics.incremental_conversion_value: มูลค่า Conversion ที่เพิ่มขึ้นซึ่งมาจากโฆษณาmetrics.relative_conversion_value_lift: Brand Lift แบบสัมพัทธ์ในมูลค่า Conversion
นอกจากนี้ การรายงาน Conversion Lift ยังช่วยให้สามารถแบ่งกลุ่มตามการกระทำที่ถือเป็น Conversion และดึงรายละเอียดแคมเปญที่ลิงก์ รายละเอียดการทดสอบ และเป้าหมาย Conversion ได้ด้วย
ตั้งแต่เวอร์ชัน v26 เป็นต้นไป คุณจะดูการกำหนดค่าการวัดผลด้วย Lift ที่ลิงก์กับแคมเปญได้โดยตรงจากทรัพยากร campaign โดยใช้ Campaign.lift_measurement_config วิธีนี้ช่วยให้ไม่ต้องตรวจสอบเพื่อเปรียบเทียบทรัพยากร LiftMeasurementConfig แยกต่างหาก
SELECT
campaign.id,
campaign.lift_measurement_config
FROM campaign
WHERE campaign.id = CAMPAIGN_ID
ฟิลด์ lift_measurement_config ที่แสดงผลจะมีชื่อทรัพยากรในรูปแบบ customers/{customer_id}/liftMeasurementConfigs/{lift_measurement_config_id}
หมายเหตุ: lift_measurement_config มีชื่อทรัพยากรของการกำหนดค่าที่ลิงก์ล่าสุด (ใช้งานอยู่หรือไม่ได้ใช้งาน) หากแคมเปญได้ทำการทดสอบ Lift หลายครั้ง
ตัวอย่างการค้นหา Conversion Lift
คําค้นหา GAQL ต่อไปนี้จะดึงข้อมูลการกําหนดค่า Conversion Lift และเมตริกประสิทธิภาพหลัก โปรดทราบว่า segments.conversion_lift_start_date และ segments.conversion_lift_end_date เป็นช่อง INT64 ที่จัดรูปแบบเป็นจำนวนเต็ม 8 หลักที่ไม่มีเครื่องหมายคำพูดในรูปแบบ 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
การรายงาน Search Lift
คุณสามารถวัดปริมาณคำค้นหาทั่วไปที่เพิ่มขึ้นซึ่งเกิดจากแคมเปญโฆษณาได้โดยใช้การรายงาน Search Lift ใน Google Ads API Search Lift จะวัดความแตกต่างของพฤติกรรมการค้นหาแบรนด์หรือผลิตภัณฑ์ระหว่างผู้ใช้ที่เห็นโฆษณากับกลุ่มควบคุมที่ไม่เห็นโฆษณา
แหล่งข้อมูลและการแบ่งกลุ่ม Search Lift
ค้นหาทรัพยากร SearchLiftKeywordBundle เพื่อดึงรายละเอียดเกี่ยวกับกลุ่มคีย์เวิร์ดที่กำหนดค่าไว้สำหรับการศึกษา Search Lift
SearchLiftKeywordBundle เป็นแบบอ่านอย่างเดียวใน API (ทุกช่องเป็น OUTPUT_ONLY) และมีการกำหนดค่าชุดคีย์เวิร์ดใน UI ของ Google Ads หรือโดยตัวแทนของ Google / Global Product Solutions (GPS) ช่องที่ค้นหาได้ใน GAQL คือ resource_name, search_lift_keyword_bundle_id, source (SearchLiftMatchingInfoSource) และ status (SearchLiftKeywordBundleStatus) (ช่อง keywords ที่ซ้ำกันจะเลือกไม่ได้ในการค้นหา GAQL)
ค้นหาทรัพยากร LiftMeasurementConfig เพื่อดึงข้อมูลเมตริก Search Lift และการกำหนดค่าการศึกษาโดยรวม
คุณแบ่งกลุ่มประสิทธิภาพของ Search Lift ได้โดยใช้มิติข้อมูลต่อไปนี้
segments.search_lift_keyword_bundle: แบ่งกลุ่มตามชื่อทรัพยากรของกลุ่มคีย์เวิร์ด ใช้ร่วมกับsegments.search_property,segments.dateและกลุ่มเป้าหมายตามข้อมูลประชากร (segments.device,segments.age_rangeและsegments.gender) ได้segments.search_property: แบ่งกลุ่มตามพร็อพเพอร์ตี้การค้นหาที่เกิดการค้นหา ซึ่งกำหนดโดยSearchLiftSearchProperty(เช่น Google Search หรือ YouTube) โปรดทราบว่าsegments.search_propertyใช้ได้กับsegments.search_lift_keyword_bundleและsegments.dateเท่านั้น ระบบไม่รองรับการรวมsegments.search_propertyกับกลุ่มเป้าหมายตามข้อมูลประชากร (segments.device,segments.age_rangeหรือsegments.gender) และจะตรวจสอบความถูกต้องของคำค้นหา API ไม่สำเร็จ- กลุ่มข้อมูลประชากรและวันที่:
segments.device,segments.age_range,segments.genderและsegments.date
เมตริก Search Lift
ทรัพยากร LiftMeasurementConfig มีเมตริก Search Lift เพื่อประเมินการเปลี่ยนแปลงพฤติกรรมการค้นหา ดังนี้
metrics.relative_search_lift: ความแตกต่างของปริมาณคำค้นหาระหว่างกลุ่มที่เห็นโฆษณากับกลุ่มควบคุม โดยแสดงเป็นเศษส่วนของคำค้นหาในกลุ่มควบคุมmetrics.relative_search_lift_p90_lower_boundและmetrics.relative_search_lift_p90_upper_bound: ขอบเขตล่างและขอบเขตบนของช่วงความเชื่อมั่น 90% สำหรับ Search Lift สัมพัทธ์metrics.incremental_searches_p_value: ค่า p-value สำหรับยอดการค้นหาที่เพิ่มขึ้น ซึ่งแสดงถึงความน่าจะเป็นทางสถิติที่การเพิ่มขึ้นของคำค้นหาที่สังเกตได้เกิดขึ้นโดยบังเอิญmetrics.search_lift_cost_micros: ค่าใช้จ่ายทั้งหมด (เป็นไมโคร) ของการแสดงโฆษณาที่แสดงสำหรับส่วนการวัดผล Search Lift นี้metrics.search_lift_impressions: จำนวนการแสดงโฆษณาทั้งหมดที่แสดงสำหรับส่วนการวัดผลด้วย Search Lift นี้
ระบบจะรายงานเมตริกส่วนเพิ่มที่ปรับมาตรฐานแล้วต่อไปนี้ พร้อมกับขอบเขตล่างและขอบเขตบนของช่วงความเชื่อมั่น 90% ที่เกี่ยวข้อง (*_p90_lower_bound และ *_p90_upper_bound) เมื่อ Lift เป็นค่าบวกอย่างมีนัยสำคัญทางสถิติ
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): คำค้นหาที่เพิ่มขึ้นโดยประมาณที่สร้างขึ้นต่อการแสดงโฆษณา
ตัวอย่างคำค้นหาสำหรับ Search Lift
คําค้นหา GAQL ต่อไปนี้แสดงวิธีดึงข้อมูลชุดคีย์เวิร์ดและเมตริกประสิทธิภาพของ Search Lift
คำค้นหาของกลุ่มคีย์เวิร์ด
วิธีดึงข้อมูลชุดคีย์เวิร์ดที่กำหนดค่าไว้สำหรับการวัดผลด้วย Search Lift
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)
วิธีดึงข้อมูลเมตริก Search Lift ที่แบ่งกลุ่มตามชุดคีย์เวิร์ดและพร็อพเพอร์ตี้การค้นหา
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 มาตรฐาน (เช่น การทดสอบแคมเปญและการทดสอบภายในแคมเปญ) การศึกษาการวัดผลด้วย Lift (Brand Lift, Conversion Lift และ Search Lift) ใช้การกำหนดค่าเฉพาะการศึกษาและรายงานช่วงความเชื่อมั่น 95% (*_p90_lower_bound และ *_p90_upper_bound) แทนเกณฑ์ความเชื่อมั่น 95%
- เลือกระดับความเชื่อมั่นที่เหมาะสม: การตั้งค่าเกณฑ์ค่า p-value ที่ต่ำลงจะช่วยให้คำแนะนำเชิงทิศทางได้เร็วขึ้น โดยเฉพาะอย่างยิ่งเมื่อมีงบประมาณหรือปริมาณ Conversion ต่ำ ความเชื่อมั่น 95% (ค่า p <= 0.05) ถือเป็นมาตรฐานทางวิชาการและอาจดีกว่าเพื่อให้ได้ผลลัพธ์ที่แม่นยำยิ่งขึ้นในกรอบเวลาที่นานขึ้น
- ทำการทดสอบนานพอ: ทำการทดสอบอย่างน้อย 4 สัปดาห์เพื่อพิจารณาวงจรประสิทธิภาพรายสัปดาห์ ระยะเวลาก่อนที่จะเกิด Conversion และระยะเวลาเรียนรู้
- ให้เวลาในการเพิ่มประสิทธิภาพ: สําหรับแคมเปญที่ใช้การเสนอราคาอัตโนมัติหรือทดสอบฟีเจอร์ใหม่ ให้ละเว้นข้อมูล 1-2 สัปดาห์แรกเพื่อให้เวลารูปแบบการเสนอราคาและระดับการเข้าชมปรับเทียบใหม่ตามการแยก
- ใช้การแยกแบบ 50/50: โดยทั่วไปแล้ว การแยกการเข้าชมแบบ 50/50 เป็นวิธีที่เร็วที่สุดเพื่อให้ได้ผลลัพธ์ที่มีนัยสำคัญทางสถิติ
- กำหนดเวลาล่วงหน้า: กำหนดวันที่เริ่มต้นการทดสอบล่วงหน้า 3-7 วันเพื่อให้มีเวลาสำหรับกระบวนการตรวจสอบและอนุมัติโฆษณา