標準 A/B テストのレポートを作成するには、主に次の 2 つの方法があります。
- テスト結果レポート:
experimentリソースをクエリして指標を取得します。このオプションを使用すると、対照群と介入群の指標が 1 つのレスポンスで返されます。また、増加率や p 値などの統計比較データも返されます。キャンペーン内テストのレポートを作成するには、この方法を使用する必要があります。 - キャンペーン レポート:
campaignリソースをクエリして指標を取得します。campaign.experiment_typeを使用して、ベース キャンペーンとテスト キャンペーンを区別します。このオプションは、システム管理のテストなど、対照群キャンペーンと介入群キャンペーンを別々に使用するテストでのみ使用できます。
標準テストの場合、このガイドでは主に直接テストレポートに焦点を当てています。これは、レポートをサポートするすべてのテストタイプに対応しています。リフト測定調査では、専用のリフト測定リソースを使用して、ブランド効果測定、コンバージョン リフト測定、検索数の増加をレポートすることもできます。
直接テスト結果レポート
experiment リソースを直接クエリして、パフォーマンス指標と、対照群と介入群の統計的な比較を取得できます。
指標と統計的有意性
クリック数、インプレッション数、費用、コンバージョン数、コンバージョン値などのコア指標の場合、experiment リソースは、同じ行にトリートメント指標(metrics.clicks など)とコントロール指標(metrics.control_clicks など)の両方を提供します。
また、テスト群間の差異の統計的有意性を評価するのに役立つフィールドも提供されます。
metrics.*_p_value: テストが指標に実際の影響を与えなかった場合に、観測された結果が発生する確率。p 値が小さいほど、統計的有意性が高くなります。metrics.*_point_estimate: 対照群と比較した介入群の特定の指標の推定リフト率(正または負)。margin_of_errorとともに、推定される差の所定の信頼度を持つ信頼区間を記述します。推定される量は(介入群 / 対照群 - 1)です。点推定値は信頼区間の中心です。metrics.*_margin_of_error: 信頼区間の半径。point_estimateを中心とします。これは、テストの種類に応じて、所定の信頼度に対して計算されます。
experiment リソースでは、次のコア指標フィールドがサポートされています。これには、介入群の値、対照群の値、前述の統計フィールドが含まれます。
clicksimpressionscost_microsconversionscost_per_conversionconversion_valueconversion_value_per_cost
コンバージョンの場合、統計フィールドは、相対値ではなく、次の absolute_change フィールドを介して使用できます。
metrics.conversions_absolute_change_p_value: テストがコンバージョンの絶対変化に影響を与えないという帰無仮説の p 値。値の範囲は 0 ~ 1 です。metrics.conversions_absolute_change_point_estimate: コンバージョンの絶対変化に対するテストの効果を推定する際の点推定値。metrics.conversions_absolute_change_margin_of_error: コンバージョンの絶対変化に対するテストの効果を推定する際の誤差。
experiment リソースに対する有効なクエリを作成するには、Google 広告クエリビルダー ツールを使用します。
クエリ例
次の 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 が選択したしきい値(95% の信頼度の場合は 0.05 など)を下回り、conversions_absolute_change_point_estimate - conversions_absolute_change_margin_of_error が 0 より大きい場合、介入群はコンバージョンの点で対照群よりも大幅に優れたパフォーマンスを示しています。
以下は、p 値とリフトの推定値に基づいて結果を評価する方法を示す Python スニペットです。
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
キャンペーン レポートに対するメリット
テスト結果レポートを直接確認すると、キャンペーン レポートを個別にクエリする場合と比べて、次のようなメリットがあります。
- 一元化された指標: コントロールとトリートメントの指標を 1 行で取得します。
- 統計的信頼度データ: 計算された p 値、点推定値、誤差範囲を提供します。
- 効率性: 複数のレポートの結果を手動で結合または比較する必要がなくなります。
- キャンペーン内サポート: 単一のキャンペーン内でトラフィックが分割されるキャンペーン内テストで、対照群と介入群を比較する唯一の方法です。
キャンペーン レポート
個別の介入群キャンペーンを作成するテスト(SEARCH_CUSTOM など)では、campaign リソースをクエリし、campaign.experiment_type を使用して BASE(対照群)キャンペーンと EXPERIMENT(介入群)キャンペーンを識別できます。この方法は、指標をより詳細なレベル(広告グループやキーワードなど)でセグメント化する必要がある場合や、experiment リソースで使用できないキャンペーン メタデータを表示する必要がある場合に便利です。ただし、パフォーマンスの比較と統計計算を手動で行う必要があります。
キャンペーン内テストでは、トラフィックの分割が 1 つのキャンペーン内で行われるため、キャンペーン単位のレポートを使用してアームを比較することはできません。キャンペーン内テストの campaign をクエリすると、集計された合計のみが返されます。
ブランド効果測定レポート
Google Ads API でブランド効果測定に関するレポートを作成するには、専用のブランド効果測定リソースを使用します。
ブランド効果測定のリソースと内訳ビュー
LiftMeasurementFlight リソースをクエリして、お客様のタイムゾーンでの掲載期間(start_date と end_date)を含む、掲載期間レベルのブランド効果測定の結果を取得します。
さまざまなセグメント ディメンションでブランド効果測定の指標を分析するには、対応する内訳リソースをクエリします。
LiftMeasurementCampaign: キャンペーン別の内訳。LiftMeasurementAgeRange: 年齢層別の内訳。LiftMeasurementDevice: デバイス別の内訳。LiftMeasurementGender: 性別別の内訳。LiftMeasurementVideo: 動画アセット別の内訳。
BrandLiftMeasurementType 列挙型は、ブランド認知度や広告想起など、調査の測定タイプを指定します。
ブランド効果測定のクエリの例
フライトのメタデータとリフトの統計情報は別々のリソースに存在するため、フライトの詳細とパフォーマンスの統計情報をクエリするには、別々の GAQL クエリが必要です。
フライトの詳細に関するクエリ
ステータス、測定タイプ、スケジュール設定された日付など、ブランド効果測定フライトのメタデータを取得するには、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 は、YYYYMMDD 形式(例: 20260501)の引用符なしの 8 桁の整数としてフォーマットされた INT64 フィールドです。
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 広告の管理画面で、または 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)と組み合わせることはサポートされておらず、API クエリ検証でエラーになります。- ユーザー属性と日付のセグメント:
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: 相対的な検索数の増加の 90% 信頼区間の下限と上限。metrics.incremental_searches_p_value: 検索数の伸びの p 値。検索クエリの増加が偶然に発生した統計的な確率を表します。metrics.search_lift_cost_micros: この「検索数の増加」測定スライスで配信された広告のインプレッションの合計費用(マイクロ単位)。metrics.search_lift_impressions: この検索数の増加測定スライスで配信された広告インプレッションの合計数。
リフトが統計的に正の場合、次の正規化されたインクリメンタリティ指標と、対応する 90% 信頼区間の下限と上限(*_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を含む): 広告費用 1 単位あたりに発生した検索クエリの増分の推定値。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 テスト(キャンペーン テストやキャンペーン内テストなど)に適用されます。リフト測定調査(ブランド効果測定、コンバージョン リフト測定、検索数の増加測定)では、調査固有の設定を使用し、95% の信頼度のしきい値ではなく、90% の信頼区間(*_p90_lower_bound と *_p90_upper_bound)をレポートします。
- 適切な信頼レベルを選択する: p 値のしきい値を低く設定すると、特に予算やコンバージョン数が少ない場合に、方向性を示すガイダンスをより迅速に提供できます。95% の信頼度(p 値 <= 0.05)は学術的な標準と見なされており、より長い期間にわたってより正確な結果を得るのに適しています。
- テストを十分な期間実施する: 毎週のパフォーマンス サイクル、コンバージョン達成までの所要時間、学習期間を考慮して、テストを少なくとも 4 週間実施します。
- 立ち上げ期間を設ける: 自動入札を使用しているキャンペーンや新機能をテストしているキャンペーンでは、入札モデルとトラフィック レベルが分割に合わせて再調整されるまで、最初の 1 ~ 2 週間はデータを無視します。
- 50 対 50 の分割を使用する: 通常、統計的に有意な結果を最も早く得られるのは、トラフィックを 50 対 50 に分割する方法です。
- 事前にスケジュールを設定する: 広告の審査と承認のプロセスに時間をかけられるよう、テストの開始日を 3 ~ 7 日後に設定します。