Tạo hành động chuyển đổi

Hướng dẫn này cung cấp danh sách các loại hành động chuyển đổi mà bạn có thể tạo bằng API Google Ads, thông tin về cách các hành động chuyển đổi này liên kết với giao diện web của Google Ads, và ví dụ về mã chi tiết minh hoạ cách tạo hành động chuyển đổi mới.

Để đo lường lượt chuyển đổi, hãy thiết lập ConversionAction cho type của hành động chuyển đổi mà bạn muốn theo dõi. Ví dụ: lượt mua hàng trực tuyến và cuộc gọi điện thoại yêu cầu các hành động chuyển đổi khác nhau.

Cách tốt nhất để thiết lập các hành động chuyển đổi mới trong API là sử dụng ví dụ về Thêm mã Hành động chuyển đổi ở bên dưới. Mẫu này xử lý tất cả các tác vụ xác thực ở chế độ nền và hướng dẫn bạn cách tạo ConversionAction.

Hầu hết các hành động chuyển đổi cũng yêu cầu bạn thực hiện thêm một số bước để theo dõi chúng. Ví dụ: để theo dõi lượt chuyển đổi trên trang web, bạn phải thêm một đoạn mã có tên là thẻ vào trang chuyển đổi trên trang web. Để biết các yêu cầu khác về hành động chuyển đổi, hãy xem bài viết trong Trung tâm trợ giúp của chúng tôi.

Chuyển đổi trang web

Lượt chuyển đổi trên trang web cho phép bạn theo dõi các hành động trên trang web, chẳng hạn như bán hàng trực tuyến, lượt nhấp vào đường liên kết, lượt xem trang và lượt đăng ký.

Để theo dõi lượt chuyển đổi trên trang web, bạn phải tạo ConversionAction với ConversionActionType được đặt thành WEBPAGE và thêm một đoạn mã có tên là thẻ vào trang chuyển đổi trên trang web của bạn.

ConversionAction bao gồm một số loại lượt chuyển đổi trên trang web, được phân biệt trong API bằng trường type trong mỗi TagSnippet được liệt kê trong trường tag_snippets của ConversionAction.

TagSnippet cung cấp mã theo dõi phải được đưa vào trang web của bạn để theo dõi hành động chuyển đổi. Lượt chuyển đổi Lượt nhấp vào trang webLượt nhấp vào số điện thoại yêu cầu bạn phải đặt event_snippet trên các trang web cho biết hành động chuyển đổi (như trang xác nhận thanh toán hoặc trang gửi biểu mẫu khách hàng tiềm năng) và global_site_tag (phải được cài đặt trên mọi trang của trang web). Bạn có thể truy xuất cả hai thuộc tính này bằng ConversionActionService. Hãy tham khảo Trung tâm trợ giúp của chúng tôi để biết thêm thông tin về cách gắn thẻ các trang.

Bảng sau đây trình bày các tham số API tương đương để sử dụng cho từng Nguồn trong giao diện web Google Ads:

Loại mã theo dõi Nguồn Google Ads
WEBPAGE Trang web (Google Analytics (GA4))
WEBPAGE_ONCLICK Trang web (Google Analytics (GA4))
CLICK_TO_CALL Nhấp chuột vào số điện thoại
--- Trang web (Google Analytics (UA))

Chuyển đổi ứng dụng

Lượt chuyển đổi ứng dụng cho phép bạn theo dõi lượt cài đặt ứng dụng dành cho thiết bị di động hoặc lượt mua hàng trong ứng dụng từ Cửa hàng Google Play.

Bảng sau đây cho thấy các tham số API ConversionActionType tương đương để sử dụng cho từng Nguồn trong giao diện web Google Ads:

Loại hành động chuyển đổi Nguồn Google Ads
GOOGLE_PLAY_DOWNLOAD Google Play > Lượt cài đặt
GOOGLE_PLAY_IN_APP_PURCHASE Google Play > Giao dịch mua hàng trong ứng dụng

Nếu bạn muốn theo dõi các hành động khác trong ứng dụng dành cho thiết bị di động bằng cách sử dụng các tài sản Google Analytics 4 hoặc dịch vụ phân tích ứng dụng của bên thứ ba. Xem bài viết Các loại hành động chuyển đổi khác.

