Criar ações de conversão

Este guia fornece uma lista dos diferentes tipos de ações de conversão que você pode criar usando a API Google Ads, informações sobre como eles são mapeados para a Web do Google Ads interface de usuário e um exemplo de código detalhado que demonstra como criar novas ações de conversão.

Para medir as conversões, configure ConversionAction para o type de a ação de conversão que você quer acompanhar. Por exemplo, uma compra on-line e uma chamada telefônica exigem ações de conversão diferentes.

A melhor maneira de configurar novas ações de conversão na API é usar a Adicione o exemplo do código de ação de conversão abaixo. O exemplo processa todas as tarefas de autenticação em segundo plano e orienta você na criação de um ConversionAction.

A maioria das ações de conversão também requer etapas adicionais da sua parte para o acompanhamento para resolvê-los com rapidez. Por exemplo, para acompanhar conversões no seu site, você precisa adicionar um código um snippet chamado tag para a página de conversão do seu site. Para outra ação de conversão requisitos, consulte nossa artigo da Central de Ajuda.

Conversões no site

Com uma conversão no site, você pode acompanhar ações do site, como vendas on-line, cliques em links, visualizações de página e inscrições.

Para acompanhar conversões no seu site, você precisa criar uma ConversionAction com o ConversionActionType defina como WEBPAGE e adicione um snippet de código chamado tag à conversão no seu site.

O ConversionAction abrange vários tipos de conversões de sites, que são distinguidos na API pelo campo type em cada TagSnippet listado no campo tag_snippets de um ConversionAction.

Um TagSnippet fornece o código de acompanhamento que precisa ser incluído no seu site para acompanhar as ações de conversão. As conversões de site e clique no número de telefone exigem a event_snippet, que devem ser colocados em páginas da Web que indicam uma ação de conversão, como uma página de confirmação de finalização da compra ou envio de formulário de lead e global_site_tag, que precisa ser instalado em todas as páginas do site. É possível recuperar os dados esses atributos com o ConversionActionService Finalizar compra nossa Central de Ajuda para mais sobre como incluir tags nas suas páginas.

A tabela a seguir mostra os parâmetros de API equivalentes a serem usados para cada Origem na interface da Web do Google Ads:

Tipo de código de acompanhamento Origem do Google Ads
WEBPAGE Site, site (Google Analytics (GA4))
WEBPAGE_ONCLICK Site, Site (Google Analytics (GA4))
CLICK_TO_CALL Cliques no número de telefone
--- Site (Google Analytics (UA))

Conversões de apps

Com uma conversão de aplicativo, você pode acompanhar instalações de apps para dispositivos móveis ou compras no aplicativo Google Play Store.

A tabela a seguir mostra ConversionActionType Parâmetros de API a serem usados para cada Origem na interface da Web do Google Ads:

Tipo de ação de conversão Origem do Google Ads
GOOGLE_PLAY_DOWNLOAD Google Play > Instalações
GOOGLE_PLAY_IN_APP_PURCHASE Google Play > Compras no app

Se você quiser acompanhar outras ações em apps para dispositivos móveis usando o Google Analytics 4 propriedades ou análise de apps de terceiros. Consulte Outros tipos de ação de conversão.

Conversões de ligações telefônicas

O acompanhamento de conversões de chamadas telefônicas permite acompanhar ligações de anúncios, ligações para um número no seu site e cliques em números em sites para dispositivos móveis.

A tabela a seguir mostra ConversionActionType Parâmetros de API a serem usados para cada Origem na interface da Web do Google Ads:

Tipo de ação de conversão Origem do Google Ads
AD_CALL Chamadas a partir de anúncios com extensões de chamada ou anúncios só para chamadas
WEBSITE_CALL Chamadas para um número de telefone no seu site
CLICK_TO_CALL Clica em um número no seu website para dispositivos móveis

O tipo CLICK_TO_CALL difere do tipo AD_CALL porque não não rastreiam chamadas telefônicas. Em vez disso, CLICK_TO_CALL só rastreia cliques em um número de telefone de um dispositivo móvel. Isso é útil quando você não consegue usar um Número de encaminhamento de chamadas do Google para rastrear chamadas telefônicas.

