Aby rejestrować konwersje, musisz włączyć śledzenie konwersji na koncie konwersji Google Ads. Ten przewodnik zawiera informacje o tym, jak sprawdzić, czy śledzenie konwersji jest włączone, włączyć je, jeśli nie jest jeszcze włączone, oraz uzyskać informacje o dotychczasowych działaniach powodujących konwersję.
Większość działań powodujących konwersję wymaga też dodatkowych czynności z Twojej strony, aby je śledzić. Więcej informacji o różnych typach działań powodujących konwersję i ich wymaganiach znajdziesz w artykułach Kategorie działań powodujących konwersję i Tworzenie działań powodujących konwersję.
Przygotowanie się do wyrażenia zgody
Podczas importowania konwersji lub danych użytkowników musisz potwierdzić, że masz uprawnienia do udostępniania Google danych o konwersjach. Możesz to zrobić na 2 sposoby:
- Skonfiguruj domyślne ustawienia dotyczące zgody na poziomie konta. W interfejsie Google Ads kliknij Narzędzia > Menedżer danych > Ustawienia zgody > Domyślne ustawienia zgody.
- Ustaw pole zgody w każdym zaimportowanym ładunku danych o konwersji lub danych użytkownika (np.
ClickConversion.consent,CallConversion.consentlubUserData.consent).
Konfigurowanie witryny pod kątem śledzenia konwersji
Jeśli śledzisz konwersje w witrynie lub wdrażasz konwersje rozszerzone w przypadku potencjalnych klientów, najpierw skonfiguruj tagowanie witryny. Wykonaj czynności opisane w artykule Konfigurowanie tagu Google na potrzeby konwersji rozszerzonych dotyczących potencjalnych klientów lub użyj Menedżera tagów Google, postępując zgodnie z instrukcjami w artykule Konfigurowanie Menedżera tagów Google na potrzeby konwersji rozszerzonych dotyczących potencjalnych klientów.
Włączanie śledzenia konwersji na koncie konwersji Google Ads
Aby sprawdzić konfigurację śledzenia konwersji na koncie oraz utworzyć lub pobrać działania powodujące konwersję, wykonaj te czynności.
Jak włączyć śledzenie konwersji
Pobieranie informacji o konfiguracji śledzenia konwersji
Możesz sprawdzić konfigurację śledzenia konwersji na koncie i upewnić się, że śledzenie konwersji jest włączone, wysyłając zapytanie do zasobu Customer o wartość ConversionTrackingSetting.
Wyślij to zapytanie z użyciemGoogleAdsService.SearchStream:
SELECT
customer.conversion_tracking_setting.google_ads_conversion_customer,
customer.conversion_tracking_setting.conversion_tracking_status,
customer.conversion_tracking_setting.conversion_tracking_id,
customer.conversion_tracking_setting.cross_account_conversion_tracking_id
FROM customer
Pole google_ads_conversion_customer wskazuje konto Google Ads, które tworzy konwersje dla tego klienta i nimi zarządza. W przypadku klientów korzystających ze śledzenia konwersji na wielu kontach jest to identyfikator konta menedżera. Identyfikator klienta konwersji Google Ads należy podać jako customer_id w żądaniach interfejsu Google Ads API dotyczących tworzenia konwersji i zarządzania nimi. Pamiętaj, że to pole jest wypełniane nawet wtedy, gdy śledzenie konwersji nie jest włączone.
Pole
conversion_tracking_status
wskazuje, czy śledzenie konwersji jest włączone i czy konto
korzysta ze śledzenia konwersji dla wielu kont.
Utwórz działanie powodujące konwersję w sekcji „Klienci dokonujący konwersji w Google Ads”.
Jeśli wartość conversion_tracking_status to NOT_CONVERSION_TRACKED, śledzenie konwersji nie jest włączone na koncie. Włącz śledzenie konwersji, tworząc co najmniej 1 ConversionAction na koncie konwersji Google Ads, jak w tym przykładzie. Możesz też utworzyć działanie powodujące konwersję w interfejsie, postępując zgodnie z instrukcjami w artykule w Centrum pomocy Google Ads na temat konfigurowania śledzenia konwersji w przypadku typu konwersji, który chcesz włączyć.
Pamiętaj, że konwersje rozszerzone są włączane automatycznie, gdy są wysyłane za pomocą interfejsu Google Ads API, ale można je wyłączyć w interfejsie Google Ads.
Przykładowy kod
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.V25.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::V25::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V25::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
Sprawdź, czy type ma prawidłową wartość ConversionActionType. Więcej wskazówek na temat tworzenia działań powodujących konwersję w interfejsie Google Ads API znajdziesz w artykule Tworzenie działań powodujących konwersję.
Pobieranie istniejącego działania powodującego konwersję
Aby pobrać szczegóły istniejącego działania powodującego konwersję, wyślij to zapytanie: Upewnij się, że identyfikator klienta w żądaniu jest ustawiony na klienta konwersji Google Ads, którego udało Ci się wcześniej zidentyfikować, a typ działania powodującego konwersję ma prawidłową wartość ConversionActionType.
SELECT
conversion_action.id,
conversion_action.resource_name,
conversion_action.name,
conversion_action.type,
conversion_action.category,
conversion_action.status
FROM conversion_action
WHERE conversion_action.type = 'INSERT_CONVERSION_ACTION_TYPE'
Śledzenie konwersji dla wielu kont
Śledzenie konwersji dla wielu kont umożliwia kontom Google Ads importowanie konwersji w imieniu innych kont, które mogły wyświetlać reklamy generujące konwersje. Może to uprościć integrację, ponieważ pozwala skonsolidować konta, które wysyłają prośby o import.
Włączanie śledzenia konwersji dla wielu kont w interfejsie Google Ads API
Podczas tworzenia lub aktualizowania kont klientów możesz użyć interfejsu Google Ads API, aby włączyć śledzenie konwersji w wielu kontach.
W przypadku zasobu Customer ustaw pole conversion_tracking_setting.google_ads_conversion_customer na nazwę zasobu konta menedżera, które ma zarządzać działaniami powodującymi konwersję w imieniu konta klienta.
Żądania modyfikujące klienta konwersji na koncie klienta muszą być wysyłane przez konto menedżera, które staje się nowym klientem konwersji na tym koncie.
Aby to zrobić, ustaw wartość login-customer-id na identyfikator konta menedżera.
Gdy włączysz śledzenie konwersji dla wielu kont lub zmienisz menedżera śledzenia konwersji na istniejącym koncie klienta, obowiązują te same zastrzeżenia, co w przypadku wprowadzenia tej zmiany w interfejsie. Więcej szczegółów:
- Konto klienta przyjmie domyślne reguły wartości konwersji i domyślne cele związane z cyklem życia klienta nowego menedżera śledzenia konwersji.
- Kampanie, które są kierowane na konkretne działanie powodujące konwersję, zaczną używać domyślnych celów konwersji na koncie menedżera konwersji. Jeśli nadal będziesz kierować reklamy na konkretne działanie powodujące konwersję, może to prowadzić do niespójnych wyników, ponieważ konto menedżera może nie mieć tych samych celów co konto klienta. Upewnij się, że kampanie są optymalizowane pod kątem właściwych celów.
- Jeśli dane konto należy do więcej niż jednego konta menedżera, możesz używać na nim działań powodujących konwersje tylko z jednego konta menedżera. Jeśli nie określono konta śledzenia konwersji, konto domyślnie będzie używać siebie jako konta śledzenia konwersji.
Importowanie konwersji na różnych kontach
Gdy śledzenie dla wielu kont jest włączone, konta klientów i konta menedżera mogą importować konwersje w imieniu konta wyświetlania reklam. Umożliwia to uproszczenie logiki importu, dzięki czemu nie musisz określać konta wyświetlania dla każdej konwersji w momencie importu. Możesz po prostu wybrać jedno konto z drzewa kont, aby zaimportować wszystkie konwersje.
Aby przesłać konwersję, konto, z którego przesyłasz, musi mieć dostęp do działania powodującego konwersję. W hierarchii śledzenia na wielu kontach konto przesyłające ma dostęp do działania, jeśli jest kontem nadrzędnym (menedżera) lub potomnym właściciela działania powodującego konwersję w drzewie kont.
Poniższy diagram przedstawia strukturę autoryzacji importowania konwersji. W tym przypadku C1 to konto klienta, które wyświetliło reklamę generującą konwersję, a M2 to właściciel działania powodującego konwersję i konto nadrzędne śledzenia konwersji na koncie C1. Konta wyróżnione na zielono mogą importować konwersje w imieniu C1, a konta wyróżnione na czerwono nie mogą tego robić.

