Quản lý chuyển đổi

Trong Google Ads, lượt chuyển đổi là một hành động có giá trị của người dùng (chẳng hạn như mua sản phẩm, gửi biểu mẫu khách hàng tiềm năng, gọi điện cho doanh nghiệp hoặc ghé thăm cửa hàng thực tế) sau khi lượt tương tác với quảng cáo. Tính năng theo dõi lượt chuyển đổi đo lường những lượt tương tác này của khách hàng để bạn có thể đánh giá hiệu suất chiến dịch và tối ưu hoá chiến lược đặt giá thầu tự động.

Google Ads API cho phép bạn định cấu hình hành động chuyển đổi theo phương thức lập trình, nhập sự kiện chuyển đổi ngoại tuyến, nâng cao hoặc điều chỉnh lượt chuyển đổi đã ghi nhận, nhóm hành động vào mục tiêu đặt giá thầu và mục tiêu vòng đời, cũng như theo dõi thông tin chẩn đoán về lượt tải lên.

Chọn quy trình chuyển đổi

Sử dụng bảng sau để xác định ConversionActionType, dịch vụ API và hướng dẫn triển khai cho trường hợp sử dụng của bạn:

Nhiệm vụ Loại hành động chuyển đổi Dịch vụ hoặc tài nguyên API Hướng dẫn triển khai
Xác minh thông tin thiết lập tài khoản và tạo hành động chuyển đổi UPLOAD_CLICKS, WEBPAGE, UPLOAD_CALLS, AD_CALL, WEBSITE_CALL, GOOGLE_PLAY_DOWNLOAD, GOOGLE_PLAY_IN_APP_PURCHASE Customer (ConversionTrackingSetting), ConversionActionService Bắt đầu và Danh mục hành động chuyển đổi
Nhập lượt chuyển đổi từ lượt nhấp ngoại tuyến hoặc lượt chuyển đổi nâng cao cho khách hàng tiềm năng UPLOAD_CLICKS ConversionUploadService.UploadClickConversions (hoặc Data Manager API đối với các hoạt động tích hợp mới) Nhập lượt chuyển đổi ngoại tuyến từ lượt nhấp
Nâng cao lượt chuyển đổi trực tuyến (lượt chuyển đổi nâng cao cho web) WEBPAGE ConversionAdjustmentUploadService.UploadConversionAdjustments (ENHANCEMENT) Nhập lượt chuyển đổi từ lượt nhấp trực tuyến
Nhập các lượt chuyển đổi cuộc gọi điện thoại UPLOAD_CALLS ConversionUploadService.UploadCallConversions Nhập lượt chuyển đổi dạng cuộc gọi
Nhập giao dịch bán hàng tại cửa hàng thực tế STORE_SALES, STORE_SALES_DIRECT_UPLOAD OfflineUserDataJobService (hoặc Data Manager API) Nhập lượt chuyển đổi dạng lượt bán hàng tại cửa hàng thực tế
Rút lại hoặc điều chỉnh lượt chuyển đổi đã ghi nhận UPLOAD_CLICKS, WEBPAGE, SALESFORCE (không dùng nữa) ConversionAdjustmentUploadService.UploadConversionAdjustments (RETRACTION, RESTATEMENT) Điều chỉnh lượt chuyển đổi sau khi nhập
Đính kèm siêu dữ liệu thẻ tuỳ chỉnh vào lượt chuyển đổi UPLOAD_CLICKS, UPLOAD_CALLS, WEBPAGE ConversionCustomVariableService Biến tuỳ chỉnh lượt chuyển đổi
Định cấu hình mục tiêu đặt giá thầu, mục tiêu vòng đời và quy tắc về giá trị Mục tiêu về tài khoản, chiến dịch và mục tiêu vòng đời CustomerConversionGoalService, CampaignConversionGoalService, CustomConversionGoalService, ConversionGoalCampaignConfigService, GoalService, CampaignGoalConfigService, ConversionValueRuleService Mục tiêu lượt chuyển đổi, Mục tiêu vòng đời, và Quy tắc về giá trị lượt chuyển đổi
Theo dõi tình trạng nhập và chẩn đoán lỗi UPLOAD_CLICKS, WEBPAGE, UPLOAD_CALLS offline_conversion_upload_client_summary, offline_conversion_upload_conversion_action_summary Theo dõi thông tin chẩn đoán về dữ liệu ngoại tuyến
Truy vấn các chỉ số lượt chuyển đổi và khắc phục sự cố Tất cả các loại chuyển đổi GoogleAdsService.SearchStream (customer, campaign, conversion_action) Tìm nạp số liệu thống kê về lượt chuyển đổi và Khắc phục sự cố khi nhập lượt chuyển đổi

