W tym przewodniku znajdziesz listę różnych typów działań powodujących konwersję, które możesz tworzyć za pomocą interfejsu Google Ads API, informacje o tym, jak są one mapowane 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 zakup online i rozmowa telefoniczna
wymagają różnych działań powodujących konwersję.
Najlepszym sposobem skonfigurowania nowych działań powodujących konwersję w interfejsie API jest skorzystanie z poniższego przykładu kodu działania powodującego konwersję. Ten przykład wykonuje za Ciebie wszystkie zadania uwierzytelniania w tle i pokazuje, jak utworzyć ConversionAction
.
Śledzenie większości działań powodujących konwersję wymaga też dodatkowych działań z Twojej strony. 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, takie jak sprzedaż online, kliknięcia linków, wyświetlenia strony i rejestracje.
Aby śledzić konwersje w swojej witrynie, musisz utworzyć ConversionAction
z ConversionActionType
ustawionym jako WEBPAGE
i dodać do strony konwersji w witrynie fragment kodu nazywany tagiem.
Element ConversionAction
obejmuje kilka typów konwersji w witrynie. Wyróżnia się je w interfejsie API polem type
każdego elementu TagSnippet
wymienionego w polu tag_snippets elementu ConversionAction
.
TagSnippet
dostarcza kod śledzenia, który musi zostać umieszczony w witrynie, aby można było śledzić działania powodujące konwersję.
Konwersje po kliknięciu witryny i kliknięcia numeru telefonu wymagają tagu event_snippet
, który należy umieścić na stronach internetowych wskazujących działanie powodujące konwersję, np. potwierdzenia płatności lub przesłania formularza kontaktowego, oraz tag global_site_tag
, który trzeba zainstalować na każdej stronie witryny. Oba te atrybuty możesz pobrać za pomocą metody ConversionActionService
. Więcej informacji o tagowaniu stron znajdziesz w Centrum pomocy.
W tabeli poniżej znajdziesz równoważne parametry interfejsu API, które należy stosować w przypadku poszczególnych Ź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 w aplikacji pozwala śledzić instalacje aplikacji mobilnej lub zakupy w aplikacji ze Sklepu Google Play.
W tabeli poniżej znajdziesz równoważne parametry interfejsu API ConversionActionType
, których należy użyć w przypadku poszczególnych źródeł 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 aplikacjach mobilnych za pomocą usług w Google Analytics 4 lub analityki aplikacji innych firm. Zobacz Dodatkowe typy działań powodujących konwersję.
Konwersje telefoniczne
Śledzenie konwersji telefonicznych pozwala monitorować połączenia z reklam, połączenia z numerem podanym w witrynie i kliknięcia numerów w witrynach mobilnych.
W tabeli poniżej znajdziesz równoważne parametry interfejsu API ConversionActionType
, których należy użyć w przypadku poszczególnych źródeł 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 na urządzeniu mobilnym. Jest to przydatne, gdy nie można użyć 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 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 CallAsset
. Komponenty do wykonywania połączeń umożliwiają wyświetlanie numeru telefonu bezpośrednio w reklamach.
Połączenie jest rejestrowane 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
wyświetla się w interfejsie Google Ads jako konwersja połączenia z witryny.
W przeciwieństwie do AD_CALL
ten tag śledzenia wymaga dodania w witrynie parametrów 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 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żywać w przypadku poszczególnych źródeł w interfejsie internetowym Google Ads, oraz link do dokumentacji 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 |
Śledzenie konwersji po kliknięciu i konwersjach rozszerzonych powiązanych z potencjalnymi klientami | 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 umożliwiają wysyłanie własnych danych o konwersjach w przypadku WEBPAGE
działań powodujących konwersję w ciągu 24 godzin od zdarzenia konwersji, a nie w tym samym czasie. Umożliwia to lokalizowanie 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 blokować 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 o SKAdNetwork przekazywanych Google do Google na poziomie Customer
i Campaign
. Możesz w tym celu skorzystać z tych zasobów:
Pole raportu | Opis |
---|---|
metrics.sk_ad_network_conversions |
Liczba konwersji raportowana przez Apple. Te dane można dzielić na segmenty tylko według dowolnej kombinacji wartości segments.sk_ad_network_conversion_value i segmentów związanych z datą.
|
segments.sk_ad_network_conversion_value |
Wartość konwersji zgłoszona przez Apple. Tego segmentu nie można zastosować do danych innych niż Zwracana jest wartość |
Możesz też zapisać mapowanie wartości konwersji SKAdNetwork dla konkretnych połączonych klientów z aplikacjami 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="v16" ) 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 usługi GA4, jej nazwę i nazwę zdarzenia możesz też pobrać z pola
google_analytics_4_settings
.Konwersja usługi w Universal Analytics:
UNIVERSAL_ANALYTICS_GOAL
UNIVERSAL_ANALYTICS_TRANSACTION
W konwersjach usługi w GA4 możesz wprowadzić te zmiany:
- Aby zaimportować konwersję z usługi w GA4 na konto Google Ads, zmień pole
status
zHIDDEN
naENABLED
. - Zmodyfikuj pola
primary_for_goal
icategory
, aby wskazać, jak powinno ono wpływać na stawki i raporty Google Ads. - Zaktualizuj
name
lubvalue_settings
. - Usuń konwersję z konta Google Ads za pomocą operacji
remove
.
Każda próba zmiany innych atrybutów zaimportowanej konwersji GA4 lub dowolnego
atrybutu zaimportowanej konwersji Universal Analytics powoduje wystąpienie błędu MUTATE_NOT_ALLOWED
. Te zmiany możesz wprowadzić tylko w interfejsie Google Ads.
Firebase i analityka aplikacji przez firmy zewnętrzne
Aby zaimportować konwersje z zewnętrznej analityki aplikacji lub Firebase, zmień wartość status
elementu ConversionAction
z HIDDEN
na ENABLED
, korzystając z metody mutate
opisanej jako ConversionActionService
. W przypadku tych działań powodujących konwersję nie można zaktualizować komponentu 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że w sklepie
Chociaż nie możesz tworzyć działań powodujących konwersję typu STORE_SALES
ani STORE_SALES_DIRECT_UPLOAD
za pomocą interfejsu Google Ads API, obsługuje on przesyłanie transakcji sprzedaży w sklepie.
STORE_SALES
STORE_SALES_DIRECT_UPLOAD
Różne
Podane niżej typy działań powodujących konwersję są dostępne w interfejsie Google Ads API tylko do odczytu 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 konto Google Ads zawiera inne typy działań powodujących konwersję, może się okazać, że zapytania i raporty zwracają działania powodujące konwersję, w których ConversionAction.type
to „UNKNOWN
”.
Interfejs API nie obsługuje zarządzania tymi działaniami powodującymi konwersję, ale zwraca je w raportach, aby przedstawić kompletne wyniki dotyczące kluczowych danych o konwersjach, np. 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 parametrem type
ustawionym na UPLOAD_CLICKS
.
Przypomina to tworzenie nowego działania powodującego konwersję w interfejsie Google Ads za pomocą opcji Importuj > Importowanie ręczne przy użyciu interfejsu API lub Przesyłanie > Śledź konwersje po kliknięciu. Ustawia też w elemencie category
wartość DEFAULT
.
Obowiązują następujące ustawienia domyślne:
Interfejs Google Ads API ustawia
primary_for_goal
pole automatycznie, ale możesz samodzielnie ustawić to pole, aby kontrolować wpływ działania powodującego konwersję na raportowanie i ustalanie stawek na konciew połączeniu z celami konwersji.Interfejs Google Ads API automatycznie ustawia
counting_type
naMANY_PER_CLICK
. Więcej informacji znajdziesz w artykule Opcje zliczania konwersji.Interfejs Google Ads API ustawia model atrybucji na Oparty na danych, ustawiając w polu
attribution_model_settings
wartośćGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
równą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.V16.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::V16::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V16::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V16::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 można też znaleźć w folderze remarketingu w bibliotece klienta oraz w kolekcji przykładowego kodu: Dodaj przykładowy kod 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ęstszy błąd podczas tworzenia działania powodującego konwersję to DUPLICATE_NAME
.
Sprawdź, czy 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 wyliczenia na
UNKNOWN
powoduje błądRequestError.INVALID_ENUM_VALUE
. app_id
- Atrybut
app_id
jest stały i można go ustawić tylko podczas tworzenia nowej konwersji z aplikacji. attribution_model_settings
- Jeśli ustawisz wycofaną opcję, wystąpi 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 dla tego atrybutu wartości spoza dozwolonego zakresu powoduje błąd
RangeError.TOO_LOW
lubRangeError.TOO_HIGH
.Ten atrybut musi należeć do zakresu
[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 dla działania powodującego konwersję, które nie dotyczy połączeń, spowoduje wystąpienie błędu
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ę z wartością
type
równąUNKNOWN
spowoduje błądMutateError.MUTATE_NOT_ALLOWED
.value_settings
value_settings
w przypadku działania powodującego konwersjęWEBSITE_CALL
lubAD_CALL
musi mieć wartośćtrue
w polualways_use_default_value
. Określenie wartościfalse
podczas tworzenia lub aktualizowania tej wartości skutkuje błędemINVALID_VALUE
.view_through_lookback_window_days
Ustawienie dla tego atrybutu wartości 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
aniWEBSITE_CALL
. Określenie wartości powoduje błądVALUE_MUST_BE_UNSET
.