Chuyển đổi cuộc gọi điện thoại

Tính năng theo dõi lượt chuyển đổi cuộc gọi điện thoại cho phép bạn theo dõi cuộc gọi từ quảng cáo, cuộc gọi đến một số trên trang web của mình và số lượt nhấp vào các số trên trang web dành cho thiết bị di động.

Bảng sau đây cho thấy các tham số API ConversionActionType tương đương để sử dụng cho từng Nguồn trong giao diện web Google Ads:

Loại hành động chuyển đổi Nguồn Google Ads
AD_CALL Cuộc gọi từ quảng cáo sử dụng phần mở rộng về cuộc gọi hoặc quảng cáo chỉ tạo cuộc gọi điện thoại
WEBSITE_CALL Những cuộc gọi đến một số điện thoại trên trang web của bạn
CLICK_TO_CALL Lần nhấp vào số điện thoại trên trang web dành cho thiết bị di động của bạn

Loại CLICK_TO_CALL khác với loại AD_CALL ở chỗ nó không theo dõi các cuộc gọi điện thoại thực tế. Thay vào đó, CLICK_TO_CALL chỉ theo dõi các lượt nhấp vào một số điện thoại trên thiết bị di động. Điều này rất hữu ích khi bạn không thể sử dụng Số chuyển tiếp của Google để theo dõi các cuộc gọi điện thoại.

AD_CALL

Hành động chuyển đổi AD_CALL xuất hiện dưới dạng lượt chuyển đổi Cuộc gọi từ quảng cáo trong giao diện web của Google Ads. Sau khi bạn tạo hành động chuyển đổi AD_CALL, hãy chỉ định tên tài nguyên của hành động đó trong trường call_conversion_action khi bạn tạo CallAsset. Thành phần cuộc gọi cho phép bạn hiển thị số điện thoại ngay trong quảng cáo của mình.

Cuộc gọi sẽ được báo cáo là lượt chuyển đổi nếu kéo dài hơn một khoảng thời gian đã chỉ định. Mặc định là 60 giây.

WEBSITE_CALL

Hành động chuyển đổi WEBSITE_CALL xuất hiện dưới dạng lượt chuyển đổi Cuộc gọi từ trang web trong giao diện web của Google Ads.

Không giống như AD_CALL, trình theo dõi này yêu cầu thêm event_snippetglobal_site_tag vào trang web của bạn để truy xuất số chuyển tiếp động của Google để theo dõi cuộc gọi trên các số được liệt kê trên trang web. Ngoài ra, bạn phải thiết lập một thành phần cuộc gọiliên kết thành phần đó ở cấp khách hàng, chiến dịch hoặc nhóm quảng cáo.

Nhập lượt chuyển đổi ngoại tuyến

Bảng sau đây trình bày các tham số API ConversionActionType tương đương để sử dụng cho từng Nguồn trong giao diện web của Google Ads và một đường liên kết đến tài liệu về từng loại hành động chuyển đổi cụ thể:

Loại hành động chuyển đổi Nguồn Google Ads Hướng dẫn thiết lập API
UPLOAD_CLICKS Theo dõi lượt chuyển đổi từ lượt nhấp và lượt chuyển đổi nâng cao cho khách hàng tiềm năng Hướng dẫn về lượt nhấp tải lên
Hướng dẫn về tính năng lượt chuyển đổi nâng cao cho khách hàng tiềm năng
UPLOAD_CALLS Theo dõi lượt chuyển đổi từ cuộc gọi Hướng dẫn thiết lập API
STORE_SALES Theo dõi lượt chuyển đổi lượt bán hàng tại cửa hàng thực tế Hướng dẫn thiết lập API

Lượt chuyển đổi nâng cao cho web

Lượt chuyển đổi nâng cao cho web cho phép bạn gửi dữ liệu chuyển đổi của bên thứ nhất cho WEBPAGE hành động chuyển đổi trong vòng 24 giờ trước một sự kiện chuyển đổi thay vì cùng một lúc. Nhờ đó, bạn có thể xác định vị trí dữ liệu của bên thứ nhất từ nhiều nguồn, chẳng hạn như cơ sở dữ liệu khách hàng hoặc hệ thống CRM.