Vòng đời chuyển đổi toàn diện

Quá trình tích hợp hoàn chỉnh tính năng quản lý lượt chuyển đổi trong Google Ads API gồm 4 giai đoạn:

  1. Xác minh chế độ thiết lập tài khoản và tạo hành động chuyển đổi: Truy vấn Customer.conversion_tracking_setting để xác nhận tài khoản chuyển đổi hiệu quả (google_ads_conversion_customer), xác minh rằng tính năng theo dõi lượt chuyển đổi đang hoạt động, định cấu hình sự đồng ý của người dùng và tạo ConversionAction với ConversionActionType và ConversionActionCategory mục tiêu.
  2. Nhập sự kiện chuyển đổi: Truyền trực tuyến lượt chuyển đổi dạng cuộc gọi hoặc lượt nhấp ngoại tuyến bằng cách sử dụng ConversionUploadService, trong đó partial_failure được đặt thành true, bổ sung lượt chuyển đổi trên trang web bằng các mức điều chỉnh ENHANCEMENT bằng cách sử dụng ConversionAdjustmentUploadService hoặc tải lên hàng loạt lượt bán hàng tại cửa hàng thực tế bằng cách sử dụng OfflineUserDataJobService.
  3. Điều chỉnh và tối ưu hoá lượt chuyển đổi: Rút lại hoặc điều chỉnh lượt chuyển đổi đã ghi nhận bằng cách sử dụng ConversionAdjustmentUploadService, đính kèm siêu dữ liệu ConversionCustomVariable, áp dụng quy tắc về giá trị lượt chuyển đổi và sắp xếp các hành động thành mục tiêu lượt chuyển đổi và mục tiêu vòng đời để kiểm soát việc tối ưu hoá chiến lược đặt giá thầu.
  4. Theo dõi thông tin chẩn đoán và báo cáo hiệu suất: Truy vấn offline_conversion_upload_client_summary và offline_conversion_upload_conversion_action_summary để kiểm tra trạng thái xử lý của tệp tải lên và cảnh báo về lỗi một phần. Truy vấn tài nguyên customer hoặc campaign (tuỳ ý phân đoạn theo segments.conversion_action) để so sánh các chỉ số metrics.conversions và metrics.all_conversions, hoặc truy vấn tài nguyên conversion_action để kiểm tra metrics.all_conversions và dấu thời gian của lượt chuyển đổi gần đây nhất.

Bắt đầu nhanh: Xác minh chế độ thiết lập, tạo hành động và kiểm tra tình trạng

Các ví dụ sau đây cho thấy 3 truy vấn và đột biến phổ biến nhất cần thiết để khởi động và giám sát theo dõi lượt chuyển đổi.

1. Xác minh chế độ cài đặt theo dõi lượt chuyển đổi bằng GAQL

Trước khi tạo ConversionAction hoặc tải sự kiện lên, hãy truy vấn tài nguyên customer bằng cách sử dụng GoogleAdsService.SearchStream để xác định tài khoản nào quản lý lượt chuyển đổi (google_ads_conversion_customer), liệu các điều khoản về dữ liệu khách hàng có được chấp nhận hay không và liệu tính năng lượt chuyển đổi nâng cao ở cấp tài khoản có được bật hay không (EnhancedConversionsConfig):

SELECT
  customer.conversion_tracking_setting.conversion_tracking_id,
  customer.conversion_tracking_setting.conversion_tracking_status,
  customer.conversion_tracking_setting.cross_account_conversion_tracking_id,
  customer.conversion_tracking_setting.google_ads_conversion_customer,
  customer.conversion_tracking_setting.accepted_customer_data_terms,
  customer.conversion_tracking_setting.enablement_setting,
  customer.conversion_tracking_setting.effective_enablement_setting
FROM customer

Trích xuất {customer_id} từ tên tài nguyên customers/{customer_id} được trả về trong google_ads_conversion_customer, rồi đưa ra tất cả các yêu cầu ConversionActionService và ConversionUploadService tiếp theo đối với mã khách hàng đó. Để biết toàn bộ thông tin thiết lập và thông tin chi tiết về hệ thống phân cấp nhiều tài khoản, hãy xem phần Bắt đầu.

2. Tạo một hành động chuyển đổi

