Buat Tindakan Konversi

Panduan ini memberikan daftar berbagai jenis tindakan konversi yang dapat Anda buat menggunakan Google Ads API, informasi tentang cara pemetaan ini ke platform Google Ads antarmuka pengguna, dan contoh kode terperinci yang menunjukkan cara membuat tindakan konversi baru.

Untuk mengukur konversi, siapkan ConversionAction untuk type tindakan konversi yang ingin Anda lacak. Misalnya, pembelian {i>online<i} dan telepon memerlukan tindakan konversi yang berbeda.

Cara terbaik untuk menyiapkan tindakan konversi baru di API adalah dengan menggunakan Contoh kode Tambahkan Tindakan Konversi di bawah. Nama sebutan channel semua tugas otentikasi latar belakang untuk Anda, dan memandu Anda dalam membuat ConversionAction.

Sebagian besar tindakan konversi juga memerlukan langkah tambahan untuk melacak mereka. Misalnya, untuk melacak konversi di situs, Anda harus menambahkan cuplikan kode yang disebut tag ke halaman konversi di situs Anda. Untuk persyaratan tindakan konversi lainnya, lihat artikel Pusat Bantuan kami.

Konversi situs

Konversi situs memungkinkan Anda melacak tindakan situs seperti penjualan online, klik link, kunjungan halaman, dan pendaftaran.

Untuk melacak konversi di situs, Anda harus membuat ConversionAction dengan ConversionActionType ditetapkan ke WEBPAGE, dan menambahkan cuplikan kode yang disebut tag ke konversi di situs web Anda.

ConversionAction mencakup beberapa jenis konversi situs, yang dibedakan dalam API berdasarkan Kolom type di setiap kolom TagSnippet tercantum dalam Kolom tag_snippets dari ConversionAction.

TagSnippet memberikan kode pelacakan yang harus disertakan di situs Anda untuk melacak tindakan konversi. Konversi Situs dan Klik nomor telepon memerlukan event_snippet, yang harus ditempatkan di halaman web yang menunjukkan tindakan konversi seperti konfirmasi checkout atau halaman pengiriman formulir prospek, dan global_site_tag, yang harus diinstal di setiap halaman situs Anda. Anda dapat mengambil kedua atribut ini dengan ConversionActionService Lihat Pusat Bantuan kami untuk mengetahui informasi selengkapnya tentang cara memberi tag pada halaman Anda.

Tabel berikut menunjukkan parameter API yang setara untuk digunakan untuk setiap Sumber di antarmuka web Google Ads:

Jenis Kode Pelacakan Sumber Google Ads
WEBPAGE Situs, Situs (Google Analytics (GA4))
WEBPAGE_ONCLICK Situs, Situs (Google Analytics (GA4))
CLICK_TO_CALL Klik nomor telepon
--- Situs (Google Analytics (UA))

Konversi aplikasi

Konversi aplikasi memungkinkan Anda melacak penginstalan aplikasi seluler atau pembelian dalam aplikasi dari Google Play Store.

Tabel berikut menunjukkan parameter API ConversionActionType yang setara untuk digunakan untuk setiap Sumber di antarmuka web Google Ads:

Jenis Tindakan Konversi Sumber Google Ads
GOOGLE_PLAY_DOWNLOAD Google Play > Penginstalan
GOOGLE_PLAY_IN_APP_PURCHASE Google Play > Pembelian dalam aplikasi

Jika Anda ingin melacak tindakan aplikasi seluler lainnya menggunakan Google Analytics 4 properti atau analisis aplikasi pihak ketiga. Lihat Jenis Tindakan Konversi Tambahan.

Konversi panggilan telepon

Tracking konversi panggilan telepon memungkinkan Anda melacak panggilan telepon dari iklan, panggilan ke nomor di situs, mengeklik nomor di situs seluler.

Tabel berikut menunjukkan padanan ConversionActionType Parameter API yang akan digunakan untuk setiap Sumber di antarmuka web Google Ads:

