W Google Ads konwersja to wartościowe działanie użytkownika, np. zakup produktu, przesłanie formularza kontaktowego, zadzwonienie do firmy lub wizyta w sklepie stacjonarnym, które następuje po interakcji z reklamą. Śledzenie konwersji mierzy te interakcje klientów, dzięki czemu możesz oceniać skuteczność kampanii i optymalizować automatyczne określanie stawek.
Interfejs Google Ads API umożliwia programowe konfigurowanie działań powodujących konwersję, importowanie zdarzeń konwersji offline, ulepszanie i dostosowywanie zarejestrowanych konwersji, grupowanie działań w cele związane z określaniem stawek i cyklem życia oraz monitorowanie diagnostyki przesyłania.
Wybieranie procesu konwersji
Na podstawie poniższej tabeli określ ConversionActionType, usługę interfejsu API i przewodnik po implementacji dla Twojego przypadku użycia:
| Zadanie | Typ działania powodującego konwersję | Usługa lub zasób interfejsu API | Przewodnik po implementacji |
|---|---|---|---|
| Sprawdzanie zakładania konta i tworzenie działania powodującego konwersję |
UPLOAD_CLICKS, WEBPAGE,
UPLOAD_CALLS, AD_CALL,
WEBSITE_CALL, GOOGLE_PLAY_,
GOOGLE_PLAY_
|
Customer
(ConversionTracking),
ConversionAction
|
Pierwsze kroki i Kategorie działań powodujących konwersję |
| Importowanie konwersji offline po kliknięciu lub konwersji rozszerzonych dotyczących potencjalnych klientów | UPLOAD_CLICKS |
ConversionUploadService. (lub Data Manager API w przypadku nowych integracji)
|
Importowanie konwersji offline po kliknięciu |
| Ulepszanie konwersji online (konwersje rozszerzone w kampaniach internetowych) | WEBPAGE |
ConversionAdjustment
(ENHANCEMENT)
|
Importowanie konwersji po kliknięciu online |
| Importowanie konwersji telefonicznych | UPLOAD_CALLS |
ConversionUploadService.
|
Importowanie konwersji telefonicznych |
| Importowanie transakcji sprzedaży w sklepie |
STORE_SALES,
STORE_SALES_
|
OfflineUserData (lub interfejs Data Manager API)
|
Importowanie konwersji polegających na sprzedaży w sklepie stacjonarnym |
| Wycofywanie i ponowne określanie zarejestrowanych konwersji |
UPLOAD_CLICKS, WEBPAGE, SALESFORCE (wycofany)
|
ConversionAdjustment
(RETRACTION, RESTATEMENT)
|
Dostosowywanie konwersji po zaimportowaniu |
| Dołączanie do konwersji metadanych tagów niestandardowych |
UPLOAD_CLICKS, UPLOAD_CALLS,
WEBPAGE
|
ConversionCustom
|
Niestandardowe zmienne konwersji |
| Konfigurowanie celów określania stawek, celów związanych z cyklem życia i reguł wartości | Cele na poziomie konta, kampanii i cyklu życia |
CustomerConversion,
CampaignConversion,
CustomConversion,
ConversionGoal,
GoalService,
CampaignGoal,
ConversionValue
|
Cele konwersji, cele związane z cyklem życia i reguły wartości konwersji |
| Monitorowanie stanu importu i diagnostyka błędów |
UPLOAD_CLICKS, WEBPAGE,
UPLOAD_CALLS
|
offline_conversion_upload_,
offline_conversion_upload_
|
Monitorowanie diagnostyki danych offline |
| Wykonywanie zapytań o dane konwersji i rozwiązywanie problemów z błędami | Wszystkie typy konwersji |
GoogleAdsService.
(customer, campaign,
conversion_action)
|
Pobieranie statystyk konwersji i rozwiązywanie problemów z importowaniem konwersji |
Pełny cykl życia konwersji
Pełna integracja zarządzania konwersjami w interfejsie Google Ads API składa się z 4 etapów:
- Sprawdź zakładanie konta i utwórz działania powodujące konwersję: prześlij zapytanie
Customer.conversion_tracking_setting, aby potwierdzić efektywne konto konwersji (google_ads_conversion_customer), sprawdzić, czy śledzenie konwersji jest aktywne, skonfigurować zgodę użytkownika i utworzyćConversionActionz docelowymConversionActionTypeiConversionActionCategory. - Importowanie zdarzeń konwersji: przesyłaj strumieniowo konwersje offline polegające na kliknięciu lub konwersje telefoniczne, korzystając z zasobu
ConversionUploadServicez polempartial_failureustawionym natrue, uzupełniaj konwersje w witrynie o korektyENHANCEMENT, korzystając z zasobuConversionAdjustmentUploadService, lub przesyłaj zbiorczo dane o sprzedaży w sklepie, korzystając z zasobuOfflineUserDataJobService. - Dostosowywanie i optymalizowanie konwersji: wycofuj lub ponownie podawaj zarejestrowane konwersje za pomocą
ConversionAdjustmentUploadService, dołączaj metadaneConversionCustomVariable, stosuj reguły wartości konwersji oraz porządkuj działania według celów konwersji i celów związanych z cyklem życia, aby kontrolować optymalizację określania stawek. - Monitorowanie danych diagnostycznych i raportowanie skuteczności: wysyłaj zapytania do
offline_conversion_upload_client_summaryioffline_conversion_upload_conversion_action_summary, aby sprawdzać stan przetwarzania przesłanych danych i alerty o częściowych niepowodzeniach. Wyślij zapytanie do zasobówcustomerlubcampaign(opcjonalnie posegmentowanych według polasegments.conversion_action), aby porównać danemetrics.conversionsimetrics.all_conversions, albo wyślij zapytanie do zasobuconversion_action, aby sprawdzić danemetrics.all_conversionsi sygnatury czasowe ostatniej konwersji.
Krótki przewodnik: sprawdzanie konfiguracji, tworzenie działań i sprawdzanie stanu
Poniższe przykłady pokazują 3 najczęstsze zapytania i mutacje potrzebne do inicjowania i monitorowania śledzenia konwersji.
1. Weryfikowanie ustawień śledzenia konwersji za pomocą GAQL
Zanim utworzysz ConversionAction lub prześlesz zdarzenia, wyślij zapytanie do zasobu customer, używając GoogleAdsService.SearchStream, aby określić, które konto zarządza konwersjami (google_ads_conversion_customer), czy zaakceptowano warunki dotyczące danych klientów i czy konwersje rozszerzone na poziomie konta są włączone (EnhancedConversionsConfig):
SELECT
customer.conversion_tracking_setting.conversion_tracking_id,
customer.conversion_tracking_setting.conversion_tracking_status,
customer.conversion_tracking_setting.cross_account_conversion_tracking_id,
customer.conversion_tracking_setting.google_ads_conversion_customer,
customer.conversion_tracking_setting.accepted_customer_data_terms,
customer.conversion_tracking_setting.enablement_setting,
customer.conversion_tracking_setting.effective_enablement_setting
FROM customer
Wyodrębnij {customer_id} z nazwy zasobu customers/{customer_id} zwróconej w google_ads_conversion_customer i wyślij wszystkie kolejne żądania ConversionActionService i ConversionUploadService do tego identyfikatora klienta. Szczegółowe informacje o konfiguracji i hierarchii kont znajdziesz w artykule Pierwsze kroki.
2. Utwórz działanie powodujące konwersję
Użyj ConversionActionService.MutateConversionActions, aby utworzyć ConversionAction. Ten przykład tworzy działanie powodujące konwersję UPLOAD_CLICKS z niestandardową wartością i ustawieniami okresu ważności:
Java
private void runExample(GoogleAdsClient googleAdsClient, long customerId) { // Creates a ConversionAction. ConversionAction conversionAction = ConversionAction.newBuilder() // Note that conversion action names must be unique. If a conversion action already // exists with the specified conversion_action_name the create operation will fail with // a ConversionActionError.DUPLICATE_NAME error. .setName("Earth to Mars Cruises Conversion #" + getPrintableDateTime()) .setCategory(ConversionActionCategory.DEFAULT) .setType(ConversionActionType.WEBPAGE) .setStatus(ConversionActionStatus.ENABLED) .setViewThroughLookbackWindowDays(15L) .setValueSettings( ValueSettings.newBuilder() .setDefaultValue(23.41) .setAlwaysUseDefaultValue(true) .build()) .build(); // Creates the operation. ConversionActionOperation operation = ConversionActionOperation.newBuilder().setCreate(conversionAction).build(); try (ConversionActionServiceClient conversionActionServiceClient = googleAdsClient.getLatestVersion().createConversionActionServiceClient()) { MutateConversionActionsResponse response = conversionActionServiceClient.mutateConversionActions( Long.toString(customerId), Collections.singletonList(operation)); System.out.printf("Added %d conversion actions:%n", response.getResultsCount()); for (MutateConversionActionResult result : response.getResultsList()) { System.out.printf( "New conversion action added with resource name: '%s'%n", result.getResourceName()); } } }
C#
public void Run(GoogleAdsClient client, long customerId) { // Get the ConversionActionService. ConversionActionServiceClient conversionActionService = client.GetService(Services.V26.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V26::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V26::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V26::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
Żądanie REST
Aby utworzyć ten sam zasób ConversionAction za pomocą REST, wyślij żądanie POST do ConversionActionService.MutateConversionActions:
POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
{
"operations": [
{
"create": {
"name": "Earth to Mars Cruise Conversion",
"type": "UPLOAD_CLICKS",
"category": "DEFAULT",
"status": "ENABLED",
"primaryForGoal": true,
"countingType": "ONE_PER_CLICK",
"clickThroughLookbackWindowDays": "60",
"valueSettings": {
"defaultValue": 23.41,
"defaultCurrencyCode": "USD",
"alwaysUseDefaultValue": true
}
}
}
]
}
Gdy działanie powodujące konwersję ma stan ENABLED, zaimportuj zdarzenia konwersji lub ulepszenia, korzystając z procesu odpowiedniego dla źródła konwersji (patrz Importowanie zdarzeń konwersji).
3. Monitorowanie stanu przesyłania konwersji offline
Po przesłaniu konwersji po kliknięciu, konwersji telefonicznych lub korekt konwersji wyślij zapytanie offline_conversion_upload_client_summary, aby sprawdzić ogólny stan zadania, wskaźniki powodzenia i oczekiwania oraz zestawienia błędów w ostatnich przesłanych plikach:
SELECT
offline_conversion_upload_client_summary.client,
offline_conversion_upload_client_summary.status,
offline_conversion_upload_client_summary.total_event_count,
offline_conversion_upload_client_summary.successful_event_count,
offline_conversion_upload_client_summary.success_rate,
offline_conversion_upload_client_summary.pending_event_count,
offline_conversion_upload_client_summary.pending_rate,
offline_conversion_upload_client_summary.last_upload_date_time,
offline_conversion_upload_client_summary.alerts
FROM offline_conversion_upload_client_summary
Aby uzyskać diagnostykę na poziomie działania powodującego konwersję, wyślij zapytanie do offline_conversion_upload_conversion_action_summary (zobacz Monitorowanie diagnostyki danych offline). Aby rozwiązać problemy z konkretnymi kodami błędów, zapoznaj się z artykułem Rozwiązywanie problemów z importowaniem konwersji.
Katalog przewodników według etapu cyklu życia
Zapoznaj się z pełnym zestawem przewodników po zarządzaniu konwersjami uporządkowanych według etapu cyklu życia:
1. Zakładanie konta i działania powodujące konwersję
- Kategorie działań powodujących konwersję: wybierz odpowiednie źródło konwersji – witrynę (
WEBPAGE), połączenie telefoniczne (UPLOAD_CALLS,AD_CALL,WEBSITE_CALL), aplikację mobilną (GOOGLE_PLAY_DOWNLOAD,GOOGLE_PLAY_IN_APP_PURCHASE, Firebase,SKAdNetwork), Google Analytics 4 (GOOGLE_ANALYTICS_4_CUSTOM,GOOGLE_ANALYTICS_4_PURCHASE), offline (UPLOAD_CLICKS) lub sklep stacjonarny (STORE_SALES) – i przypisz je do odpowiedniegoConversionActionTypei procesu API. - Pierwsze kroki: skonfiguruj zgodę użytkownika, zweryfikuj
ConversionTrackingSetting, skonfiguruj śledzenie konwersji dla wielu kont i utwórz działania powodujące konwersję za pomocą bibliotek klienta lub interfejsu REST.
2. Importowanie zdarzeń konwersji
- Importowanie konwersji offline po kliknięciu: przesyłaj konwersje offline (
GCLID,GBRAID,WBRAID) i konwersje rozszerzone dotyczące potencjalnych klientów (zaszyfrowane adresy e-mail i numery telefonów własnych), aby mierzyć transakcje w świecie rzeczywistym. - Importowanie konwersji online po kliknięciu: uzupełniaj tagi konwersji w witrynie o dane własne użytkowników, takie jak adres e-mail, imię i nazwisko, adres domowy i numer telefonu, za pomocą konwersji rozszerzonych w kampaniach internetowych (
ENHANCEMENTdostosowań). - Importowanie konwersji telefonicznych: przesyłaj zdarzenia konwersji dotyczące połączeń telefonicznych śledzonych za pomocą numerów Google do przekazywania połączeń lub własnego systemu śledzenia połączeń.
- Importowanie konwersji polegających na sprzedaży w sklepie stacjonarnym: przesyłaj zbiorczo dane o transakcjach w sklepie stacjonarnym za pomocą
OfflineUserDataJobService.
3. Dostosowywanie i optymalizowanie konwersji
- Dostosowywanie konwersji po zaimportowaniu: wycofuj anulowane zamówienia (
RETRACTION) lub ponownie podawaj zmodyfikowane wartości konwersji (RESTATEMENT) w przypadku działań powodujących konwersjęUPLOAD_CLICKS,WEBPAGEiSALESFORCE(wycofane). - Zarządzaj regułami wartości konwersji: dynamicznie dostosowuj wartości konwersji w czasie aukcji na podstawie kryteriów dotyczących odbiorców, urządzenia, położenia geograficznego lub planu podróży.
- Niestandardowe zmienne konwersji: definiuj i dołączaj niestandardowe tagi par klucz-wartość (
ConversionCustomVariable) do konwersji polegających na kliknięciu, połączeniu telefonicznym i wizycie w witrynie, aby generować raporty z podziałem na segmenty. - Cele konwersji: grupuj działania powodujące konwersję według pól
category(ConversionActionCategory) iorigin(ConversionOrigin) oraz konfiguruj cele klienta, cele kampanii i cele niestandardowe oraz cele związane z cyklem życia klienta (pozyskiwanie nowych klientów, utrzymanie klientów i utrzymanie lojalności). Możesz też pobierać i stosowaćOPTIMIZE_FOR_NEW_CUSTOMERSrekomendacje dotyczące przyrostowych wartości konwersji polegających na pozyskaniu nowego klienta.
4. Monitorowanie, raportowanie i rozwiązywanie problemów
- Monitorowanie diagnostyki danych offline: wysyłaj zapytania dotyczące diagnostyki danych offline na poziomie konta (
offline_conversion_upload_client_summary) i na poziomie działania powodującego konwersję (offline_conversion_upload_conversion_action_summary), aby śledzić wskaźniki sukcesu, oczekujące zdarzenia i alerty dotyczące przesyłania. - Pobieranie statystyk konwersji: wysyłaj zapytania o wskaźniki skuteczności konwersji w GAQL i mapuj kolumny interfejsu Google Ads na pola interfejsu Google Ads API.
- Rozwiązywanie problemów z importowaniem konwersji: diagnozowanie i rozwiązywanie typowych problemów z kodami
ConversionUploadErroriConversionAdjustmentUploadError.