Pierwsze kroki

Aby rejestrować konwersje, musisz włączyć śledzenie konwersji na koncie Google Ads. W tym przewodniku znajdziesz szczegółowe informacje o tym, jak sprawdzić, czy śledzenie konwersji jest włączone, włączyć je, jeśli nie jest jeszcze włączone, oraz pobrać informacje o dotychczasowych działaniach powodujących konwersję.

Większość działań powodujących konwersję wymaga też od Ciebie dodatkowych czynności, aby je śledzić. Więcej informacji o różnych typach działań powodujących konwersję i ich wymaganiach znajdziesz w przewodniku Tworzenie działań powodujących konwersję.

Konfigurowanie witryny pod kątem śledzenia konwersji

Jeśli dopiero zaczynasz integrację importowania konwersji offline, musisz najpierw wykonać czynności opisane w sekcji Konfigurowanie tagu Google na potrzeby konwersji rozszerzonych dotyczących potencjalnych klientów, aby skonfigurować witrynę pod kątem śledzenia konwersji rozszerzonych dotyczących potencjalnych klientów. Konfigurację witryny możesz też przeprowadzić za pomocą Menedżera tagów Google. Aby to zrobić, wykonaj czynności opisane w tym przewodniku.

Włączanie śledzenia konwersji na koncie Google Ads

Pobieranie informacji o konfiguracji śledzenia konwersji

Aby sprawdzić konfigurację śledzenia konwersji na koncie i sprawdzić, czy śledzenie konwersji jest włączone, prześlij zapytanie do zasobu Customer o identyfikatorze ConversionTrackingSetting. Wykonaj to zapytanie: GoogleAdsService.SearchStream:

SELECT
  customer.conversion_tracking_setting.google_ads_conversion_customer,
  customer.conversion_tracking_setting.conversion_tracking_status,
  customer.conversion_tracking_setting.conversion_tracking_id,
  customer.conversion_tracking_setting.cross_account_conversion_tracking_id
FROM customer

Pole google_ads_conversion_customer wskazuje konto Google Ads, które tworzy konwersje dla tego klienta i nimi zarządza. W przypadku klientów korzystających ze śledzenia konwersji dla wielu kont jest to identyfikator konta menedżera. Aby tworzyć konwersje i zarządzać nimi, w żądaniach interfejsu Google Ads API należy podać identyfikator klienta Google Ads jako parametr customer_id. Pamiętaj, że to pole jest wypełniane nawet wtedy, gdy śledzenie konwersji nie jest włączone.

Pole conversion_tracking_status wskazuje, czy śledzenie konwersji jest włączone i czy konto używa śledzenia konwersji dla wielu kont.

Utwórz działanie powodujące konwersję w ramach klienta konwersji Google Ads.

Jeśli wartość conversion_tracking_status to NOT_CONVERSION_TRACKED, śledzenie konwersji nie jest włączone na koncie. Włącz śledzenie konwersji, tworząc co najmniej 1 ConversionAction na koncie konwersji Google Ads, jak w tym przykładzie. Możesz też utworzyć działanie powodujące konwersję w interfejsie, wykonując instrukcje w Centrum pomocy dotyczące rodzaju konwersji, który chcesz włączyć.

Pamiętaj, że konwersje rozszerzone są włączane automatycznie, gdy są wysyłane przez interfejs Google Ads API, ale można je wyłączyć w interfejsie Google Ads.

Przykładowy kod

Java

private void runExample(GoogleAdsClient googleAdsClient, long customerId) {

  // Creates a ConversionAction.
  ConversionAction conversionAction =
      ConversionAction.newBuilder()
          // Note that conversion action names must be unique. If a conversion action already
          // exists with the specified conversion_action_name the create operation will fail with
          // a ConversionActionError.DUPLICATE_NAME error.
          .setName("Earth to Mars Cruises Conversion #" + getPrintableDateTime())
          .setCategory(ConversionActionCategory.DEFAULT)
          .setType(ConversionActionType.WEBPAGE)
          .setStatus(ConversionActionStatus.ENABLED)
          .setViewThroughLookbackWindowDays(15L)
          .setValueSettings(
              ValueSettings.newBuilder()
                  .setDefaultValue(23.41)
                  .setAlwaysUseDefaultValue(true)
                  .build())
          .build();

  // Creates the operation.
  ConversionActionOperation operation =
      ConversionActionOperation.newBuilder().setCreate(conversionAction).build();

  try (ConversionActionServiceClient conversionActionServiceClient =
      googleAdsClient.getLatestVersion().createConversionActionServiceClient()) {
    MutateConversionActionsResponse response =
        conversionActionServiceClient.mutateConversionActions(
            Long.toString(customerId), Collections.singletonList(operation));
    System.out.printf("Added %d conversion actions:%n", response.getResultsCount());
    for (MutateConversionActionResult result : response.getResultsList()) {
      System.out.printf(
          "New conversion action added with resource name: '%s'%n", result.getResourceName());
    }
  }
}
      