Jenis Tindakan Konversi Sumber Google Ads
AD_CALL Panggilan telepon dari iklan yang menggunakan ekstensi panggilan atau iklan khusus panggilan telepon
WEBSITE_CALL Panggilan ke nomor telepon di situs Anda
CLICK_TO_CALL Klik pada nomor telepon di situs web seluler Anda

Jenis CLICK_TO_CALL berbeda dengan jenis AD_CALL karena tidak melacak panggilan telepon yang sebenarnya. Sebaliknya, CLICK_TO_CALL hanya melacak klik pada nomor telepon dari perangkat seluler. Hal ini berguna ketika Anda tidak dapat menggunakan Nomor penerusan Google untuk melacak panggilan telepon.

AD_CALL

Channel AD_CALL tindakan konversi muncul sebagai Panggilan dari konversi iklan di Google Ads dan antarmuka web Anda. Setelah membuat tindakan konversi AD_CALL, tentukan tindakan konversi di kolom call_conversion_action saat Anda membuat CallAsset Panggilan Telepon aset memungkinkan Anda menampilkan nomor telepon langsung di iklan Anda.

Panggilan dilaporkan sebagai konversi jika berlangsung lebih lama dari durasi yang ditentukan. Defaultnya adalah 60 detik.

WEBSITE_CALL

J WEBSITE_CALL tindakan konversi muncul sebagai Panggilan telepon dari situs Anda di Antarmuka web Google Ads.

Tidak suka AD_CALL, pelacak ini memerlukan event_snippet dan global_site_tag untuk ditambahkan ke situs Anda untuk mengambil nomor penerusan Google dinamis untuk pelacakan panggilan di nomor yang tercantum di situs Anda. Selain itu, Anda harus menyiapkan aset panggilan dan menautkannya di tingkat pelanggan, kampanye, atau grup iklan.

Mengimpor konversi offline

Tabel berikut menunjukkan padanan ConversionActionType Parameter API yang akan digunakan untuk setiap Sumber di antarmuka web Google Ads dan link ke dokumentasi untuk setiap jenis tindakan konversi tertentu:

Jenis Tindakan Konversi Sumber Google Ads Panduan Penyiapan API
UPLOAD_CLICKS Melacak konversi dari klik dan konversi yang disempurnakan untuk prospek Panduan Upload Klik
Panduan Konversi yang Disempurnakan untuk Prospek
UPLOAD_CALLS Lacak konversi dari panggilan telepon Panduan Penyiapan API
STORE_SALES Melacak konversi penjualan toko Penyiapan API Panduan

Konversi yang disempurnakan untuk web

Konversi yang disempurnakan untuk web memungkinkan Anda mengirim data konversi pihak pertama untuk WEBPAGE tindakan konversi dalam waktu 24 jam sejak peristiwa konversi, dan bukan pada saat yang sama. Hal ini memungkinkan Anda menemukan data pihak pertama dari berbagai sumber, seperti database pelanggan atau sistem CRM.

Jenis tindakan konversi tambahan

Google Ads API menyediakan jenis tindakan konversi tambahan dalam laporan, tetapi dapat membatasi atau melarang pembuatan atau perubahan tindakan tersebut.

Konversi SKAdNetwork

Jika Anda menjalankan kampanye Aplikasi iOS dan telah menerapkan SKAdNetwork, Anda dapat mengakses Data SKAdNetwork yang diberikan kepada Google pada tingkat Customer dan Campaign menggunakan referensi berikut:

Kolom laporan Deskripsi
metrics.sk_ad_network_installs Jumlah penginstalan yang dilaporkan oleh Apple. Metrik ini hanya dapat disegmentasikan dengan kombinasi apa pun dari segments.sk_ad_network_conversion_value dan segmen yang terkait dengan tanggal.
metrics.sk_ad_network_total_conversions Total jumlah konversi, termasuk penginstalan dan jenis konversi lainnya konversi yang dilaporkan oleh Apple. Metrik ini hanya dapat disegmentasikan menurut Segmen terkait SKAdNetwork dan segmen terkait tanggal.
segments.sk_ad_network_ad_event_type Jenis peristiwa yang terjadi untuk konversi tertentu.
segments.sk_ad_network_attribution_credit Cara atribusi dikreditkan untuk konversi tertentu.
segments.sk_ad_network_fine_conversion_value