Các loại hành động chuyển đổi khác

API Google Ads cung cấp thêm các loại hành động chuyển đổi khác trong báo cáo, nhưng có thể giới hạn hoặc cấm việc tạo hoặc sửa đổi những hành động đó.

Lượt chuyển đổi SKAdNetwork

Nếu chạy Chiến dịch quảng cáo ứng dụng iOS và đã triển khai SKAdNetwork, bạn có thể truy cập vào dữ liệu SKAdNetwork được cung cấp cho Google ở cấp CustomerCampaign bằng cách sử dụng các tài nguyên sau:

Trường báo cáo Nội dung mô tả
metrics.sk_ad_network_installs Số lượt cài đặt mà Apple báo cáo. Bạn chỉ có thể phân đoạn chỉ số này theo bất kỳ tổ hợp nào giữa segments.sk_ad_network_conversion_value và các phân đoạn liên quan đến ngày.
metrics.sk_ad_network_total_conversions Tổng số lượt chuyển đổi, bao gồm cả lượt cài đặt và các loại chuyển đổi khác do Apple báo cáo. Bạn chỉ có thể phân đoạn chỉ số này theo các phân khúc có liên quan đến SKAdNetwork và các phân đoạn liên quan đến ngày.
segments.sk_ad_network_ad_event_type Loại sự kiện đã xảy ra cho một lượt chuyển đổi cụ thể.
segments.sk_ad_network_attribution_credit Cách phân bổ được ghi nhận cho một lượt chuyển đổi cụ thể.
segments.sk_ad_network_fine_conversion_value

Giá trị của một lượt chuyển đổi do Apple báo cáo. Bạn không thể áp dụng phân đoạn này cho bất kỳ chỉ số nào khác ngoài metrics.sk_ad_network_installs, metrics.sk_ad_network_total_conversions và bạn chỉ có thể kết hợp phân đoạn này với các phân đoạn liên quan đến ngày.

Giá trị của 0 sẽ được trả về nếu Apple báo cáo giá trị là 0 và không có giá trị nào khác. Hãy kiểm tra sự hiện diện của trường để phân biệt giữa 2 trường hợp.

segments.sk_ad_network_coarse_conversion_value Giá trị thô cho một lượt chuyển đổi riêng lẻ.
segments.sk_ad_network_postback_sequence_index Vị trí của hệ thống đăng lại, theo trình tự, đối với một lượt chuyển đổi cụ thể.
segments.sk_ad_network_source_app.sk_ad_network_source_app_id Mã ứng dụng mà quảng cáo thúc đẩy lượt cài đặt Mạng quảng cáo Bộ công cụ iOS Store đã được hiển thị.
segments.sk_ad_network_source_domain Trang web nơi quảng cáo thúc đẩy lượt cài đặt Mạng quảng cáo Bộ công cụ dành cho iOS Store đã được hiển thị. Giá trị rỗng có nghĩa là phân khúc này không thể áp dụng (ví dụ: chiến dịch không dành cho iOS) hoặc không có trong bất kỳ hệ thống đăng lại nào do Apple gửi.
segments.sk_ad_network_source_type Loại nguồn mà quảng cáo thúc đẩy lượt cài đặt Mạng quảng cáo Bộ công cụ dành cho iOS Store đã hiển thị. Giá trị rỗng có nghĩa là không thể áp dụng phân khúc này (ví dụ: chiến dịch không phải iOS) hoặc không có miền nguồn hay ứng dụng nguồn trong mọi hệ thống đăng lại do Apple gửi.
segments.sk_ad_network_user_type Kiểu người dùng đã tạo ra một lượt chuyển đổi cụ thể.
segments.sk_ad_network_redistributed_fine_conversion_value Các giá trị chuyển đổi trong phân khúc này bao gồm các giá trị rỗng đã được phân phối lại cho giá trị chuyển đổi. Phân đoạn này thể hiện tổng giá trị lượt chuyển đổi chính xác được ghi nhận do Apple trả về và giá trị rỗng được mô hình hoá của Google.