Utwórz działania powodujące konwersję
Aby mierzyć konwersje, skonfiguruj ConversionAction dla type działania powodującego konwersję, które chcesz śledzić.
Na przykład zakup online i połączenie telefoniczne wymagają różnych działań powodujących konwersję.
Najlepszym sposobem na skonfigurowanie nowych działań powodujących konwersję w interfejsie API jest użycie przykładu kodu dodawania działania powodującego konwersję. Przykładowy kod obsługuje wszystkie zadania uwierzytelniania w tle i przeprowadza Cię przez proces tworzenia ConversionAction.
Większość działań powodujących konwersję wymaga też dodatkowych czynności z Twojej strony, aby je śledzić. Aby np. śledzić konwersje w witrynie, musisz dodać do strony konwersji w witrynie fragment kodu zwany tagiem. Szczegółowe wymagania dotyczące innych typów działań powodujących konwersję znajdziesz w artykule w Centrum pomocy Google Ads na temat typów konwersji.
Jeśli używasz śledzenia konwersji dla wielu kont, funkcja
ConversionActionService zwraca te działania powodujące konwersję:
- Wszystkie działania powodujące konwersję zdefiniowane przez konto menedżera, które jest używane przez konto do śledzenia konwersji dla wielu kont.
- Wszystkie działania powodujące konwersję, w przypadku których klient zgromadził statystyki, w tym działania zdefiniowane przez system i działania należące do konta menedżera, nawet jeśli to konto menedżera zostanie później odłączone.
- Wszystkie działania zdefiniowane przez klienta na jego koncie
- Konwersje Analytics utworzone w połączonych usługach w Google Analytics.
Obejmuje to działania powodujące konwersję w Analytics, które nie zostały zaimportowane do Google Ads i mają stan
HIDDEN.
Przykładowy kod
Poniższy przykład kodu pokazuje, jak utworzyć nowe działanie powodujące konwersję. W szczególności tworzy działanie powodujące konwersję z ustawieniem
type na UPLOAD_CLICKS.
Ustawia też wartość category na DEFAULT.
Obowiązują te ustawienia domyślne:
Interfejs Google Ads API automatycznie ustawia pole
primary_for_goal, ale możesz ustawić je samodzielnie, aby kontrolować, jak działanie powodujące konwersję wpływa na raportowanie i określanie stawek na Twoim koncie, gdy jest połączone z celami konwersji.Interfejs Google Ads API automatycznie ustawia wartość
counting_typenaMANY_PER_CLICK. Więcej informacji znajdziesz w artykule Opcje liczenia konwersji.Interfejs Google Ads API ustawia model atrybucji na Oparty na danych, ustawiając pole
attribution_model_settingsna wartośćGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVENAttributionModel. Więcej informacji o modelach atrybucji znajdziesz w artykule Modele atrybucji – informacje.
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.V25.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::V25::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V25::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
Ten przykład znajdziesz w folderze Remarketing w bibliotece klienta i w kolekcji przykładów kodu: przykład kodu dodawania działania powodującego konwersję.
Weryfikacje
Google Ads i interfejs Google Ads API obsługują wiele różnych działań powodujących konwersję, więc niektóre reguły weryfikacji różnią się w zależności od type działania.
Najczęstszym błędem podczas tworzenia działania powodującego konwersję jest DUPLICATE_NAME. Upewnij się, że każde działanie powodujące konwersję ma unikalną nazwę.
Oto kilka wskazówek dotyczących ustawiania pól ConversionAction:
- Wszystkie pola wyliczeniowe
- Próba ustawienia dowolnego pola wyliczeniowego na wartość
UNKNOWNpowoduje wystąpienie błęduRequestError.INVALID_ENUM_VALUE. app_id- Atrybut
app_idjest niezmienny i można go ustawić tylko podczas tworzenia nowej konwersji z aplikacji. attribution_model_settings- Ustawienie tej opcji na wycofaną opcję powoduje błąd
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS. Google Ads obsługuje tylkoGOOGLE_ADS_LAST_CLICKiGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN. click_through_lookback_window_daysUstawienie tego atrybutu na wartość spoza dozwolonego zakresu spowoduje błąd
RangeError.TOO_LOWlubRangeError.TOO_HIGH.W przypadku działania powodującego konwersję
AD_CALLlubWEBSITE_CALLwartość tego atrybutu musi mieścić się w zakresie od 1 do 60 dni. W przypadku większości pozostałych działań powodujących konwersję dozwolony zakres to 1–90 dni.include_in_conversions_metricUstawienie tej wartości w operacji
createlubupdatekończy się niepowodzeniem i zwraca błądFieldError.IMMUTABLE_FIELD. Zamiast tego ustawprimary_for_goalzgodnie z instrukcjami w przewodniku po celach konwersji.phone_call_duration_secondsPróba ustawienia tego atrybutu w przypadku działania powodującego konwersję, które nie dotyczy połączeń, powoduje błąd
FieldError.VALUE_MUST_BE_UNSET.typeAtrybut
typejest niezmienny i można go ustawić tylko podczas tworzenia nowej konwersji.Aktualizacja działania powodującego konwersję, w której
typema wartośćUNKNOWN, powoduje błądMutateError.MUTATE_NOT_ALLOWED.value_settingsW przypadku działania powodującego konwersję
WEBSITE_CALLlubAD_CALLparametrvalue_settingsmusi mieć wartośćtrue.always_use_default_valuePodanie wartościfalsepodczas tworzenia lub aktualizowania tej wartości powoduje błądINVALID_VALUE.view_through_lookback_window_daysUstawienie tego atrybutu na wartość spoza dozwolonego zakresu spowoduje błąd
RangeError.TOO_LOWlubRangeError.TOO_HIGH. W przypadku większości działań powodujących konwersje dozwolony zakres to 1–30 dni.Tego atrybutu nie można ustawić w przypadku działań powodujących konwersję
AD_CALLaniWEBSITE_CALL. Podanie wartości powoduje błądVALUE_MUST_BE_UNSET.