Nilai konversi yang dilaporkan oleh Apple. Segmen ini tidak dapat diterapkan ke metrik apa pun selain metrics.sk_ad_network_installs, metrics.sk_ad_network_total_conversions, dan hanya dapat digabungkan dengan segmen terkait tanggal.

Nilai 0 akan ditampilkan jika Apple melaporkan nilai 0 dan tidak ada nilai jika tidak. Periksa kehadiran di lapangan untuk membedakan kedua kasus tersebut.

segments.sk_ad_network_coarse_conversion_value Nilai umum untuk setiap konversi.
segments.sk_ad_network_postback_sequence_index Posisi postback, secara berurutan, untuk konversi tertentu.
segments.sk_ad_network_source_app.sk_ad_network_source_app_id ID aplikasi tempat iklan yang mendorong penginstalan Jaringan Iklan iOS Store Kit ditampilkan.
segments.sk_ad_network_source_domain Situs tempat iklan yang mendorong penginstalan Jaringan Iklan iOS Store Kit ditampilkan. Nilai null berarti segmen ini tidak berlaku — misalnya, non-iOS — atau tidak ada di postback mana pun yang dikirim oleh Apple.
segments.sk_ad_network_source_type Jenis sumber tempat iklan yang mendorong penginstalan Jaringan Iklan iOS Store Kit ditunjukkan. Nilai null berarti segmen ini tidak berlaku — misalnya, kampanye non-iOS — atau domain sumber maupun aplikasi sumber tidak ada dalam postback apa pun yang dikirim oleh Apple.
segments.sk_ad_network_user_type Jenis pengguna yang menghasilkan konversi tertentu.
segments.sk_ad_network_redistributed_fine_conversion_value Nilai konversi di segmen ini mencakup nilai nol yang didistribusikan ulang ke nilai konversi. Segmen ini mewakili jumlah nilai konversi terbaik yang diamati oleh Apple dan nilai null sesuai model dari Google.
segments.sk_ad_network_version Versi iOS Store Kit Ad Network API yang digunakan.

Anda juga dapat menyimpan pemetaan nilai konversi SKAdNetwork untuk dengan aplikasi iOS melalui CustomerSkAdNetworkConversionValueSchema.

Contoh kode 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

Konversi dari properti Google Analytics tertaut memiliki salah satu hal berikut Nilai type:

  • Konversi properti GA4:

    • GOOGLE_ANALYTICS_4_CUSTOM
    • GOOGLE_ANALYTICS_4_PURCHASE

    Anda juga dapat mengambil ID properti, nama properti, dan nama peristiwa GA4 dari tindakan google_analytics_4_settings kolom tersebut.

  • Konversi properti Universal Analytics:

    • UNIVERSAL_ANALYTICS_GOAL
    • UNIVERSAL_ANALYTICS_TRANSACTION

Anda dapat melakukan perubahan berikut pada konversi properti GA4:

Setiap upaya untuk mengubah atribut lain dari konversi GA4 yang diimpor atau salah satu konversi Universal Analytics yang diimpor menghasilkan Error MUTATE_NOT_ALLOWED. Anda hanya dapat melakukan perubahan tersebut menggunakan UI Google Ads.

Firebase dan analisis aplikasi pihak ketiga

Untuk mengimpor analisis aplikasi pihak ketiga atau konversi Firebase, ubah status ConversionAction dari HIDDEN ke ENABLED menggunakan metode mutate ConversionActionService. Memperbarui app_id tidak didukung untuk setelan ini tindakan konversi.

  • 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

Penjualan toko: upload ke tindakan konversi dengan pelaporan

Meskipun Anda tidak dapat membuat STORE_SALES atau STORE_SALES_DIRECT_UPLOAD tindakan konversi menggunakan Google Ads API, API ini mendukung fitur penguploadan transaksi penjualan.

  • STORE_SALES
  • STORE_SALES_DIRECT_UPLOAD

Jenis tindakan konversi hanya baca

