Criar ações de conversão

Neste guia, apresentamos uma lista dos diferentes tipos de ações de conversão que você pode criar usando a API Google Ads, informações sobre como elas são associadas à interface da Web do Google Ads e um exemplo de código detalhado que demonstra como criar novas ações de conversão.

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

A melhor maneira de configurar novas ações de conversão na API é usar o exemplo de código "Adicionar ação de conversão" abaixo. O exemplo processa todas as tarefas de autenticação em segundo plano e ensina a criar um ConversionAction.

A maioria das ações de conversão também requer outras etapas da sua parte para o acompanhamento. Por exemplo, para acompanhar conversões no seu site, você precisa adicionar um snippet de código chamado tag à página de conversão do site. Para outros requisitos de ação de conversão, consulte nosso 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 as conversões no seu site, você precisa criar um ConversionAction com o ConversionActionType definido como WEBPAGE e adicionar um snippet de código chamado tag à página de conversão no seu site.

O ConversionAction engloba vários tipos de conversão no site, diferenciados 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 o método event_snippet, que precisa ser colocado em páginas da Web que indicam uma ação de conversão, como uma confirmação de finalização da compra ou página de envio de formulário de lead, e global_site_tag, que precisa ser instalado em todas as páginas do site. É possível extrair os dois atributos com o ConversionActionService. Confira nossa Central de Ajuda para mais informações sobre como incluir tags nas suas páginas.

A tabela a seguir mostra os parâmetros de API equivalentes a serem usados em 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

Uma conversão de app permite acompanhar instalações de apps para dispositivos móveis ou compras em aplicativos na Google Play Store.

A tabela a seguir mostra os parâmetros da API ConversionActionType equivalentes 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 de apps para dispositivos móveis usando as propriedades do Google Analytics 4 ou a análise de aplicativos de terceiros. Consulte Outros tipos de ação de conversão.

Conversões de chamadas telefônicas

Com o acompanhamento de conversões de chamada, você acompanha chamadas a partir 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 os parâmetros da API ConversionActionType equivalentes 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 Cliques em um número no seu site móvel

O tipo CLICK_TO_CALL é diferente do tipo AD_CALL porque não acompanha chamadas telefônicas reais. Em vez disso, CLICK_TO_CALL rastreia apenas cliques em um número de telefone de dispositivos móveis. Isso é útil quando você não consegue usar um número de encaminhamento de chamadas do Google para rastrear chamadas telefônicas.

AD_CALL

Uma ação de conversão AD_CALL aparece como uma conversão de Chamadas a partir de anúncios na interface da Web do Google Ads. Depois de criar sua ação de conversão AD_CALL, especifique o nome do recurso no campo call_conversion_action ao criar um CallAsset. Com os recursos de ligação, você pode 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

Uma ação de conversão WEBSITE_CALL aparece como uma conversão de Chamadas a partir de um site na interface da Web do Google Ads.

Diferentemente de AD_CALL, esse rastreador exige que event_snippet e global_site_tag sejam adicionados ao seu site para recuperar o número dinâmico de encaminhamento de chamadas do Google para acompanhamento de chamadas dos números listados no seu site. Além disso, você precisa configurar um recurso de chamada e vinculá-lo no nível do cliente, da campanha ou do grupo de anúncios.

Importar conversões off-line

A tabela a seguir mostra os parâmetros de API ConversionActionType equivalentes a serem usados em 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 as conversões originadas de cliques e conversões otimizadas para leads Guia de cliques no upload
Guia de conversões otimizadas 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

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

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 implementou a SKAdNetwork, pode acessar os 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 informados pela Apple. Só é possível segmentar essa métrica 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 por 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 diferente de metrics.sk_ad_network_installs e 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. Caso contrário, nenhum valor será retornado. 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 foi exibido.
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 exibido. Um valor nulo significa que esse segmento não é aplicável (por exemplo, campanha que não é do 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 exibido. Um valor nulo significa que esse segmento não é aplicável (por exemplo, campanha que não é do iOS) ou que nem o domínio de origem nem o app de origem estavam presentes nos 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 dos valores de conversão finos observados retornados pela Apple e dos valores nulos estimados do Google.

Também é possível salvar um mapeamento de valor da conversão da SKAdNetwork para clientes vinculados específicos a apps iOS usando 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 de 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 no campo google_analytics_4_settings.

  • Conversão de propriedade do Universal Analytics:

    • UNIVERSAL_ANALYTICS_GOAL
    • UNIVERSAL_ANALYTICS_TRANSACTION

Você pode fazer as seguintes mudanças em uma conversão de propriedade do GA4:

  • Importe a conversão da propriedade do GA4 para a conta do Google Ads modificando o campo status de HIDDEN para ENABLED.
  • Modifique os campos primary_for_goal e category para indicar como isso 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 atributo de uma conversão importada do Universal Analytics resulta em um 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 conversões de análise de aplicativos de terceiros ou do Firebase, mude o status do ConversionAction de HIDDEN para ENABLED usando o método mutate de ConversionActionService. Não é possível atualizar app_id para essas 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 própria loja

Não é possível criar ações de conversão STORE_SALES ou STORE_SALES_DIRECT_UPLOAD usando a API Google Ads, mas ela permite o upload de transações de vendas na loja.

  • STORE_SALES
  • STORE_SALES_DIRECT_UPLOAD

Diversos

Os tipos de ação de conversão a seguir são somente leitura na API Google Ads e disponibilizados para gerar 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

Caso sua conta do Google Ads inclua outros tipos de ação, as consultas e os relatórios vão retornar ações em que ConversionAction.type é UNKNOWN. A API não é compatível com o gerenciamento dessas ações de conversão, mas as retorna nos relatórios 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 uma nova 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 usando Importar > Importação manual usando API ou uploads > Acompanhar conversões de cliques. Ele também define category como 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;
}
      

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

Validações

O Google Ads e a API Google Ads são compatíveis com uma grande variedade de ações de conversão. Por isso, algumas regras de validação variam com base no type da ação.

O erro mais comum ao criar 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
Definir isso como uma opção descontinuada resulta em um erro CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS. O Google Ads é compatível somente com GOOGLE_ADS_LAST_CLICK e GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN.
click_through_lookback_window_days

Definir esse atributo como 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 conforme descrito no Guia de metas de conversão.

phone_call_duration_seconds

A tentativa de 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 uma nova conversão.

A atualização de 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 ter always_use_default_value definido como true. Especificar um valor false ao criar ou atualizar esse valor resulta em um erro INVALID_VALUE.

view_through_lookback_window_days

Definir esse atributo como um valor fora do intervalo permitido resulta em um erro RangeError.TOO_LOW ou RangeError.TOO_HIGH. Para a maioria das ações de conversão, o intervalo permitido é [1,30].

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