AD_CALL

Um AD_CALL a ação de conversão aparece como uma Chamadas de conversão de anúncios no Google Ads interface da Web do usuário. Depois de criar sua ação de conversão AD_CALL, especifique a nome do recurso no campo call_conversion_action ao criar um CallAsset. Os recursos de ligação permitem mostrar um número de telefone diretamente nos seus anúncios.

Uma chamada é considerada como conversão quando ultrapassa a duração especificada. O padrão é 60 segundos.

WEBSITE_CALL

Um WEBSITE_CALL a ação de conversão aparece como uma chamada de conversão no site na Interface da Web do Google Ads.

Não gostei AD_CALL, este rastreador requer event_snippet e global_site_tag para adicionar seu site para recuperar o número dinâmico de encaminhamento de chamadas do Google para acompanhamento de chamadas nos números listados no seu site. Além disso, você deve configurar uma chamada recurso e vincule-o no nível do cliente, da campanha ou do grupo de anúncios.

Importar conversões off-line

A tabela a seguir mostra ConversionActionType Parâmetros de API a serem usados para cada Origem na interface da Web do Google Ads e um link para a documentação de cada tipo específico de ação de conversão:

Tipo de ação de conversão Origem do Google Ads Guia de configuração da API
UPLOAD_CLICKS Acompanhar conversões de cliques e conversões otimizadas para leads Guia de cliques no upload
Aprimorado Guia de conversões para leads
UPLOAD_CALLS Acompanhar conversões de chamadas Guia de configuração da API
STORE_SALES Acompanhar as vendas na loja de conversões Guia de configuração da API

Conversões otimizadas para a Web

Conversões otimizadas para Web permitem que você envie dados de conversão próprios para WEBPAGE ação de conversão em até 24 horas após um evento de conversão, e não ao mesmo tempo. Isso possibilita localizar dados próprios de várias fontes, como um banco de dados de clientes ou CRM sistema.

Outros tipos de ações de conversão

A API Google Ads disponibiliza outros tipos de ações de conversão nos relatórios, mas pode limitar ou proibir a criação ou modificação dessas ações.

Conversões da SKAdNetwork

Se você veicula campanhas para apps iOS e implementaram SKAdNetwork, você pode acessar Dados da SKAdNetwork fornecidos ao Google nos níveis Customer e Campaign usando os seguintes recursos:

Campo do relatório Descrição
metrics.sk_ad_network_installs O número de instalações informadas pela Apple. Essa métrica só pode ser segmentada por qualquer combinação de segments.sk_ad_network_conversion_value e segmentos relacionados a datas.
metrics.sk_ad_network_total_conversions O número total de conversões, incluindo instalações e outros tipos de conversões informadas pela Apple. Essa métrica só pode ser segmentada por segmentos relacionados à SKAdNetwork e à data.
segments.sk_ad_network_ad_event_type O tipo de evento que ocorreu para uma conversão específica.
segments.sk_ad_network_attribution_credit Como a atribuição é creditada para uma conversão específica.
segments.sk_ad_network_fine_conversion_value

O valor de uma conversão informada pela Apple. Esse segmento não pode ser aplicado a nenhuma métrica, exceto metrics.sk_ad_network_installs, metrics.sk_ad_network_total_conversions, e só pode ser combinado com segmentos relacionados a datas.

Um valor de 0 será retornado se a Apple informar um valor de 0 e nenhum valor, caso contrário. Verifique a presença de campo para distinguir entre os dois casos.