Jenis tindakan konversi berikut bersifat hanya baca di Google Ads API dan diberikan untuk tujuan pelaporan.

  • 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

Tidak diketahui

Jika akun Google Ads Anda menyertakan jenis tindakan konversi lainnya, Anda mungkin menemukan bahwa kueri dan laporan menghasilkan tindakan konversi dengan ConversionAction.type adalah UNKNOWN. API tidak mendukung pengelolaan tindakan konversi ini, tetapi menampilkannya dalam laporan Google guna memberikan hasil lengkap untuk metrik konversi utama seperti metrics.conversions dan metrics.conversions_value.

Contoh kode

Contoh kode berikut memandu Anda dalam proses pembuatan tindakan konversi. Secara khusus, cara ini membuat tindakan konversi dengan type ditetapkan ke UPLOAD_CLICKS Alur UI Google Ads yang sama seperti membuat tindakan konversi baru menggunakan Impor > Impor manual menggunakan API atau upload > Lacak konversi dari klik. Kode ini juga menetapkan category ke DEFAULT.

Setelan default berikut berlaku:

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;
}
      

Contoh ini juga dapat ditemukan di folder Pemasaran Ulang pada pustaka klien Anda dan dalam kumpulan contoh kode: Add Conversion Action code contoh.

Validasi

Google Ads dan Google Ads API mendukung berbagai tindakan konversi, jadi beberapa aturan validasi bervariasi berdasarkan type tindakan.

Sejauh ini, error yang paling umum saat membuat tindakan konversi adalah DUPLICATE_NAME Pastikan Anda menggunakan nama unik untuk setiap tindakan konversi.

Berikut adalah beberapa tips tentang cara menetapkan kolom ConversionAction:

Semua kolom enum
Mencoba menetapkan kolom enum ke UNKNOWN akan menghasilkan Error RequestError.INVALID_ENUM_VALUE.
app_id
Atribut app_id tidak dapat diubah dan hanya dapat ditetapkan saat membuat atribut baru konversi aplikasi.
attribution_model_settings
Menetapkannya ke tidak digunakan lagi opsi menghasilkan CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS {i>error<i}. Google Ads hanya mendukung GOOGLE_ADS_LAST_CLICK dan GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN.
click_through_lookback_window_days

Menetapkan atribut ini ke nilai di luar rentang yang diizinkan akan menghasilkan Error RangeError.TOO_LOW atau RangeError.TOO_HIGH.

Atribut ini harus berada dalam rentang [1,60] untuk AD_CALL atau WEBSITE_CALL tindakan konversi. Untuk sebagian besar tindakan konversi lainnya, rentang yang diizinkan adalah [1,30].

include_in_conversions_metric

Menetapkan nilai ini dalam operasi create atau update akan gagal dengan Error FieldError.IMMUTABLE_FIELD. Sebagai gantinya, tetapkan primary_for_goal sebagai yang dijelaskan dalam panduan Sasaran konversi.

phone_call_duration_seconds

Mencoba menetapkan atribut ini pada tindakan konversi yang bukan untuk panggilan menghasilkan error FieldError.VALUE_MUST_BE_UNSET.

type

Atribut type tidak dapat diubah dan hanya dapat ditetapkan saat membuat konversi.

Memperbarui tindakan konversi dengan type sama dengan UNKNOWN menghasilkan Error MutateError.MUTATE_NOT_ALLOWED.

value_settings

value_settings untuk tindakan konversi WEBSITE_CALL atau AD_CALL harus menyetel always_use_default_value ke true. Menentukan nilai false saat membuat atau memperbarui nilai ini akan menghasilkan error INVALID_VALUE.

view_through_lookback_window_days

Menetapkan atribut ini ke nilai di luar rentang yang diizinkan akan menghasilkan Error RangeError.TOO_LOW atau RangeError.TOO_HIGH. Untuk sebagian besar konversi tindakan, rentang yang diizinkan adalah [1,30].

Atribut ini tidak dapat ditetapkan pada tindakan konversi AD_CALL atau WEBSITE_CALL. Menentukan nilai akan menghasilkan error VALUE_MUST_BE_UNSET.