การรายงานการทดสอบทำได้ 2 วิธีหลักๆ ดังนี้
- การรายงานการทดสอบโดยตรง: ส่งคำค้นหาทรัพยากร
experimentเพื่อดูเมตริก ตัวเลือกนี้จะแสดงเมตริกสำหรับกลุ่มควบคุมและกลุ่มทดสอบในการตอบกลับครั้งเดียว พร้อมกับข้อมูลการเปรียบเทียบทางสถิติ เช่น Lift และค่า P ซึ่งเป็นวิธีเดียวในการรายงานการทดสอบภายในแคมเปญ - การรายงานแคมเปญ: ส่งคำค้นหาทรัพยากร
campaignเพื่อดูเมตริก โดยใช้campaign.experiment_typeเพื่อแยกแยะระหว่างแคมเปญฐานและแคมเปญทดสอบ ตัวเลือกนี้ใช้ได้กับการทดสอบที่ใช้แคมเปญควบคุมและแคมเปญทดสอบแยกกันเท่านั้น เช่น การทดสอบที่ระบบจัดการ
คู่มือนี้จะเน้นที่การรายงานการทดสอบโดยตรงเป็นหลัก ซึ่งเข้ากันได้กับการทดสอบทุกประเภทที่รองรับการรายงาน
การรายงานการทดสอบโดยตรง
คุณสามารถส่งคำค้นหาทรัพยากร experiment โดยตรงเพื่อดึงข้อมูลเมตริกประสิทธิภาพและการเปรียบเทียบทางสถิติระหว่างกลุ่มควบคุมและกลุ่มทดสอบ
เมตริกและความมีนัยสำคัญทางสถิติ
สําหรับเมตริกหลัก เช่น การคลิก การแสดงผล ต้นทุน Conversion และมูลค่า Conversion ทรัพยากร experiment จะแสดงทั้งเมตริกกลุ่มทดสอบ (เช่น metrics.clicks) และเมตริกกลุ่มควบคุม (เช่น metrics.control_clicks) ในแถวเดียวกัน
นอกจากนี้ยังมีช่องข้อมูลที่จะช่วยคุณประเมินความมีนัยสำคัญทางสถิติของความแตกต่างระหว่างกลุ่มต่างๆ ดังนี้
metrics.*_p_value: ความน่าจะเป็นที่ผลลัพธ์ที่สังเกตได้จะเกิดขึ้นหากการทดสอบไม่มีผลจริงต่อเมตริก ค่า P ที่ต่ำกว่าบ่งบอกถึงความมีนัยสำคัญทางสถิติที่สูงกว่า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 สําหรับสมมติฐานว่างที่ว่าการทดสอบไม่มีผลต่อการเปลี่ยนแปลงสัมบูรณ์ของ Conversion มีค่าตั้งแต่ 0 ถึง 1metrics.conversions_absolute_change_point_estimate: ค่าประมาณจุดเมื่อประมาณผลของการทดสอบต่อการเปลี่ยนแปลงสัมบูรณ์ของ Conversionmetrics.conversions_absolute_change_margin_of_error: ความคลาดเคลื่อนเมื่อประมาณผลของการทดสอบต่อการเปลี่ยนแปลงสัมบูรณ์ของ Conversion
หากต้องการความช่วยเหลือในการสร้างคําค้นหาที่ถูกต้องสําหรับทรัพยากร 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 สําหรับความเชื่อมั่น 95%) และ conversions_absolute_change_point_estimate -
conversions_absolute_change_margin_of_error มากกว่า 0 แสดงว่ากลุ่มทดสอบมีประสิทธิภาพดีกว่ากลุ่มควบคุมอย่างมาก
ในแง่ของ Conversion
ต่อไปนี้คือข้อมูลโค้ด Python ที่แสดงวิธีประเมินผลลัพธ์ตามค่า P และค่าประมาณ Lift
Java
This example is not yet available in Java; you can take a look at the other languages.
C#
This example is not yet available in C#; you can take a look at the other languages.
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. Args: client: an initialized GoogleAdsClient instance. customer_id: a client customer ID. row: a GoogleAdsRow containing the experiment arm and metrics. """ metrics = row.metrics experiment_resource_name = row.experiment.resource_name # 1. Evaluate conversion success as a primary success signal. # - 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. 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}%). " "Graduating treatment for further manual analysis." ) # Graduate if it's a separate campaign test. # This keeps the high-volume treatment running independently. # Intra-campaign experiments (like ADOPT_BROAD_MATCH_KEYWORDS and # ADOPT_AI_MAX) run directly within the base campaign, meaning there is only # a single campaign involved and no separate treatment campaign to graduate. # Therefore, graduation is not supported for intra-campaign experiments. experiment_type_name = row.experiment.type_.name if ( experiment_type_name != "ADOPT_BROAD_MATCH_KEYWORDS" and experiment_type_name != "ADOPT_AI_MAX" ): graduate_experiment(client, customer_id, experiment_resource_name) else: print( "Intra-campaign trial detected: Graduation is not supported" " because there is only one campaign. Continuing to run to" " gather more conversion data." ) else: # Both conversions and clicks are noisy. print( "Inconclusive: No significant lift in Conversions" f" (p={conv_p_value:.2f}) or Clicks (p={click_p_value:.2f})." f" Current estimated lift: {conv_lift:.2f} +/- {conv_error:.2f}." " Continue running." )
Ruby
This example is not yet available in Ruby; you can take a look at the other languages.
Perl
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 สําหรับการทดสอบภายในแคมเปญจะแสดงผลรวมแบบรวมเท่านั้น
แนวทางปฏิบัติแนะนำ
- เลือกระดับความเชื่อมั่นที่เหมาะสม: การตั้งค่าเกณฑ์ค่า P ที่ต่ำลง จะให้คําแนะนําที่เป็นแนวทางได้เร็วขึ้น โดยเฉพาะอย่างยิ่งกับงบประมาณหรือปริมาณ Conversion ที่ต่ำกว่า ความเชื่อมั่น 95% (ค่า P <= 0.05) ถือเป็นมาตรฐานทางวิชาการและอาจเหมาะสําหรับผลลัพธ์ที่แม่นยํามากขึ้นในช่วงเวลาที่ยาวนานขึ้น
- ทําการทดสอบนานพอ: ทําการทดสอบอย่างน้อย 4 สัปดาห์เพื่อ พิจารณาวงจรประสิทธิภาพรายสัปดาห์ ระยะเวลาก่อนที่จะเกิด Conversion และระยะเวลาการเรียนรู้
- ให้เวลาระบบเพิ่มประสิทธิภาพ: สำหรับแคมเปญที่ใช้การเสนอราคาอัตโนมัติหรือการทดสอบ ฟีเจอร์ใหม่ ให้ละเว้นข้อมูล 1-2 สัปดาห์แรกเพื่อให้โมเดลการเสนอราคา และระดับการเข้าชมปรับเทียบกับการแยกการเข้าชม
- ใช้การแยกแบบ 50/50: โดยทั่วไปแล้วการแยกการเข้าชมแบบ 50/50 เป็นวิธีที่เร็วที่สุดเพื่อให้ได้ ผลลัพธ์ที่มีนัยสำคัญทางสถิติ
- กำหนดเวลาล่วงหน้า: ตั้งวันที่เริ่มต้นการทดสอบล่วงหน้า 3-7 วันเพื่อให้มีเวลาสําหรับกระบวนการตรวจสอบและอนุมัติโฆษณา
- คุณทําการทดสอบได้ครั้งละ 1 รายการเท่านั้นต่อแคมเปญ