W tym przewodniku znajdziesz listę różnych typów działań powodujących konwersję, które można tworzyć za pomocą interfejsu Google Ads API, informacje o tym, jak są one mapowane na interfejs internetowy Google Ads oraz szczegółowy przykładowy kod pokazujący, jak tworzyć nowe 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
wymaga różnych działań powodujących konwersję.
Najlepszym sposobem na skonfigurowanie w interfejsie API nowych działań powodujących konwersję jest skorzystanie z poniższego przykładowego kodu działania powodującego konwersję. Przykład ten obsługuje za Ciebie wszystkie zadania uwierzytelniania w tle i pomaga utworzyć ConversionAction
.
Większość działań powodujących konwersję wymaga też wykonania dodatkowych czynności, aby można było je śledzić. Aby np. śledzić konwersje w witrynie, musisz dodać do strony konwersji w witrynie fragment kodu nazywany tagiem. Inne wymagania dotyczące działań powodujących konwersję znajdziesz w tym artykule w Centrum pomocy.
Konwersje w witrynie
Dzięki konwersjom w witrynie możesz śledzić działania w witrynie, np. sprzedaż online, kliknięcia linków, wyświetlenia stron i rejestracje.
Aby śledzić konwersje w witrynie, musisz utworzyć ConversionAction
z wartością ConversionActionType
ustawioną na WEBPAGE
i dodać do strony konwersji w witrynie fragment kodu nazywany tagiem.
ConversionAction
obejmuje kilka typów konwersji w witrynie, które w interfejsie API są rozróżniane polem type
w każdym polu TagSnippet
znajdującym się w polu tag_snippets tagu ConversionAction
.
TagSnippet
zawiera kod śledzenia, który musisz umieścić w witrynie, by śledzić działania powodujące konwersję.
Konwersje typu witryna i kliknięcie numeru telefonu wymagają tagu event_snippet
, który należy umieścić na stronach internetowych wskazujących działanie powodujące konwersję, np. potwierdzenie płatności lub przesłanie formularza kontaktowego, oraz element global_site_tag
, który musi być zainstalowany na każdej stronie witryny. Oba te atrybuty możesz pobrać za pomocą narzędzia ConversionActionService
. Więcej informacji o tagowaniu stron znajdziesz w Centrum pomocy.
W tabeli poniżej znajdziesz odpowiadające im parametry interfejsu API, których należy użyć w przypadku każdego Źródła w interfejsie internetowym Google Ads:
Typ kodu śledzenia | Źródło Google Ads |
---|---|
WEBPAGE |
Witryna, witryna (Google Analytics (GA4)) |
WEBPAGE_ONCLICK |
Witryna, witryna (Google Analytics (GA4)) |
CLICK_TO_CALL |
Kliknięcia numeru telefonu |
--- |
Witryna (Google Analytics (UA)) |
konwersji w aplikacji,
Konwersja z aplikacji umożliwia śledzenie instalacji aplikacji mobilnej lub zakupów w aplikacji ze Sklepu Google Play.
Tabela poniżej zawiera parametry interfejsu API ConversionActionType
, które należy wykorzystać w przypadku każdego Źródła w interfejsie internetowym Google Ads:
Typ działania powodującego konwersję | Źródło Google Ads |
---|---|
GOOGLE_PLAY_DOWNLOAD |
Google Play > Instalacje |
GOOGLE_PLAY_IN_APP_PURCHASE |
Google Play > Zakupy w aplikacji |
Jeśli chcesz śledzić inne działania w aplikacji mobilnej za pomocą usług w Google Analytics 4 lub analityki aplikacji przez firmy zewnętrzne. Zobacz Dodatkowe typy działań powodujących konwersję.
Konwersje telefoniczne
Śledzenie konwersji telefonicznych pozwala śledzić połączenia z reklam, połączenia z numerem podanym w Twojej witrynie i kliknięcia numerów w witrynach mobilnych.
Tabela poniżej zawiera parametry interfejsu API ConversionActionType
, które należy wykorzystać w przypadku każdego Źródła w interfejsie internetowym Google Ads:
Typ działania powodującego konwersję | Źródło Google Ads |
---|---|
AD_CALL |
Połączenia z reklam korzystających z rozszerzeń połączeń lub reklam typu „tylko połączenie” |
WEBSITE_CALL |
Połączenia z numerem telefonu w Twojej witrynie |
CLICK_TO_CALL |
Kliknięcia numeru w Twojej witrynie mobilnej |
Typ CLICK_TO_CALL
różni się od typu AD_CALL
tym, że nie śledzi rzeczywistych połączeń telefonicznych. Zamiast tego CLICK_TO_CALL
śledzi tylko kliknięcia numeru telefonu z urządzenia mobilnego. Jest to przydatne, gdy nie możesz używać
numeru Google do przekazywania połączeń do śledzenia połączeń telefonicznych.
AD_CALL
Działanie powodujące konwersję AD_CALL
wyświetla się w interfejsie internetowym Google Ads jako konwersja Połączenia z reklam. Po utworzeniu działania powodującego konwersję AD_CALL
podczas tworzenia CallAsset
podaj jego nazwę w polu call_conversion_action
. Komponenty do wykonywania połączeń pozwalają wyświetlać numer telefonu bezpośrednio w reklamach.
Połączenia są rejestrowane jako konwersje, jeśli trwają dłużej niż określony czas. Wartość domyślna to 60 sekund.
WEBSITE_CALL
Działanie powodujące konwersję WEBSITE_CALL
wyświetla się w interfejsie internetowym Google Ads jako konwersja Połączenia z witryny.
W przeciwieństwie do AD_CALL
ten moduł do śledzenia wymaga dodania do witryny event_snippet
i global_site_tag
, aby pobierać dynamiczny numer Google do przekazywania połączeń na potrzeby śledzenia połączeń z numerów podanych w witrynie. Dodatkowo musisz skonfigurować komponent do wykonywania połączeń i połączyć go z nim na poziomie klienta, kampanii lub grupy reklam.
Importowanie konwersji offline
W tabeli poniżej znajdziesz odpowiadające im parametry interfejsu API ConversionActionType
, których należy użyć w przypadku poszczególnych źródeł w interfejsie internetowym Google Ads, oraz link do dokumentacji dotyczącej poszczególnych typów działań powodujących konwersję:
Typ działania powodującego konwersję | Źródło Google Ads | Przewodnik po konfiguracji interfejsu API |
---|---|---|
UPLOAD_CLICKS |
Śledź konwersje po kliknięciu i konwersje rozszerzone dotyczące potencjalnych klientów | Przewodnik po kliknięciach przesyłania
Przewodnik po konwersjach rozszerzonych dotyczących potencjalnych klientów |
UPLOAD_CALLS |
Śledź konwersje telefoniczne | Przewodnik po konfiguracji interfejsu API |
STORE_SALES |
Śledzenie konwersji polegających na sprzedaży w sklepie | Przewodnik po konfiguracji interfejsu API |
Konwersje rozszerzone w kampaniach internetowych
Konwersje rozszerzone w kampaniach internetowych pozwalają wysyłać własne dane o konwersjach dotyczące WEBPAGE
działań powodujących konwersję w ciągu 24 godzin od zdarzenia konwersji, zamiast robić to w tym samym czasie. Dzięki temu możesz znajdować dane własne z różnych źródeł, takich jak baza danych klientów czy system CRM.
Dodatkowe typy działań powodujących konwersję
Interfejs Google Ads API udostępnia w raportach dodatkowe typy działań powodujących konwersję, ale może ograniczać lub blokować tworzenie i modyfikowanie tych działań.
Konwersje SKAdNetwork
Jeśli prowadzisz kampanie promujące aplikacje na iOS i wdrożysz platformę SKAdNetwork, możesz uzyskać dostęp do danych SKAdNetwork udostępnianych Google na poziomie Customer
i Campaign
, korzystając z tych zasobów:
Pole raportu | Opis |
---|---|
metrics.sk_ad_network_installs |
Liczba instalacji zgłoszona przez Apple. Te dane można dzielić na segmenty tylko według dowolnej kombinacji segmentów segments.sk_ad_network_conversion_value i segmentów związanych z datą.
|
metrics.sk_ad_network_total_conversions |
Łączna liczba konwersji raportowanych przez Apple z uwzględnieniem instalacji i innych typów konwersji. Te dane można dzielić na segmenty tylko według segmentów związanych ze SKAdNetwork oraz z datą. |
segments.sk_ad_network_ad_event_type |
Typ zdarzenia, które wystąpiło w przypadku konkretnej konwersji. |
segments.sk_ad_network_attribution_credit |
Sposób przypisywania udziału w konwersjach danej konwersji. |
segments.sk_ad_network_fine_conversion_value |
Wartość konwersji zgłoszona przez Apple. Tego segmentu nie można zastosować do żadnych danych innych niż Jeśli Apple zgłosi wartość |
segments.sk_ad_network_coarse_conversion_value |
Przybliżona wartość pojedynczej konwersji. |
segments.sk_ad_network_postback_sequence_index |
Pozycja wywołania zwrotnego dla określonej konwersji. |
segments.sk_ad_network_source_app.sk_ad_network_source_app_id |
Identyfikator aplikacji, w której wyświetliła się reklama, która doprowadziła do zainstalowania aplikacji z iOS Store Kit Ad Network. |
segments.sk_ad_network_source_domain |
Witryna, w której wyświetliła się reklama, która doprowadziła do zainstalowania aplikacji z iOS Store Kit Ad Network. Wartość null oznacza, że dany segment nie ma zastosowania (np. jest w kampanii innej niż iOS) lub nie wystąpił w żadnym wywołaniu zwrotnym wysłanym przez Apple. |
segments.sk_ad_network_source_type |
Typ źródła, w którym wyświetliła się reklama, która doprowadziła do zainstalowania systemu iOS Store Kit Ad Network. Wartość null oznacza, że dany segment nie ma zastosowania (np. jest w kampanii innej niż iOS) albo w wywołaniach zwrotnych wysłanych przez Apple nie było ani domeny źródłowej, ani aplikacji źródłowej. |
segments.sk_ad_network_user_type |
Typ użytkownika, który wygenerował określoną konwersję. |
segments.sk_ad_network_redistributed_fine_conversion_value |
Wartości konwersji w tym segmencie zawierają wartości null, które zostały przeniesione do wartości konwersji. Ten segment reprezentuje sumę zaobserwowanych precyzyjnych wartości konwersji zwracanych przez Apple i modelowanych wartości null z Google. |
Możesz też zapisać mapowanie wartości konwersji SKAdNetwork dla określonych połączonych klientów korzystających z aplikacji na iOS za pomocą narzędzia CustomerSkAdNetworkConversionValueSchema
.
Przykładowy kod w Pythonie
#!/usr/bin/env python # Copyright 2019 Google LLC # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. # You may obtain a copy of the License at # # https://www.apache.org/licenses/LICENSE-2.0 # # Unless required by applicable law or agreed to in writing, software # distributed under the License is distributed on an "AS IS" BASIS, # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. # See the License for the specific language governing permissions and # limitations under the License. import argparse import sys from google.ads.googleads.client import GoogleAdsClient from google.ads.googleads.errors import GoogleAdsException def main(client, customer_id): """Adds a keyword plan, campaign, ad group, etc. to the customer account. Also handles errors from the API and prints them. Args: client: An initialized instance of GoogleAdsClient customer_id: A str of the customer_id to use in requests. """ res = update_skan_cv_schema( client, customer_id, "my_app_id", "account_link_id" ) print(res) def update_skan_cv_schema(client, customer_id, app_id, account_link_id): skan_service = client.get_service( "CustomerSkAdNetworkConversionValueSchemaService" ) req = client.get_type( "MutateCustomerSkAdNetworkConversionValueSchemaRequest" ) operation = client.get_type( "CustomerSkAdNetworkConversionValueSchemaOperation" ) schema_instance = client.get_type( "CustomerSkAdNetworkConversionValueSchema" ) new_schema = operation.update new_schema.resource_name = ( skan_service.customer_sk_ad_network_conversion_value_schema_path( "customer_id", "account_link_id" ) ) new_schema.schema.app_id = app_id new_schema.schema.measurement_window_hours = 48 skan_cv_mapping = ( schema_instance.SkAdNetworkConversionValueSchema.FineGrainedConversionValueMappings() ) skan_cv_mapping.fine_grained_conversion_value = 0 # 0 - 63 skan_cv_mapping.conversion_value_mapping.min_time_post_install_hours = 0 skan_cv_mapping.conversion_value_mapping.max_time_post_install_hours = 48 skan_cv_event = schema_instance.SkAdNetworkConversionValueSchema.Event() skan_cv_event.mapped_event_name = "TEST" skan_cv_event.event_revenue_value = 10 skan_cv_mapping.conversion_value_mapping.mapped_events.append(skan_cv_event) new_schema.schema.fine_grained_conversion_value_mappings.append( skan_cv_mapping ) req.operation = operation req.customer_id = customer_id res = skan_service.mutate_customer_sk_ad_network_conversion_value_schema( req ) return res if __name__ == "__main__": # GoogleAdsClient will read the google-ads.yaml configuration file in the # home directory if none is specified. googleads_client = GoogleAdsClient.load_from_storage( version="v17" ) parser = argparse.ArgumentParser( description="Creates a keyword plan for specified customer." ) # The following argument(s) should be provided to run the example. parser.add_argument( "-c", "--customer_id", type=str, required=True, help="The Google Ads customer ID.", ) args = parser.parse_args() try: main(googleads_client, args.customer_id) except GoogleAdsException as ex: print( f'Request with ID "{ex.request_id}" failed with status ' f'"{ex.error.code().name}" and includes the following errors:' ) for error in ex.failure.errors: print(f'\tError with message "{error.message}".') if error.location: for field_path_element in error.location.field_path_elements: print(f"\t\tOn field: {field_path_element.field_name}") sys.exit(1)
Google Analytics
Konwersje z połączonej usługi w Google Analytics mają jedną z tych wartości type
:
Konwersja w usłudze w GA4:
GOOGLE_ANALYTICS_4_CUSTOM
GOOGLE_ANALYTICS_4_PURCHASE
Identyfikator usługi w GA4, nazwę usługi i nazwę zdarzenia możesz też pobrać z pola
google_analytics_4_settings
.Konwersja w usłudze w Universal Analytics:
UNIVERSAL_ANALYTICS_GOAL
UNIVERSAL_ANALYTICS_TRANSACTION
W konwersji w usłudze w GA4 możesz wprowadzić te zmiany:
- Aby zaimportować konwersję z usługi w GA4 na konto Google Ads, zmień wartość pola
status
zHIDDEN
naENABLED
. - Zmodyfikuj pola
primary_for_goal
icategory
, by określić, jak ma ono wpływać na określanie stawek i raporty w Google Ads. - Zaktualizuj:
name
lubvalue_settings
. - Usuń konwersję z konta Google Ads za pomocą operacji
remove
.
Każda próba zmodyfikowania innych atrybutów zaimportowanej konwersji GA4 lub dowolnego atrybutu zaimportowanej konwersji Universal Analytics powoduje błąd MUTATE_NOT_ALLOWED
. Te zmiany możesz wprowadzać tylko w interfejsie Google Ads.
Firebase i analityka aplikacji przez firmy zewnętrzne
Aby zaimportować konwersje z analityki aplikacji przez firmy zewnętrzne lub Firebase, zmień status
parametru ConversionAction
z HIDDEN
na ENABLED
, korzystając z metody mutate
podanej w ConversionActionService
. W przypadku tych działań powodujących konwersję nie można zaktualizować obiektu app_id
.
FIREBASE_ANDROID_FIRST_OPEN
FIREBASE_ANDROID_IN_APP_PURCHASE
FIREBASE_ANDROID_CUSTOM
FIREBASE_IOS_FIRST_OPEN
FIREBASE_IOS_IN_APP_PURCHASE
FIREBASE_IOS_CUSTOM
THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN
THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE
THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM
THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN
THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE
THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM
Sprzedaż w sklepie
Chociaż nie można tworzyć działań powodujących konwersję STORE_SALES
ani STORE_SALES_DIRECT_UPLOAD
za pomocą interfejsu Google Ads API, interfejs API obsługuje przesyłanie transakcji sprzedaży w sklepie.
STORE_SALES
STORE_SALES_DIRECT_UPLOAD
Różne
Poniższe typy działań powodujących konwersję są tylko do odczytu w interfejsie Google Ads API i udostępniane do celów raportowania.
ANDROID_APP_PRE_REGISTRATION
ANDROID_INSTALLS_ALL_OTHER_APPS
FLOODLIGHT_ACTION
FLOODLIGHT_TRANSACTION
GOOGLE_HOSTED
LEAD_FORM_SUBMIT
SALESFORCE
SEARCH_ADS_360
SMART_CAMPAIGN_AD_CLICKS_TO_CALL
SMART_CAMPAIGN_MAP_CLICKS_TO_CALL
SMART_CAMPAIGN_MAP_DIRECTIONS
SMART_CAMPAIGN_TRACKED_CALLS
STORE_VISITS
WEBPAGE_CODELESS
Brak informacji
Jeśli Twoje konto Google Ads obejmuje inne typy działań powodujących konwersję, możesz zauważyć, że zapytania i raporty zwracają działania powodujące konwersję, dla których ConversionAction.type
ma wartość UNKNOWN
.
Interfejs API nie obsługuje zarządzania tymi działaniami powodującymi konwersję, ale zwraca je w raportach, aby zapewnić kompletne wyniki dotyczące kluczowych danych konwersji, takich jak metrics.conversions
i metrics.conversions_value
.
Przykładowy kod
Poniższy przykładowy kod przeprowadzi Cię przez proces tworzenia nowego działania powodującego konwersję. W szczególności tworzy działanie powodujące konwersję z ustawieniem type
ustawionym na UPLOAD_CLICKS
.
Ten proces przebiega tak samo jak w przypadku tworzenia nowego działania powodującego konwersję za pomocą opcji Importuj > Zaimportuj ręczny za pomocą interfejsu API lub przesyłania danych > Śledź konwersje po kliknięciu. Ustawia też category
na DEFAULT
.
Stosowane są te ustawienia domyślne:
Interfejs Google Ads API ustawia pole
primary_for_goal
automatycznie, ale możesz je skonfigurować bezpośrednio, aby kontrolować, jak działanie powodujące konwersję wpływa na raportowanie i określanie stawek na koncie w przypadku połączenia z celami konwersji.Interfejs Google Ads API ustawia automatycznie wartość
counting_type
naMANY_PER_CLICK
. Więcej informacji znajdziesz w artykule Opcje liczenia konwersji – informacje.Interfejs Google Ads API ustawia model atrybucji na Na podstawie danych, ustawiając w polu
attribution_model_settings
wartośćGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
AttributionModel
.
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.V17.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, customer_id): conversion_action_service = client.get_service("ConversionActionService") # Create the operation. conversion_action_operation = client.get_type("ConversionActionOperation") # Create conversion action. conversion_action = 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 = conversion_action.value_settings value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response = ( 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::V17::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V17::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V17::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; }
Ten przykład znajdziesz też w folderze Remarketing w bibliotece klienta oraz w kolekcji przykładów kodu: Dodaj przykładowy kod działania powodującego konwersję.
Weryfikacje
Google Ads i interfejs Google Ads API obsługują szeroką gamę 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 używasz unikalnej nazwy dla każdego działania powodującego konwersję.
Oto kilka wskazówek dotyczących konfigurowania pól ConversionAction
:
- Wszystkie pola wyliczenia
- Próba ustawienia w dowolnym polu wyliczenia na
UNKNOWN
powoduje wyświetlenie błęduRequestError.INVALID_ENUM_VALUE
. app_id
- Atrybut
app_id
jest stały i można go ustawić tylko podczas tworzenia nowej konwersji w aplikacji. attribution_model_settings
- Ustawienie wartości na Wycofana opcja powoduje wyświetlenie błędu
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS
. Google Ads obsługuje tylko wartościGOOGLE_ADS_LAST_CLICK
iGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
. click_through_lookback_window_days
Ustawienie tego atrybutu na wartość spoza dozwolonego zakresu powoduje błąd
RangeError.TOO_LOW
lubRangeError.TOO_HIGH
.W przypadku działania powodującego konwersję
AD_CALL
lubWEBSITE_CALL
ten atrybut musi należeć do zakresu[1,60]
. W przypadku większości innych działań powodujących konwersję dozwolony zakres to[1,30]
.include_in_conversions_metric
Ustawienie tej wartości w operacji
create
lubupdate
kończy się błędemFieldError.IMMUTABLE_FIELD
. Zamiast tego ustawprimary_for_goal
w sposób opisany w przewodniku po celach konwersji.phone_call_duration_seconds
Próba ustawienia tego atrybutu dla działania powodującego konwersję, które nie jest związane z połączeniami, spowoduje błąd
FieldError.VALUE_MUST_BE_UNSET
.type
Atrybutu
type
nie można zmienić i można go ustawić tylko podczas tworzenia nowej konwersji.Zaktualizowanie działania powodującego konwersję, w którym wartość
type
ma wartośćUNKNOWN
, powoduje wystąpienie błęduMutateError.MUTATE_NOT_ALLOWED
.value_settings
Parametr
value_settings
dla działania powodującego konwersjęWEBSITE_CALL
lubAD_CALL
musi miećalways_use_default_value
wartośćtrue
. Jeśli podczas tworzenia lub aktualizowania tej wartości określisz wartośćfalse
, spowoduje to błądINVALID_VALUE
.view_through_lookback_window_days
Ustawienie tego atrybutu na wartość spoza dozwolonego zakresu powoduje błąd
RangeError.TOO_LOW
lubRangeError.TOO_HIGH
. W przypadku większości działań powodujących konwersję dozwolony zakres to[1,30]
.Tego atrybutu nie można ustawić w przypadku działań powodujących konwersję
AD_CALL
lubWEBSITE_CALL
. Podanie wartości powoduje błądVALUE_MUST_BE_UNSET
.