segments.sk_ad_network_coarse_conversion_value O valor aproximado de uma conversão individual.
segments.sk_ad_network_postback_sequence_index A posição do postback, em sequência, para uma conversão específica.
segments.sk_ad_network_source_app.sk_ad_network_source_app_id O ID do aplicativo em que o anúncio que gerou a instalação da rede de publicidade do kit da loja do iOS era mostrados.
segments.sk_ad_network_source_domain O site em que o anúncio que gerou a instalação da rede de publicidade do kit da loja do iOS foi mostrados. Um valor nulo significa que este segmento não é aplicável, por exemplo, campanha que não fosse para iOS, ou não estava presente em nenhum postback enviado pela Apple.
segments.sk_ad_network_source_type O tipo de origem em que o anúncio que gerou a instalação da rede de publicidade do kit da loja do iOS foi mostrado. Um valor nulo significa que este segmento não é aplicável, por exemplo, campanha que não era para iOS, ou que o domínio de origem e o aplicativo de origem não estavam presentes os postbacks enviados pela Apple.
segments.sk_ad_network_user_type O tipo de usuário que gerou uma conversão específica.
segments.sk_ad_network_redistributed_fine_conversion_value Os valores de conversão neste segmento incluem valores nulos que foram redistribuídos para valores de conversão. Esse segmento representa a soma valores de conversão finos observados retornados pela Apple e valores nulos estimados do Google.
segments.sk_ad_network_version A versão da API Ad Network do kit da loja do iOS que foi usada.

Também é possível salvar um mapeamento do valor da conversão da SKAdNetwork para links específicos clientes que usam apps iOS no CustomerSkAdNetworkConversionValueSchema.

Exemplo de código Python

#!/usr/bin/env python
# Copyright 2019 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

import argparse
import sys

from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException

def main(client, customer_id):
    """Adds a keyword plan, campaign, ad group, etc. to the customer account.

    Also handles errors from the API and prints them.

    Args:
        client: An initialized instance of GoogleAdsClient
        customer_id: A str of the customer_id to use in requests.
    """

    res = update_skan_cv_schema(
        client, customer_id, "my_app_id", "account_link_id"
    )
    print(res)

def update_skan_cv_schema(client, customer_id, app_id, account_link_id):
    skan_service = client.get_service(
        "CustomerSkAdNetworkConversionValueSchemaService"
    )

    req = client.get_type(
        "MutateCustomerSkAdNetworkConversionValueSchemaRequest"
    )
    operation = client.get_type(
        "CustomerSkAdNetworkConversionValueSchemaOperation"
    )
    schema_instance = client.get_type(
        "CustomerSkAdNetworkConversionValueSchema"
    )

    new_schema = operation.update
    new_schema.resource_name = (
        skan_service.customer_sk_ad_network_conversion_value_schema_path(
            "customer_id", "account_link_id"
        )
    )
    new_schema.schema.app_id = app_id
    new_schema.schema.measurement_window_hours = 48

    skan_cv_mapping = (
        schema_instance.SkAdNetworkConversionValueSchema.FineGrainedConversionValueMappings()
    )
    skan_cv_mapping.fine_grained_conversion_value = 0  # 0 - 63
    skan_cv_mapping.conversion_value_mapping.min_time_post_install_hours = 0
    skan_cv_mapping.conversion_value_mapping.max_time_post_install_hours = 48

    skan_cv_event = schema_instance.SkAdNetworkConversionValueSchema.Event()
    skan_cv_event.mapped_event_name = "TEST"
    skan_cv_event.event_revenue_value = 10

    skan_cv_mapping.conversion_value_mapping.mapped_events.append(skan_cv_event)
    new_schema.schema.fine_grained_conversion_value_mappings.append(
        skan_cv_mapping
    )

    req.operation = operation
    req.customer_id = customer_id

    res = skan_service.mutate_customer_sk_ad_network_conversion_value_schema(
        req
    )
    return res

if __name__ == "__main__":
    # GoogleAdsClient will read the google-ads.yaml configuration file in the
    # home directory if none is specified.
    googleads_client = GoogleAdsClient.load_from_storage(
        version="v17"
    )

    parser = argparse.ArgumentParser(
        description="Creates a keyword plan for specified customer."
    )
    # The following argument(s) should be provided to run the example.
    parser.add_argument(
        "-c",
        "--customer_id",
        type=str,
        required=True,
        help="The Google Ads customer ID.",
    )
    args = parser.parse_args()

    try:
        main(googleads_client, args.customer_id)
    except GoogleAdsException as ex:
        print(
            f'Request with ID "{ex.request_id}" failed with status '
            f'"{ex.error.code().name}" and includes the following errors:'
        )
        for error in ex.failure.errors:
            print(f'\tError with message "{error.message}".')
            if error.location:
                for field_path_element in error.location.field_path_elements:
                    print(f"\t\tOn field: {field_path_element.field_name}")
        sys.exit(1)
  