Bạn cũng có thể lưu mối liên kết giá trị lượt chuyển đổi SKAdNetwork cho những khách hàng cụ thể được liên kết bằng ứng dụng iOS thông qua CustomerSkAdNetworkConversionValueSchema.

Mã Python mẫu

#!/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

Lượt chuyển đổi từ một tài sản Google Analytics được liên kết có một trong các giá trị type sau:

  • Lượt chuyển đổi tài sản GA4:

    • GOOGLE_ANALYTICS_4_CUSTOM
    • GOOGLE_ANALYTICS_4_PURCHASE

    Bạn cũng có thể truy xuất mã tài sản GA4, tên tài sản và tên sự kiện từ trường google_analytics_4_settings.

  • Lượt chuyển đổi đối với tài sản Universal Analytics:

    • UNIVERSAL_ANALYTICS_GOAL
    • UNIVERSAL_ANALYTICS_TRANSACTION

Bạn có thể thực hiện các thay đổi sau đối với lượt chuyển đổi trên tài sản GA4:

Việc sửa đổi các thuộc tính khác của một lượt chuyển đổi GA4 đã nhập hoặc bất kỳ thuộc tính nào của lượt chuyển đổi Universal Analytics đã nhập sẽ dẫn đến lỗi MUTATE_NOT_ALLOWED. Bạn chỉ có thể thực hiện những thay đổi đó bằng cách sử dụng giao diện người dùng Google Ads.

Firebase và dịch vụ phân tích ứng dụng của bên thứ ba

Để nhập lượt chuyển đổi phân tích ứng dụng bên thứ ba hoặc Firebase, hãy thay đổi status của ConversionAction từ HIDDEN thành ENABLED bằng cách sử dụng phương thức mutate của ConversionActionService. Các hành động chuyển đổi này không hỗ trợ việc cập nhật app_id.

  • FIREBASE_ANDROID_FIRST_OPEN
  • FIREBASE_ANDROID_IN_APP_PURCHASE
  • FIREBASE_ANDROID_CUSTOM
  • FIREBASE_IOS_FIRST_OPEN
  • FIREBASE_IOS_IN_APP_PURCHASE
  • FIREBASE_IOS_CUSTOM
  • THIRD_PARTY_APP_ANALYTICS_ANDROID_FIRST_OPEN
  • THIRD_PARTY_APP_ANALYTICS_ANDROID_IN_APP_PURCHASE
  • THIRD_PARTY_APP_ANALYTICS_ANDROID_CUSTOM
  • THIRD_PARTY_APP_ANALYTICS_IOS_FIRST_OPEN
  • THIRD_PARTY_APP_ANALYTICS_IOS_IN_APP_PURCHASE
  • THIRD_PARTY_APP_ANALYTICS_IOS_CUSTOM

Doanh số tại cửa hàng

Mặc dù bạn không thể tạo hành động chuyển đổi STORE_SALES hoặc STORE_SALES_DIRECT_UPLOAD bằng API Google Ads, nhưng API này có hỗ trợ việc tải giao dịch bán hàng tại cửa hàng thực tế lên.

  • STORE_SALES
  • STORE_SALES_DIRECT_UPLOAD

Khác

Các loại hành động chuyển đổi sau đây chỉ có thể đọc trong API Google Ads và được cung cấp cho mục đích báo cáo.

  • 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

Không xác định

Nếu tài khoản Google Ads của bạn có các loại hành động chuyển đổi khác, thì bạn có thể thấy rằng các truy vấn và báo cáo sẽ trả về những hành động chuyển đổi có ConversionAction.typeUNKNOWN. API không hỗ trợ quản lý những hành động chuyển đổi này, nhưng sẽ trả về chúng trong báo cáo để cung cấp kết quả đầy đủ cho các chỉ số chuyển đổi chính, chẳng hạn như metrics.conversionsmetrics.conversions_value.

Ví dụ về mã

