Istnieją 2 główne sposoby raportowania standardowych eksperymentów A/B:
- Raportowanie bezpośrednie eksperymentu: wysyłaj zapytania do zasobu
experiment, aby uzyskać dane. Ta opcja zapewnia dane dotyczące grup kontrolnych i kampanii eksperymentalnych w jednej odpowiedzi, wraz z danymi do porównania statystycznego, takimi jak wzrost i wartości p. To jedyny sposób na generowanie raportów o eksperymentach w ramach kampanii. - Raportowanie kampanii: wysyłaj zapytania do zasobu
campaign, aby uzyskać dane, i używaj polacampaign.experiment_typedo odróżniania kampanii podstawowych od kampanii z eksperymentem. Ta opcja jest dostępna tylko w przypadku eksperymentów, które korzystają z osobnych kampanii kontrolnych i eksperymentalnych, np. eksperymentów zarządzanych przez system.
W przypadku eksperymentów standardowych ten przewodnik skupia się głównie na raportowaniu eksperymentów bezpośrednich, które jest zgodne ze wszystkimi typami eksperymentów obsługującymi raportowanie. W przypadku badań pomiaru wzrostu możesz też raportować Wyniki marki, Zwiększenie liczby konwersji i wzrost liczby wyszukiwań, korzystając z dedykowanych zasobów pomiaru wzrostu.
Raportowanie eksperymentów bezpośrednich
Możesz bezpośrednio wysyłać zapytania do zasobu experiment, aby pobierać wskaźniki skuteczności i porównania statystyczne między grupą kontrolną a kampanią eksperymentalną.
Dane i istotność statystyczna
W przypadku podstawowych danych, takich jak kliknięcia, wyświetlenia, koszt, konwersje i wartość konwersji, zasób experiment podaje w tym samym wierszu zarówno dane dotyczące grupy eksperymentalnej (np. metrics.clicks), jak i dane dotyczące grupy kontrolnej (np. metrics.control_clicks).
Zawiera też pola, które pomagają ocenić istotność statystyczną różnic między grupami:
metrics.*_p_value: prawdopodobieństwo, że zaobserwowane wyniki wystąpiłyby, gdyby eksperyment nie miał rzeczywistego wpływu na dane. Niższa wartość p oznacza wyższą istotność statystyczną.metrics.*_point_estimate: szacowany procentowy wzrost (dodatni lub ujemny) danego wskaźnika w kampanii eksperymentalnej w porównaniu z kampanią kontrolną. Wraz z wartościąmargin_of_erroropisują przedział ufności z określonym poziomem ufności dla szacowanej różnicy. Szacowana wartość to (grupa eksperymentalna / grupa kontrolna – 1). Estymacja punktowa to środek przedziału ufności.metrics.*_margin_of_error: promień przedziału ufności, którego środkiem jestpoint_estimate. Jest on obliczany dla określonego poziomu ufności, który zależy od typu eksperymentu.
W zasobie experiment obsługiwane są te pola danych podstawowych, w tym wartość grupy eksperymentalnej, wartość grupy kontrolnej i wymienione wcześniej pola statystyk:
clicksimpressionscost_microsconversionscost_per_conversionconversion_valueconversion_value_per_cost
W przypadku konwersji pola statystyczne są dostępne w tych polach absolute_change, a nie jako wartości względne:
metrics.conversions_absolute_change_p_value: wartość p dla hipotezy zerowej, zgodnie z którą eksperyment nie ma wpływu na bezwzględną zmianę liczby konwersji. Zakres od 0 do 1.metrics.conversions_absolute_change_point_estimate: szacunkowa wartość punktowa podczas szacowania wpływu eksperymentu na bezwzględną zmianę liczby konwersji.metrics.conversions_absolute_change_margin_of_error: margines błędu podczas szacowania wpływu eksperymentu na zmianę bezwzględną liczby konwersji.
Aby uzyskać pomoc w tworzeniu prawidłowych zapytań dotyczących zasobu experiment, użyj narzędzia Kreator zapytań Google Ads.
Przykładowe zapytanie
To zapytanie GAQL pobiera kluczowe dane eksperymentu:
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
Interpretowanie wyników
Aby określić, czy eksperyment przyniósł istotne statystycznie wyniki, możesz użyć pól wartości p, estymacji punktowej i zakresu błędu. Jeśli na przykład wartość conversions_absolute_change_p_value jest poniżej wybranego progu (np. 0.05 dla przedziału ufności 95%), a różnica conversions_absolute_change_point_estimate – conversions_absolute_change_margin_of_error jest większa od zera, kampania eksperymentalna uzyskuje znacznie lepsze wyniki niż kampania kontrolna pod względem konwersji.
Oto fragment kodu w Pythonie, który pokazuje, jak oceniać wyniki na podstawie wartości p i szacunkowego wzrostu:
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
Zalety w porównaniu z raportami o kampaniach
Raportowanie eksperymentów bezpośrednich ma kilka zalet w porównaniu z osobnym wysyłaniem zapytań do raportów kampanii:
- Scentralizowane dane: pobieraj dane dotyczące grupy kontrolnej i eksperymentalnej w jednym wierszu.
- Dane dotyczące ufności statystycznej: zawierają obliczone wartości p, szacunki punktowe i marginesy błędu.
- Wydajność: nie musisz ręcznie łączyć ani porównywać wyników z wielu raportów.
- Obsługa eksperymentów w ramach kampanii: to jedyny sposób na porównanie grupy kontrolnej z grupą eksperymentalną w przypadku eksperymentów w ramach kampanii, w których ruch jest dzielony w obrębie jednej kampanii.
Raportowanie dotyczące kampanii
W przypadku eksperymentów, które tworzą oddzielne kampanie eksperymentalne (np. SEARCH_CUSTOM), możesz wysłać zapytanie do zasobu campaign i użyć pola campaign.experiment_type, aby zidentyfikować kampanie BASE (kontrolne) i EXPERIMENT (eksperymentalne). Takie podejście jest przydatne, jeśli chcesz podzielić dane na segmenty na bardziej szczegółowym poziomie (np. według grupy reklam lub słowa kluczowego) lub wyświetlić metadane kampanii niedostępne w zasobie experiment. Wymaga to jednak ręcznego porównywania skuteczności i wykonywania obliczeń statystycznych.
Nie możesz używać raportów na poziomie kampanii do porównywania grup w eksperymentach w ramach kampanii, ponieważ podział ruchu odbywa się wewnętrznie w ramach jednej kampanii.
Zapytanie do campaign dotyczące eksperymentu w ramach kampanii zwraca tylko zagregowane sumy.
Raportowanie wyników marki
Możesz generować raporty o badaniach wyników marki w interfejsie Google Ads API, korzystając ze specjalnych zasobów do pomiaru wyników marki.
Zasoby i widoki podziału dotyczące Wyników marki
Wyślij zapytanie do zasobu LiftMeasurementFlight, aby pobrać wyniki badania Wyników marki na poziomie okresu wyświetlania, w tym zakresy dat okresu wyświetlania (start_date i end_date) w strefie czasowej klienta.
Aby przeanalizować dane dotyczące Wyników marki w różnych wymiarach segmentów, prześlij zapytanie o odpowiednie zasoby podziału:
LiftMeasurementCampaign: podział według kampanii.LiftMeasurementAgeRange: podział według przedziału wiekowego.LiftMeasurementDevice: podział według urządzenia.LiftMeasurementGender: podział według płci.LiftMeasurementVideo: podział według komponentu wideo.
Typ wyliczeniowy BrandLiftMeasurementType określa typ pomiaru w badaniu, np. świadomość marki lub rozpoznawalność reklamy.
Przykładowe zapytania dotyczące Wyników marki
Metadane i statystyki wzrostu znajdują się w osobnych zasobach, dlatego zapytania o szczegóły i statystyki skuteczności wymagają osobnych zapytań GAQL.
Zapytanie o szczegóły lotu
Aby pobrać metadane dotyczące serii pomiarów wyników marki, takie jak jej stan, typ pomiaru i zaplanowane daty, wyślij zapytanie do zasobu 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
Zapytanie o statystyki
Aby pobrać dane dotyczące Wyników marki, prześlij zapytanie do odpowiedniego zasobu podziału (lub ogólnej konfiguracji badania w LiftMeasurementConfig). Na przykład to zapytanie pobiera dane dotyczące Wyników marki z LiftMeasurementCampaign z podziałem na kampanie:
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
Raporty dotyczące zwiększenia liczby konwersji
Przyrostowy wpływ reklam na konwersje możesz mierzyć za pomocą raportów o zwiększeniu liczby konwersji w interfejsie Google Ads API.
Konfiguracja i dane Zwiększenia liczby konwersji
Wyślij zapytanie do zasobu LiftMeasurementConfig, aby pobrać konfiguracje badania Zwiększenie liczby konwersji i dane o skuteczności.
Zasób udostępnia dane dotyczące Zwiększenia liczby konwersji, które umożliwiają ocenę przyrostowej skuteczności:
metrics.conversion_lift_baseline_conversions: Konwersje w grupie bazowej w ramach badania.metrics.conversion_lift_exposed_conversions: konwersje zaobserwowane w grupie eksperymentalnej.metrics.incremental_conversions: konwersje przyrostowe przypisane do reklam.metrics.cost_per_incremental_conversion: Koszt dodatkowej konwersji.metrics.relative_conversion_lift: wzrost względny liczby konwersji.metrics.conversion_lift_baseline_conversion_value: Wartość konwersji w grupie bazowej.metrics.conversion_lift_exposed_conversion_value: wartość konwersji w grupie eksperymentalnej.metrics.incremental_conversion_value: przyrostowa wartość konwersji przypisana reklamom.metrics.relative_conversion_value_lift: wzrost względny wartości konwersji.
Raporty dotyczące zwiększenia liczby konwersji umożliwiają też podział na segmenty według działań powodujących konwersję oraz pobieranie szczegółów połączonych kampanii, szczegółów eksperymentów i celów konwersji.
Od v26 możesz sprawdzać konfigurację pomiaru wyników marki powiązaną z kampanią bezpośrednio w zasobie campaign za pomocą Campaign.lift_measurement_config. Dzięki temu nie trzeba osobno porównywać danych z różnych kanałów zasobu LiftMeasurementConfig:
SELECT
campaign.id,
campaign.lift_measurement_config
FROM campaign
WHERE campaign.id = CAMPAIGN_ID
Zwrócone pole lift_measurement_config zawiera nazwę zasobu w formacie customers/{customer_id}/liftMeasurementConfigs/{lift_measurement_config_id}.
Uwaga: jeśli w kampanii przeprowadzono wiele eksperymentów dotyczących wzrostu, lift_measurement_config zawiera nazwę zasobu ostatnio połączonej konfiguracji (aktywnej lub nieaktywnej).
Przykładowe zapytanie dotyczące zwiększenia liczby konwersji
Podane niżej zapytanie GAQL pobiera konfiguracje Zwiększenia liczby konwersji i kluczowe wskaźniki skuteczności. Pamiętaj, że segments.conversion_lift_start_date i segments.conversion_lift_end_date to pola INT64 sformatowane jako 8-cyfrowe liczby całkowite bez cudzysłowów w formacie YYYYMMDD (np. 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
Raportowanie wzrostu liczby wyszukiwań
Wzrost liczby bezpłatnych wyników wyszukiwania wywołany przez kampanie reklamowe możesz mierzyć za pomocą raportów wzrostu liczby wyszukiwań w interfejsie Google Ads API. Wzrost liczby wyszukiwań określa ilościowo różnicę w zachowaniach związanych z wyszukiwaniem Twojej marki lub Twoich produktów między użytkownikami, którzy widzieli Twoje reklamy, a grupą kontrolną, która ich nie widziała.
Zasoby i segmentacja wzrostu liczby wyszukiwań
Wyślij zapytanie do zasobu SearchLiftKeywordBundle, aby pobrać szczegółowe informacje o grupach słów kluczowych skonfigurowanych na potrzeby badań wzrostu liczby wyszukiwań.
SearchLiftKeywordBundle jest tylko do odczytu w interfejsie API (wszystkie pola są OUTPUT_ONLY), a pakiety słów kluczowych są konfigurowane w interfejsie Google Ads lub przez przedstawicieli Google / Global Product Solutions (GPS). Pola, które można wyszukiwać w GAQL, to resource_name, search_lift_keyword_bundle_id, source (SearchLiftMatchingInfoSource) i status (SearchLiftKeywordBundleStatus) (powtarzanego pola keywords nie można wybrać w zapytaniach GAQL).
Aby pobrać dane dotyczące wzrostu liczby wyszukiwań i ogólne konfiguracje badań, wyślij zapytanie do zasobu LiftMeasurementConfig.
Skuteczność wzrostu liczby wyszukiwań możesz dzielić na segmenty według tych wymiarów:
segments.search_lift_keyword_bundle: segmentowanie według nazwy zasobu pakietu słów kluczowych. Zgodne zsegments.search_property,segments.datei segmentami demograficznymi (segments.device,segments.age_rangeisegments.gender).segments.search_property: segmentuj według usługi wyszukiwania, w której nastąpiło wyszukiwanie, zdefiniowanej przezSearchLiftSearchProperty(np. wyszukiwarka Google lub YouTube). Pamiętaj, żesegments.search_propertyjest zgodny tylko zsegments.search_lift_keyword_bundleisegments.date. Łączeniesegments.search_propertyz segmentami demograficznymi (segments.device,segments.age_rangelubsegments.gender) nie jest obsługiwane i powoduje niepowodzenie weryfikacji zapytania do interfejsu API.- Segmenty demograficzne i daty:
segments.device,segments.age_range,segments.genderisegments.date.
Dane dotyczące wzrostu liczby wyszukiwań
Zasób LiftMeasurementConfig udostępnia dane dotyczące wzrostu liczby wyszukiwań, które umożliwiają ocenę zmian w zachowaniach związanych z wyszukiwaniem:
metrics.relative_search_lift: różnica w liczbie wyszukiwanych haseł między grupą eksperymentalną a grupą kontrolną, wyrażona jako ułamek wyszukiwanych haseł w grupie kontrolnej.metrics.relative_search_lift_p90_lower_boundimetrics.relative_search_lift_p90_upper_bound: dolna i górna granica przedziału ufności na poziomie 90% dla względnego wzrostu liczby wyszukiwań.metrics.incremental_searches_p_value: wartość p dla przyrostowych wyszukiwań, która reprezentuje statystyczne prawdopodobieństwo, że zaobserwowany wzrost liczby wyszukiwanych haseł był przypadkowy.metrics.search_lift_cost_micros: łączny koszt (w mikrogroszach) wyświetleń reklam w ramach tego wycinka pomiaru wzrostu liczby wyszukiwań.metrics.search_lift_impressions: łączna liczba wyświetleń reklam zrealizowanych w ramach tego wycinka pomiaru wzrostu liczby wyszukiwań.
Gdy wzrost jest statystycznie dodatni, raportowane są te znormalizowane dane przyrostowe wraz z odpowiadającymi im dolnymi i górnymi granicami przedziału ufności na poziomie 90% (*_p90_lower_bound i *_p90_upper_bound):
metrics.normalized_incremental_searches(zmetrics.normalized_incremental_searches_p90_lower_boundimetrics.normalized_incremental_searches_p90_upper_bound): szacunkowa liczba przyrostowych wyszukiwanych haseł wygenerowanych przez ekspozycję reklamy, znormalizowana w grupach eksperymentalnych i kontrolnych.metrics.normalized_incremental_searches_per_cost(zmetrics.normalized_incremental_searches_per_cost_p90_lower_boundimetrics.normalized_incremental_searches_per_cost_p90_upper_bound): szacunkowa liczba przyrostowych wyszukiwań wygenerowanych na jednostkę wydatków na reklamę.metrics.normalized_incremental_searches_per_impression(zmetrics.normalized_incremental_searches_per_impression_p90_lower_boundimetrics.normalized_incremental_searches_per_impression_p90_upper_bound): szacunkowa liczba przyrostowych zapytań wygenerowanych na wyświetlenie reklamy.
Przykładowe zapytania dotyczące wzrostu liczby wyszukiwań
Podane niżej zapytania GAQL pokazują, jak pobierać pakiety słów kluczowych i wskaźniki skuteczności dotyczące wzrostu liczby wyszukiwań.
Zapytanie dotyczące grupy słów kluczowych
Aby pobrać grupy słów kluczowych skonfigurowane na potrzeby pomiarów wzrostu liczby wyszukiwań:
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
Zapytanie dotyczące wskaźników
Wartości search_lift_keyword_bundle.resource_name pobrane w zapytaniu o pakiet słów kluczowych odpowiadają wartościom zwracanym w segments.search_lift_keyword_bundle w poniższym zapytaniu. Aby znaleźć CONFIG_ID dla swojego badania, wyślij zapytanie do lift_measurement_config (na przykład SELECT lift_measurement_config.lift_measurement_config_id,
lift_measurement_config.name FROM lift_measurement_config).
Aby pobrać dane dotyczące wzrostu liczby wyszukiwań podzielone według pakietu słów kluczowych i usługi wyszukiwania:
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
Sprawdzone metody
Te sprawdzone metody dotyczą standardowych eksperymentów A/B (takich jak eksperymenty z kampanią i eksperymenty w ramach kampanii). Badania pomiaru wzrostu (wyników marki,
zwiększenia liczby konwersji i wzrostu liczby wyszukiwań) korzystają z konfiguracji specyficznych dla danego badania i raportują
90-procentowe przedziały ufności (*_p90_lower_bound i *_p90_upper_bound), a nie
95-procentowy próg ufności.
- Wybierz odpowiedni poziom ufności: ustawienie niższego progu wartości p może szybciej dostarczyć wskazówek kierunkowych, zwłaszcza przy mniejszych budżetach lub mniejszej liczbie konwersji. Poziom ufności wynoszący 95% (wartość p <= 0,05) jest uważany za standard akademicki i może być lepszy do uzyskania dokładniejszych wyników w dłuższym okresie.
- Prowadź eksperymenty przez wystarczająco długi czas: prowadź eksperymenty przez co najmniej 4 tygodnie, aby uwzględnić tygodniowe cykle skuteczności, opóźnienia konwersji i okresy nauki.
- Daj czas na rozruch: w przypadku kampanii korzystających z automatycznego określania stawek lub testujących nowe funkcje nie bierz pod uwagę danych z pierwszych 1–2 tygodni, aby dać czas modelom określania stawek i poziomom ruchu na ponowne skalibrowanie pod kątem podziału.
- Używaj podziału 50/50: podział ruchu w proporcjach 50/50 jest zwykle najszybszym sposobem na uzyskanie istotnych statystycznie wyników.
- Zaplanuj z wyprzedzeniem: ustaw datę rozpoczęcia eksperymentu na 3–7 dni do przodu, aby dać czas na sprawdzenie i zatwierdzenie reklam.