Google Analytics

As conversões de uma propriedade vinculada do Google Analytics têm um dos seguintes valores de type:

  • Conversão da propriedade do GA4:

    • GOOGLE_ANALYTICS_4_CUSTOM
    • GOOGLE_ANALYTICS_4_PURCHASE

    Você também pode recuperar o ID da propriedade do GA4, o nome da propriedade e o nome do evento do as google_analytics_4_settings .

  • Conversão de propriedade do Universal Analytics:

    • UNIVERSAL_ANALYTICS_GOAL
    • UNIVERSAL_ANALYTICS_TRANSACTION

É possível fazer as seguintes alterações em uma conversão de propriedade do GA4:

  • Para importar a conversão da sua propriedade do GA4 para a conta do Google Ads, modifique o campo status de HIDDEN para ENABLED.
  • Modifique os campos primary_for_goal e category para indicar como é necessário afetar os lances e os relatórios do Google Ads.
  • Atualize o name ou o value_settings dele.
  • Remova a conversão da sua conta do Google Ads usando uma operação remove.

Qualquer tentativa de modificar outros atributos de uma conversão importada do GA4 ou qualquer de uma conversão importada do Universal Analytics resulta em uma Erro MUTATE_NOT_ALLOWED. Você só pode fazer essas mudanças na interface do Google Ads.

Firebase e análise de aplicativos de terceiros

Para importar análise de apps de terceiros ou do Firebase, mude o status do ConversionAction de HIDDEN a ENABLED usando o método mutate de ConversionActionService. Atualizar o app_id não é compatível com estas ações de conversão.

  • 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

Vendas na loja: faça upload para a ação de conversão com relatórios

Embora não seja possível criar STORE_SALES ou STORE_SALES_DIRECT_UPLOAD ações de conversão usando a API Google Ads, a API não aceita upload de loja transações de venda.

  • STORE_SALES
  • STORE_SALES_DIRECT_UPLOAD

Tipos de ação de conversão somente leitura

Os tipos de ação de conversão a seguir são somente leitura na API Google Ads e são fornecidos para fins de geração de relatórios.

  • 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

Desconhecido

Se sua conta do Google Ads incluir outros tipos de ação de conversão, você poderá que as consultas e os relatórios retornem ações de conversão em que ConversionAction.type é UNKNOWN. A API não oferece suporte ao gerenciamento dessas ações de conversão, mas as retorna em para fornecer resultados completos para as principais métricas de conversão, como metrics.conversions e metrics.conversions_value.

Exemplo de código

O exemplo de código a seguir mostra o processo de criação de um novo de uma ação de conversão. Especificamente, ele cria uma ação de conversão com o type definido como UPLOAD_CLICKS. Esse é o mesmo fluxo da interface do Google Ads usado para criar uma ação de conversão Importar > Importação manual usando API ou uploads > Acompanhar conversões de cliques. Ele também define o category. para DEFAULT.

As seguintes configurações padrão são aplicadas:

Java