Ví dụ về mã sau đây sẽ hướng dẫn bạn quy trình tạo một hành động chuyển đổi mới. Cụ thể, thao tác này sẽ tạo một hành động chuyển đổi có type được đặt thành UPLOAD_CLICKS. Quy trình này cũng giống như quy trình trên giao diện người dùng Google Ads khi tạo hành động chuyển đổi mới bằng cách sử dụng Nhập > Nhập thủ công bằng API hoặc tải lên > Theo dõi lượt chuyển đổi từ lượt nhấp. Thao tác này cũng đặt category thành DEFAULT.

Các chế độ cài đặt mặc định sau đây sẽ được áp dụng:

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

1.199

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

Bạn cũng có thể tìm thấy ví dụ này trong thư mục Tái tiếp thị của thư viện ứng dụng và trong tập hợp ví dụ về mã: Ví dụ về thêm mã Hành động chuyển đổi.

Xác nhận kết quả

Google Ads và API Google Ads hỗ trợ nhiều hành động chuyển đổi. Vì vậy, một số quy tắc xác thực sẽ khác nhau dựa trên type của hành động.

Cho đến nay, lỗi phổ biến nhất khi tạo hành động chuyển đổi là DUPLICATE_NAME. Hãy đảm bảo bạn đang sử dụng tên riêng biệt cho mỗi hành động chuyển đổi.

Dưới đây là một số mẹo về cách thiết lập các trường ConversionAction:

Tất cả các trường enum
Việc cố gắng đặt một trường enum bất kỳ thành UNKNOWN sẽ dẫn đến lỗi RequestError.INVALID_ENUM_VALUE.
app_id
Thuộc tính app_id là không thể thay đổi và chỉ có thể được đặt khi tạo lượt chuyển đổi mới trong ứng dụng.
attribution_model_settings
Việc đặt giá trị này thành một tuỳ chọn không dùng nữa sẽ dẫn đến lỗi CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS. Google Ads chỉ hỗ trợ GOOGLE_ADS_LAST_CLICKGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN.
click_through_lookback_window_days

Việc đặt thuộc tính này thành một giá trị nằm ngoài phạm vi cho phép sẽ dẫn đến lỗi RangeError.TOO_LOW hoặc RangeError.TOO_HIGH.

Thuộc tính này phải nằm trong phạm vi [1,60] đối với một hành động chuyển đổi AD_CALL hoặc WEBSITE_CALL. Đối với hầu hết các hành động chuyển đổi khác, phạm vi được phép là [1,30].

include_in_conversions_metric

Không đặt được giá trị này trong thao tác create hoặc update kèm theo lỗi FieldError.IMMUTABLE_FIELD. Thay vào đó, hãy đặt primary_for_goal như mô tả trong Hướng dẫn về mục tiêu lượt chuyển đổi.

phone_call_duration_seconds

Việc cố gắng đặt thuộc tính này trên một hành động chuyển đổi không phải cho cuộc gọi sẽ dẫn đến lỗi FieldError.VALUE_MUST_BE_UNSET.

type

Thuộc tính type là không thể thay đổi và chỉ có thể được đặt khi tạo một lượt chuyển đổi mới.

Việc cập nhật một hành động chuyển đổi có type bằng UNKNOWN sẽ dẫn đến lỗi MutateError.MUTATE_NOT_ALLOWED.

value_settings

value_settings cho hành động chuyển đổi WEBSITE_CALL hoặc AD_CALL phải đặt always_use_default_value thành true. Việc chỉ định giá trị false khi tạo hoặc cập nhật giá trị này sẽ dẫn đến lỗi INVALID_VALUE.

view_through_lookback_window_days

Việc đặt thuộc tính này thành một giá trị nằm ngoài phạm vi cho phép sẽ dẫn đến lỗi RangeError.TOO_LOW hoặc RangeError.TOO_HIGH. Đối với hầu hết các hành động chuyển đổi, phạm vi được phép là [1,30].

Bạn không thể đặt thuộc tính này cho các hành động chuyển đổi AD_CALL hoặc WEBSITE_CALL. Việc chỉ định một giá trị sẽ dẫn đến lỗi VALUE_MUST_BE_UNSET.