C#

public void Run(GoogleAdsClient client, long customerId)
{
    // Get the ConversionActionService.
    ConversionActionServiceClient conversionActionService =
        client.GetService(Services.V20.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::V20::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V20::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V20::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;
}
      

Upewnij się, że parametr conversion_action_type ma prawidłową wartość ConversionActionType. Więcej wskazówek na temat tworzenia działań powodujących konwersję w interfejsie Google Ads API znajdziesz w artykule Tworzenie działań powodujących konwersję.

Pobieranie dotychczasowego działania powodującego konwersję

Szczegóły dotychczasowego działania powodującego konwersję możesz pobrać, wysyłając to zapytanie. Sprawdź, czy identyfikator klienta w żądaniu odpowiada klientowi Google Ads, którego identyfikator podano powyżej, a typ działania powodującego konwersję ma prawidłową wartość ConversionActionType.

SELECT
  conversion_action.resource_name,
  conversion_action.name,
  conversion_action.status
FROM conversion_action
WHERE conversion_action.type = 'INSERT_CONVERSION_ACTION_TYPE'

Śledzenie konwersji dla wielu kont

Jeśli używasz śledzenia konwersji dla wielu kont, funkcja ConversionActionService zwraca te działania powodujące konwersję:

  • wszystkie działania powodujące konwersję zdefiniowane przez konto menedżera używane przez konto do śledzenia konwersji dla wielu kont;
  • Wszystkie działania powodujące konwersję, dla których klient ma statystyki, w tym działania zdefiniowane przez system i działania należące do menedżera, nawet jeśli ten menedżer później je odłączy.
  • wszystkie działania zdefiniowane przez klienta na jego koncie;
  • konwersje Analytics tworzone w połączonych usługach w Google Analytics; Obejmuje to działania związane z konwersjami Analytics, które nie zostały zaimportowane do Google Ads i mają stan HIDDEN.

Od wersji v19.1 możesz używać interfejsu Google Ads API, aby włączyć śledzenie konwersji krzyżowych podczas tworzenia kont klienta.

Podczas tworzenia nowego elementu Customer ustaw parametr conversion_tracking_setting.google_ads_conversion_customer na nazwa zasobu konta menedżera, które ma zarządzać działaniami powodującymi konwersję w imieniu konta klienta. To konto menedżera musi też być kontem, które wysyła create na nowe konto klienta.

Od wersji v20 możesz używać interfejsu Google Ads API, aby włączyć śledzenie konwersji krzyżowych podczas tworzenia i aktualizowania kont klientów.

Podczas aktualizowania dotychczasowego konta klienta możesz włączyć śledzenie konwersji dla wielu kont, ustawiając pole conversion_tracking_setting.google_ads_conversion_customer. W tym polu należy podać nazwę zasobu konta menedżera, które ma zarządzać działaniami powodującymi konwersję w imieniu konta klienta. To konto menedżera musi też być kontem, które wysyła prośbę update w imieniu konta klienta.

Gdy włączysz śledzenie konwersji dla wielu kont lub zmienisz menedżera śledzenia konwersji na istniejącym koncie klienta, obowiązują te same zastrzeżenia, co w przypadku wprowadzania tej zmiany w interfejsie użytkownika. Więcej szczegółów:

  • Konto klienta przejmie domyślne reguły wartości konwersji i domyślne cele związane z cyklem życia klienta z konfiguracji nowego menedżera śledzenia konwersji.
  • Kampanie kierowane na konkretne działanie powodujące konwersję zaczną używać domyślnych celów konwersji na koncie menedżera konwersji. Jeśli nadal będziesz kierować reklamy na konkretne działanie powodujące konwersję, może to spowodować niespójności, ponieważ konto menedżera może nie mieć tych samych celów co konto klienta. Upewnij się, że kampanie są optymalizowane pod kątem odpowiednich celów.
  • Jeśli dane konto należy do więcej niż jednego konta menedżera, możesz używać na nim działań powodujących konwersje tylko z jednego konta menedżera. Jeśli nie podasz konta śledzenia konwersji, domyślnie będzie ono używane jako konto śledzenia konwersji.

Utwórz działania powodujące konwersję

Aby mierzyć konwersje, skonfiguruj zdarzenie 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. Szczegółowe wymagania dotyczące innych typów działań konwersji znajdziesz w tym artykule w Centrum pomocy.

Przykładowy kod

Z poniższego przykładu kodu dowiesz się, jak utworzyć nowe działanie powodujące konwersję. W szczególności tworzy działanie powodujące konwersję z parametrem type ustawionym na UPLOAD_CLICKS. Ustawia 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.V20.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::V20::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V20::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V20::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 w folderze Remarketing w bibliotece klienta oraz w zbiorze przykładów kodu: Przykład kodu dodania 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ę z type równą 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 spowoduje 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.