private void runExample(GoogleAdsClient googleAdsClient, long customerId) {

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

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

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

C#

public void Run(GoogleAdsClient client, long customerId)
{
    // Get the ConversionActionService.
    ConversionActionServiceClient conversionActionService =
        client.GetService(Services.V17.ConversionActionService);

    // Note that conversion action names must be unique.
    // If a conversion action already exists with the specified name the create operation
    // will fail with a ConversionAction.DUPLICATE_NAME error.
    string ConversionActionName = "Earth to Mars Cruises Conversion #"
        + ExampleUtilities.GetRandomString();

    // Add a conversion action.
    ConversionAction conversionAction = new ConversionAction()
    {
        Name = ConversionActionName,
        Category = ConversionActionCategory.Default,
        Type = ConversionActionType.Webpage,
        Status = ConversionActionStatus.Enabled,
        ViewThroughLookbackWindowDays = 15,
        ValueSettings = new ConversionAction.Types.ValueSettings()
        {
            DefaultValue = 23.41,
            AlwaysUseDefaultValue = true
        }
    };

    // Create the operation.
    ConversionActionOperation operation = new ConversionActionOperation()
    {
        Create = conversionAction
    };

    try
    {
        // Create the conversion action.
        MutateConversionActionsResponse response =
            conversionActionService.MutateConversionActions(customerId.ToString(),
                    new ConversionActionOperation[] { operation });

        // Display the results.
        foreach (MutateConversionActionResult newConversionAction in response.Results)
        {
            Console.WriteLine($"New conversion action with resource name = " +
                $"'{newConversionAction.ResourceName}' was added.");
        }
    }
    catch (GoogleAdsException e)
    {
        Console.WriteLine("Failure:");
        Console.WriteLine($"Message: {e.Message}");
        Console.WriteLine($"Failure: {e.Failure}");
        Console.WriteLine($"Request ID: {e.RequestId}");
        throw;
    }
}
      

PHP

public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId)
{
    // Creates a conversion action.
    $conversionAction = new ConversionAction([
        // Note that conversion action names must be unique.
        // If a conversion action already exists with the specified conversion_action_name
        // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error.
        'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(),
        'category' => ConversionActionCategory::PBDEFAULT,
        'type' => ConversionActionType::WEBPAGE,
        'status' => ConversionActionStatus::ENABLED,
        'view_through_lookback_window_days' => 15,
        'value_settings' => new ValueSettings([
            'default_value' => 23.41,
            'always_use_default_value' => true
        ])
    ]);

    // Creates a conversion action operation.
    $conversionActionOperation = new ConversionActionOperation();
    $conversionActionOperation->setCreate($conversionAction);

    // Issues a mutate request to add the conversion action.
    $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient();
    $response = $conversionActionServiceClient->mutateConversionActions(
        MutateConversionActionsRequest::build($customerId, [$conversionActionOperation])
    );

    printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL);

    foreach ($response->getResults() as $addedConversionAction) {
        /** @var ConversionAction $addedConversionAction */
        printf(
            "New conversion action added with resource name: '%s'%s",
            $addedConversionAction->getResourceName(),
            PHP_EOL
        );
    }
}
      

Python

def main(client, customer_id):
    conversion_action_service = client.get_service("ConversionActionService")

    # Create the operation.
    conversion_action_operation = client.get_type("ConversionActionOperation")

    # Create conversion action.
    conversion_action = conversion_action_operation.create

    # Note that conversion action names must be unique. If a conversion action
    # already exists with the specified conversion_action_name, the create
    # operation will fail with a ConversionActionError.DUPLICATE_NAME error.
    conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}"
    conversion_action.type_ = (
        client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS
    )
    conversion_action.category = (
        client.enums.ConversionActionCategoryEnum.DEFAULT
    )
    conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED
    conversion_action.view_through_lookback_window_days = 15

    # Create a value settings object.
    value_settings = conversion_action.value_settings
    value_settings.default_value = 15.0
    value_settings.always_use_default_value = True

    # Add the conversion action.
    conversion_action_response = (
        conversion_action_service.mutate_conversion_actions(
            customer_id=customer_id,
            operations=[conversion_action_operation],
        )
    )

    print(
        "Created conversion action "
        f'"{conversion_action_response.results[0].resource_name}".'
    )
      

Ruby

