Utwórz działania powodujące konwersję

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 ConversionActionTypema 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 internetowejpo 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 aktywacjipołą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 CustomerCampaign 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ż metrics.sk_ad_network_installsmetrics.sk_ad_network_total_conversions. Można go łączyć tylko z segmentami związanymi z datami.

Jeśli Apple podaje wartość 0, zwracana jest wartość 0, a w przeciwnym razie nie jest zwracana żadna wartość. Aby odróżnić te 2 przypadki, sprawdź obecność pola.

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:

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 mutateConversionActionService.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.conversionsmetrics.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:

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 typedział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łąd RequestError.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 tylko GOOGLE_ADS_LAST_CLICKGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN.
click_through_lookback_window_days

Ustawienie tego atrybutu na wartość spoza dozwolonego zakresu powoduje błąd RangeError.TOO_LOW lub RangeError.TOO_HIGH.

Ten atrybut musi mieścić się w zakresie [1,60] w przypadku działania powodującego konwersję AD_CALL lub WEBSITE_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 lub update kończy się błędem FieldError.IMMUTABLE_FIELD. Zamiast tego ustaw primary_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łąd MutateError.MUTATE_NOT_ALLOWED.

value_settings

Wartość value_settings w przypadku działania powodującego konwersję WEBSITE_CALL lub AD_CALL musi być ustawiona na true.always_use_default_value Podanie wartości false podczas tworzenia lub aktualizowania tej wartości powoduje błąd INVALID_VALUE.

view_through_lookback_window_days

Ustawienie tego atrybutu na wartość spoza dozwolonego zakresu powoduje błąd RangeError.TOO_LOW lub RangeError.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 ani WEBSITE_CALL. Podanie wartości powoduje błąd VALUE_MUST_BE_UNSET.