W tym przewodniku znajdziesz listę różnych typów działań powodujących konwersję, które możesz utworzyć za pomocą interfejsu Google Ads API, informacje o tym, jak mapować je na interfejs internetowy Google Ads, oraz szczegółowy przykład kodu 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 zakupy online i połączenia telefoniczne wymagają różnych działań powodujących konwersję.
Najlepszym sposobem konfigurowania nowych działań powodujących konwersję w interfejsie API jest użycie przykładu kodu dodawania działania powodującego konwersję poniżej. Przykładowa aplikacja wykonuje za Ciebie wszystkie zadania związane z uwierzytelnianiem w tle i pokazuje, jak utworzyć ConversionAction
.
Większość działań powodujących konwersję wymaga też od Ciebie dodatkowych czynności, aby je śledzić. Aby na przykład śledzić konwersje w witrynie, musisz dodać do strony konwersji w witrynie fragment kodu zwany tagiem. Inne wymagania dotyczące działania konwersji znajdziesz w tym artykule w Centrum pomocy.
Konwersje w witrynie
Konwersja w witrynie umożliwia śledzenie działań w witrynie, takich jak sprzedaż online, kliknięcia linków, wyświetlenia stron i rejestracje.
Aby śledzić konwersje w witrynie, musisz utworzyć tag ConversionAction
, dla którego parametr ConversionActionType
ma wartość WEBPAGE
, oraz dodać do strony konwersji w witrynie fragment kodu o nazwie tag.
Parametr ConversionAction
obejmuje kilka typów konwersji w witrynie, które są rozróżniane w interfejsie API za pomocą pola type
w każdym tagu TagSnippet
wymienionym w polu tag_snippets w tagu ConversionAction
.
TagSnippet
zawiera kod śledzenia, który musisz uwzględnić w swojej witrynie, aby móc śledzić działania powodujące konwersję.
Konwersje na stronie internetowej i po kliknięciu numeru telefonu wymagają tagu event_snippet
, który należy umieścić na stronach internetowych wskazujących na działanie powodujące konwersję, np. na stronie potwierdzenia płatności lub stronie przesyłania formularza kontaktowego. Tag global_site_tag
musi być zainstalowany na każdej stronie witryny. Oba te atrybuty możesz pobrać za pomocą funkcji ConversionActionService
. Więcej informacji o oznaczaniu stron znajdziesz w Centrum pomocy.
W tabeli poniżej znajdziesz odpowiedniki parametrów interfejsu API, które należy używać 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 |
--- |
Strona internetowa (Google Analytics (UA)) |
Konwersje z aplikacji
Konwersja w aplikacji umożliwia śledzenie instalacji aplikacji mobilnej lub zakupów w aplikacji ze Sklepu Google Play.
W tabeli poniżej znajdziesz odpowiedniki parametrów interfejsu API ConversionActionType
dla 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 innej firmy. Zobacz Dodatkowe typy działań powodujących konwersję.
Konwersje telefoniczne
Śledzenie konwersji polegających na połączeniach telefonicznych umożliwia śledzenie połączeń z reklam, połączeń na numer telefonu podany w Twojej witrynie oraz kliknięć numerów w witrynach mobilnych.
W tabeli poniżej znajdziesz odpowiedniki parametrów interfejsu API ConversionActionType
dla 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 na numer 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
jest widoczne w interfejsie internetowym Google Ads jako konwersja Połączenia z reklam. Po utworzeniu działania powodującego konwersję AD_CALL
podaj jego nazwę zasobu w polu call_conversion_action
podczas tworzenia tagu CallAsset
. Zasoby połączeń umożliwiają wyświetlanie numeru telefonu bezpośrednio w reklamach.
Połączenie jest zgłaszane jako konwersja, jeśli trwa dłużej niż określony czas. Wartość domyślna to 60 sekund.
WEBSITE_CALL
Działanie powodujące konwersję WEBSITE_CALL
jest widoczne w interfejsie internetowym Google Ads jako konwersja Połączenia z witryny.
W przeciwieństwie do tagu AD_CALL
ten tag wymaga dodania do witryny tagów event_snippet
i global_site_tag
, aby pobrać dynamiczny numer Google do przekazywania połączeń do śledzenia połączeń na numery wymienione w witrynie. Musisz też skonfigurować zasob aktywacji i połączyć go na poziomie klienta, kampanii lub grupy reklam.
Importowanie konwersji offline
W tabeli poniżej znajdziesz odpowiedniki parametrów interfejsu API ConversionActionType
dla każdej źródła w interfejsie internetowym Google Ads oraz link do dokumentacji dotyczącej poszczególnych typów działań konwersji:
Typ działania powodującego konwersję | Źródło Google Ads | Przewodnik po konfigurowaniu interfejsu API |
---|---|---|
UPLOAD_CLICKS |
Śledzenie konwersji po kliknięciu i konwersji rozszerzonych dotyczących potencjalnych klientów | Przewodnik po przesyłaniu konwersji po kliknięciu
Przewodnik po konwersjach rozszerzonych dotyczących potencjalnych klientów |
UPLOAD_CALLS |
Śledź konwersje telefoniczne | Przewodnik po konfigurowaniu interfejsu API |
STORE_SALES |
Śledzenie konwersji polegających na sprzedaży w sklepie | Przewodnik po konfigurowaniu interfejsu API |
Konwersje rozszerzone w kampaniach internetowych
Konwersje rozszerzone w kampaniach internetowych umożliwiają wysyłanie danych własnych o konwersjach w przypadku działań powodujących konwersję WEBPAGE
w ciągu 24 godzin od zdarzenia konwersji, a nie w tym samym momencie. Umożliwia to znajdowanie danych własnych z różnych źródeł, takich jak baza danych klientów lub 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 uniemożliwiać tworzenie i modyfikowanie tych działań.
Konwersje SKAdNetwork
Jeśli prowadzisz kampanie promujące aplikacje na iOS i masz zaimplementowaną SKAdNetwork, możesz uzyskać dostęp do danych SKAdNetwork przekazywanych do Google na poziomie Customer
i Campaign
za pomocą tych zasobów:
Pole raportu | Opis |
---|---|
metrics.sk_ad_network_installs |
Liczba instalacji zgłoszonych przez Apple. Te dane można dzielić na segmenty tylko za pomocą dowolnej kombinacji segmentów związanych z tymi wymiarami: segments.sk_ad_network_conversion_value i datami.
|
metrics.sk_ad_network_total_conversions |
Łączna liczba konwersji, w tym instalacji i innych typów konwersji raportowanych przez Apple. Te dane można dzielić na segmenty tylko według segmentów związanych z SKAdNetwork i segmentów związanych z datami. |
segments.sk_ad_network_ad_event_type |
Typ zdarzenia, które wystąpiło w przypadku danej konwersji. |
segments.sk_ad_network_attribution_credit |
Sposób przypisywania udziału w przypadku danej konwersji. |
segments.sk_ad_network_fine_conversion_value |
Wartość konwersji zgłoszonej przez Apple. Tego segmentu nie można zastosować do żadnych danych innych niż Jeśli Apple podaje wartość |
segments.sk_ad_network_coarse_conversion_value |
Przybliżona wartość pojedynczej konwersji. |
segments.sk_ad_network_postback_sequence_index |
Kolejność pozycji wywołania zwrotnego w przypadku danej 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 pakietu 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 pakietu iOS Store Kit Ad Network. Wartość null oznacza, że ten segment nie jest odpowiedni (np. kampania nie dotyczy systemu iOS) lub nie był obecny w żadnych wywołaniach zwrotnych wysłanych 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 aplikacji z pakietu iOS Store Kit Ad Network. Wartość null oznacza, że ten segment nie ma zastosowania (np. w przypadku kampanii nieobejmującej iOS) lub że w żadnych wywołaniach zwrotnych wysłanych przez Apple nie występuje domena ani aplikacja źródłowa. |
segments.sk_ad_network_user_type |
Typ użytkownika, który dokonał określonej konwersji. |
segments.sk_ad_network_redistributed_fine_conversion_value |
Wartości konwersji w tym segmencie obejmują wartości null, które zostały ponownie przypisane do wartości konwersji. Ten segment reprezentuje sumę obserwowanych wartości konwersji z dokładnością zwracanych przez Apple i modelowanych wartości null z Google. |
segments.sk_ad_network_version |
Użyta wersja interfejsu API sieci reklamowej Store Kit na iOS. |
Możesz też zapisać mapowanie wartości konwersji SKAdNetwork w przypadku konkretnych połączonych klientów korzystających z aplikacji na iOS za pomocą CustomerSkAdNetworkConversionValueSchema
.
Przykładowy kod Pythona
#!/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="v18" ) 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 usługi w GA4:
GOOGLE_ANALYTICS_4_CUSTOM
GOOGLE_ANALYTICS_4_PURCHASE
Identyfikator, nazwę usługi w GA4 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 konfiguracji konwersji w usłudze w GA4 możesz wprowadzić te zmiany:
- Zaimportuj konwersję z usługi w GA4 na konto Google Ads, zmieniając w niej pole
status
z wartościHIDDEN
naENABLED
. - Zmień pola
primary_for_goal
icategory
, aby określić, jak ma ono wpływać na określanie stawek i raporty 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 jakichkolwiek atrybutów zaimportowanej konwersji Universal Analytics powoduje błąd MUTATE_NOT_ALLOWED
. Zmiany te możesz wprowadzać tylko w interfejsie Google Ads.
Analityka aplikacji w Firebase i w usługach zewnętrznych
Aby zaimportować konwersje z narzędzia analitycznego innej firmy lub z Firebase, zmień status
w z HIDDEN
na ENABLED
, używając metody mutate
w ConversionActionService
.ConversionAction
W przypadku tych działań powodujących konwersję nie można aktualizować parametru 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: przesyłanie danych do działania powodującego konwersję z raportowaniem
Chociaż za pomocą interfejsu Google Ads API nie możesz tworzyć działań powodujących konwersję STORE_SALES
ani STORE_SALES_DIRECT_UPLOAD
, interfejs ten obsługuje przesyłanie transakcji sprzedaży w sklepie stacjonarnym.
STORE_SALES
STORE_SALES_DIRECT_UPLOAD
Typy działań powodujących konwersję tylko do odczytu
W interfejsie Google Ads API wymienione niżej typy działań powodujących konwersję są dostępne tylko do odczytu i służą 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
Nieznany
Jeśli na Twoim koncie Google Ads występują inne typy działań powodujących konwersję, zapytania i raporty mogą zwracać działania powodujące konwersję, w których ConversionAction.type
jest UNKNOWN
.
Interfejs API nie obsługuje zarządzania tymi działaniami powodującymi konwersję, ale zwraca je w raportach, aby zapewnić pełne wyniki dotyczące kluczowych danych o konwersjach, takich jak metrics.conversions
i metrics.conversions_value
.
Przykładowy kod
W tym przykładzie kodu opisujemy proces tworzenia nowego działania powodującego konwersję. W szczególności tworzy działanie powodujące konwersję z parametrem type
ustawionym na UPLOAD_CLICKS
.
To jest ten sam proces w interfejsie Google Ads co tworzenie nowego działania powodującego konwersję za pomocą opcji Importuj > Ręczne importowanie za pomocą interfejsu API lub przesyłania > Śledź konwersje z kliknięć. W tym samym pliku ustawiamy też wartość category
na DEFAULT
.
Domyślnie obowiązują te ustawienia:
Interfejs Google Ads API ustawia pole
primary_for_goal
automatycznie, ale możesz je ustawić wyraźnie, aby kontrolować, jak działanie powodujące konwersję wpływa na raportowanie i określanie stawek na koncie po połączeniu z celami konwersji.Interfejs Google Ads API automatycznie ustawia parametr
counting_type
naMANY_PER_CLICK
. Więcej informacji znajdziesz w artykule Opcje liczenia konwersji – informacje.Interfejs Google Ads API ustawia model atrybucji na oparty na danych, ustawiając pole
attribution_model_settings
na 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.V18.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::V18::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V18::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V18::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 zbiorze przykładów kodu: Przykład kodu dodawania działania powodującego konwersję.
Weryfikacje
Google Ads i interfejs Google Ads API obsługują wiele działań powodujących konwersję, więc niektóre reguły walidacji 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 typu enum
- Próba ustawienia dowolnego pola typu enum na wartość
UNKNOWN
powoduje błądRequestError.INVALID_ENUM_VALUE
. app_id
- Atrybut
app_id
jest niezmienny i może być ustawiany tylko podczas tworzenia nowej konwersji aplikacji. attribution_model_settings
- Ustawienie tej opcji na wycofane spowoduje błąd
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS
. Google Ads obsługuje tylkoGOOGLE_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
.Ten atrybut musi mieścić się w zakresie
[1,60]
w przypadku działania powodującego konwersjęAD_CALL
lubWEBSITE_CALL
. 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
zgodnie z opisem w przewodniku po celach konwersji.phone_call_duration_seconds
Próba ustawienia tego atrybutu w działaniu powodującym konwersję, które nie dotyczy połączeń telefonicznych, powoduje błąd
FieldError.VALUE_MUST_BE_UNSET
.type
Atrybut
type
jest niezmienny i można go ustawić tylko podczas tworzenia nowej konwersji.Aktualizacja działania powodującego konwersję, w którym
type
=UNKNOWN
, powoduje błądMutateError.MUTATE_NOT_ALLOWED
.value_settings
Wartość
value_settings
w przypadku działania powodującego konwersjęWEBSITE_CALL
lubAD_CALL
musi być ustawiona natrue
.always_use_default_value
Podanie wartościfalse
podczas tworzenia lub aktualizowania tej wartości powoduje 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]
.Nie można go ustawić w przypadku działań powodujących konwersję
AD_CALL
aniWEBSITE_CALL
. Podanie wartości powoduje błądVALUE_MUST_BE_UNSET
.