def add_conversion_action(customer_id)
  # GoogleAdsClient will read a config file from
  # ENV['HOME']/google_ads_config.rb when called without parameters
  client = Google::Ads::GoogleAds::GoogleAdsClient.new


  # Add a conversion action.
  conversion_action = client.resource.conversion_action do |ca|
    ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}"
    ca.type = :UPLOAD_CLICKS
    ca.category = :DEFAULT
    ca.status = :ENABLED
    ca.view_through_lookback_window_days = 15

    # Create a value settings object.
    ca.value_settings = client.resource.value_settings do |vs|
      vs.default_value = 15
      vs.always_use_default_value = true
    end
  end

  # Create the operation.
  conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action)

  # Add the ad group ad.
  response = client.service.conversion_action.mutate_conversion_actions(
    customer_id: customer_id,
    operations: [conversion_action_operation],
  )

  puts "New conversion action with resource name = #{response.results.first.resource_name}."
end
      

Perl

sub add_conversion_action {
  my ($api_client, $customer_id) = @_;

  # Note that conversion action names must be unique.
  # If a conversion action already exists with the specified conversion_action_name,
  # the create operation fails with error ConversionActionError.DUPLICATE_NAME.
  my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid();

  # Create a conversion action.
  my $conversion_action =
    Google::Ads::GoogleAds::V17::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V17::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V17::Services::ConversionActionService::ConversionActionOperation
    ->new({create => $conversion_action});

  # Add the conversion action.
  my $conversion_actions_response =
    $api_client->ConversionActionService()->mutate({
      customerId => $customer_id,
      operations => [$conversion_action_operation]});

  printf "New conversion action added with resource name: '%s'.\n",
    $conversion_actions_response->{results}[0]{resourceName};

  return 1;
}
      

Esse exemplo também pode ser encontrado na pasta "Remarketing" da sua biblioteca de cliente e na coleção de exemplos de código: Adicionar exemplo de código de ação de conversão.

Validações

O Google Ads e a API Google Ads são compatíveis com uma ampla variedade de ações de conversão, portanto algumas regras de validação variam de acordo com o type de ação.

O erro mais comum na criação de uma ação de conversão é DUPLICATE_NAME Use um nome exclusivo para cada ação de conversão.

Confira algumas dicas sobre como definir os campos ConversionAction:

Todos os campos de tipo enumerado
A tentativa de definir qualquer campo de tipo enumerado como UNKNOWN resulta em um erro RequestError.INVALID_ENUM_VALUE.
app_id
O atributo app_id é imutável e só pode ser definido ao criar uma nova conversão de app.
attribution_model_settings
Configurar isso como um descontinuado opção resulta em uma CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS erro. O Google Ads só é compatível com GOOGLE_ADS_LAST_CLICK e GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
click_through_lookback_window_days

Definir esse atributo com um valor fora do intervalo permitido resulta em um Erro RangeError.TOO_LOW ou RangeError.TOO_HIGH.

Esse atributo precisa estar no intervalo [1,60] para uma ação de conversão AD_CALL ou WEBSITE_CALL. Para a maioria das outras ações de conversão, o intervalo permitido é [1,30].

include_in_conversions_metric

A definição desse valor em uma operação create ou update falha com um erro FieldError.IMMUTABLE_FIELD. Em vez disso, defina primary_for_goal como descritas no guia de metas de conversão.

phone_call_duration_seconds

Tentar definir esse atributo em uma ação de conversão não destinada a chamadas resulta em um erro FieldError.VALUE_MUST_BE_UNSET.

type

O atributo type é imutável e só pode ser definido ao criar um novo e conversão em massa.

Atualizar uma ação de conversão com type igual a UNKNOWN resulta em um erro MutateError.MUTATE_NOT_ALLOWED.

value_settings

O value_settings para uma ação de conversão WEBSITE_CALL ou AD_CALL precisa têm always_use_default_value definido como true. Especificar um valor de false ao criar ou atualizar esse valor resulta em um erro INVALID_VALUE.

view_through_lookback_window_days

Definir esse atributo com um valor fora do intervalo permitido resulta em um Erro RangeError.TOO_LOW ou RangeError.TOO_HIGH. Para a maior parte da conversão ações, o intervalo permitido é [1,30].

Esse atributo não pode ser definido na conversão AD_CALL ou WEBSITE_CALL ações. A especificação de um valor resulta em um erro VALUE_MUST_BE_UNSET.