Sử dụng ConversionActionService.MutateConversionActions để tạo ConversionAction. Ví dụ sau đây tạo một hành động chuyển đổi UPLOAD_CLICKS có giá trị tuỳ chỉnh và chế độ cài đặt về thời gian xem lại:

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.V26.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: GoogleAdsClient, customer_id: str) -> None:
    conversion_action_service: ConversionActionServiceClient = (
        client.get_service("ConversionActionService")
    )

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

    # Create conversion action.
    conversion_action: ConversionAction = 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: ConversionAction.ValueSettings = (
        conversion_action.value_settings
    )
    value_settings.default_value = 15.0
    value_settings.always_use_default_value = True

    # Add the conversion action.
    conversion_action_response: MutateConversionActionsResponse = (
        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::V26::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V26::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

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

curl

Yêu cầu REST

Để tạo cùng một ConversionAction qua REST, hãy gửi yêu cầu POST đến ConversionActionService.MutateConversionActions:

POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
{
  "operations": [
    {
      "create": {
        "name": "Earth to Mars Cruise Conversion",
        "type": "UPLOAD_CLICKS",
        "category": "DEFAULT",
        "status": "ENABLED",
        "primaryForGoal": true,
        "countingType": "ONE_PER_CLICK",
        "clickThroughLookbackWindowDays": "60",
        "valueSettings": {
          "defaultValue": 23.41,
          "defaultCurrencyCode": "USD",
          "alwaysUseDefaultValue": true
        }
      }
    }
  ]
}

Sau khi hành động chuyển đổi của bạn ENABLED, hãy nhập sự kiện chuyển đổi hoặc thông tin nâng cao bằng quy trình làm việc cho nguồn chuyển đổi của bạn (xem phần Nhập sự kiện chuyển đổi).

3. Theo dõi tình trạng tải lượt chuyển đổi ngoại tuyến lên

Sau khi tải lượt chuyển đổi từ lượt nhấp, lượt chuyển đổi dạng cuộc gọi hoặc mức điều chỉnh cho lượt chuyển đổi lên, hãy truy vấn offline_conversion_upload_client_summary để kiểm tra trạng thái tổng thể của công việc, tỷ lệ thành công và tỷ lệ đang chờ xử lý, cũng như bảng chi tiết lỗi trong các tệp tải lên gần đây:

SELECT
  offline_conversion_upload_client_summary.client,
  offline_conversion_upload_client_summary.status,
  offline_conversion_upload_client_summary.total_event_count,
  offline_conversion_upload_client_summary.successful_event_count,
  offline_conversion_upload_client_summary.success_rate,
  offline_conversion_upload_client_summary.pending_event_count,
  offline_conversion_upload_client_summary.pending_rate,
  offline_conversion_upload_client_summary.last_upload_date_time,
  offline_conversion_upload_client_summary.alerts
FROM offline_conversion_upload_client_summary

Truy vấn offline_conversion_upload_conversion_action_summary để xem thông tin chẩn đoán ở cấp hành động chuyển đổi (xem phần Theo dõi thông tin chẩn đoán dữ liệu ngoại tuyến) và tham khảo bài viết Khắc phục sự cố khi nhập lượt chuyển đổi để giải quyết các mã lỗi cụ thể.

Thư mục hướng dẫn theo giai đoạn trong vòng đời

Khám phá toàn bộ hướng dẫn quản lý lượt chuyển đổi được sắp xếp theo giai đoạn trong vòng đời:

1. Thiết lập tài khoản và hành động chuyển đổi

  • Danh mục hành động chuyển đổi: Chọn đúng nguồn chuyển đổi – trang web (WEBPAGE), cuộc gọi điện thoại (UPLOAD_CALLS, AD_CALL, WEBSITE_CALL), ứng dụng di động (GOOGLE_PLAY_DOWNLOAD, GOOGLE_PLAY_IN_APP_PURCHASE, Firebase, SKAdNetwork), Google Analytics 4 (GOOGLE_ANALYTICS_4_CUSTOM, GOOGLE_ANALYTICS_4_PURCHASE), ngoại tuyến (UPLOAD_CLICKS) hoặc cửa hàng thực tế (STORE_SALES) – rồi liên kết nguồn đó với ConversionActionType và quy trình API tương ứng.
  • Bắt đầu: Định cấu hình sự đồng ý của người dùng, xác minh ConversionTrackingSetting, thiết lập tính năng theo dõi lượt chuyển đổi trên nhiều tài khoản và tạo hành động chuyển đổi bằng thư viện ứng dụng hoặc REST.

2. Nhập sự kiện chuyển đổi

3. Điều chỉnh và tối ưu hoá lượt chuyển đổi

4. Giám sát, báo cáo và khắc phục sự cố