การเริ่มต้นใช้งาน

คุณต้องเปิดใช้เครื่องมือวัด Conversion ในบัญชี Conversion ของ Google Ads เพื่อบันทึก Conversion คู่มือนี้จะให้รายละเอียดเกี่ยวกับวิธียืนยันว่าเครื่องมือวัด Conversion เปิดใช้อยู่หรือไม่ เปิดใช้หากยังไม่ได้เปิดใช้ และดึงข้อมูลเกี่ยวกับการกระทำที่ถือเป็น Conversion ที่มีอยู่

การกระทำที่ถือเป็น Conversion ส่วนใหญ่ยังกำหนดให้คุณต้องดำเนินการเพิ่มเติมเพื่อติดตาม การกระทำเหล่านั้นด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับการกระทำที่ถือเป็น Conversion ประเภทต่างๆ และข้อกำหนดของการกระทำเหล่านั้นได้ที่หมวดหมู่การกระทำที่ถือเป็น Conversion และสร้างการกระทำที่ถือเป็น Conversion

เมื่อนําเข้า Conversion หรือข้อมูลผู้ใช้ คุณต้องยืนยันว่าคุณมีสิทธิ์แชร์ข้อมูล Conversion กับ Google ซึ่งทำได้ 2 วิธี ดังนี้

  1. กำหนดการตั้งค่าความยินยอมเริ่มต้นระดับบัญชี ในUI ของ Google Ads ให้คลิกเครื่องมือ > Data Manager > การตั้งค่าความยินยอม > การตั้งค่าความยินยอมเริ่มต้น
  2. ตั้งค่าช่องความยินยอมในเพย์โหลด Conversion หรือข้อมูลผู้ใช้ที่นําเข้าแต่ละรายการ (เช่น ClickConversion.consent, CallConversion.consent หรือ UserData.consent)

ตั้งค่าเว็บไซต์เพื่อติดตาม Conversion

หากคุณกำลังติดตาม Conversion ในเว็บไซต์หรือใช้ Conversion ที่ปรับปรุงแล้วสำหรับโอกาสในการขาย ให้กำหนดค่าการติดแท็กเว็บไซต์ก่อน ทำตามขั้นตอนในบทความกำหนดค่าแท็ก Google สำหรับ Conversion ที่ปรับปรุงแล้วสำหรับโอกาสในการขาย หรือใช้ Google Tag Manager โดยทำตามบทความกำหนดค่า Google Tag Manager สำหรับ Conversion ที่ปรับปรุงแล้วสำหรับโอกาสในการขาย

เปิดใช้เครื่องมือวัด Conversion ในบัญชี Conversion ของ Google Ads

ทำตามขั้นตอนต่อไปนี้เพื่อยืนยันการตั้งค่าเครื่องมือวัด Conversion ของบัญชี และสร้างหรือดึงข้อมูลการกระทำที่ถือเป็น Conversion

ขั้นตอนในการเปิดใช้เครื่องมือวัด Conversion

ดึงข้อมูลเกี่ยวกับการตั้งค่าเครื่องมือวัด Conversion

คุณสามารถตรวจสอบการตั้งค่าเครื่องมือวัด Conversion ของบัญชีและยืนยันว่าเปิดใช้เครื่องมือวัด Conversion แล้วโดยค้นหาทรัพยากร Customer เพื่อหา ConversionTrackingSetting ส่งคำค้นหาต่อไปนี้ด้วย GoogleAdsService.SearchStream

SELECT
  customer.conversion_tracking_setting.google_ads_conversion_customer,
  customer.conversion_tracking_setting.conversion_tracking_status,
  customer.conversion_tracking_setting.conversion_tracking_id,
  customer.conversion_tracking_setting.cross_account_conversion_tracking_id
FROM customer

ช่อง google_ads_conversion_customer ระบุบัญชี Google Ads ที่สร้างและจัดการ Conversion สำหรับลูกค้ารายนี้ สำหรับลูกค้าที่ใช้เครื่องมือวัด Conversion ข้ามบัญชี รหัสนี้คือรหัสของบัญชีดูแลจัดการ ควรกำหนดรหัสลูกค้า Conversion ของ Google Ads เป็น customer_id ในคำขอ Google Ads API เพื่อสร้างและจัดการ Conversion โปรดทราบว่าระบบจะป้อนข้อมูลในช่องนี้แม้ว่าจะไม่ได้เปิดใช้เครื่องมือวัด Conversion ก็ตาม

ช่อง conversion_tracking_status จะระบุว่ามีการเปิดใช้เครื่องมือวัด Conversion หรือไม่ และบัญชีใช้เครื่องมือวัด Conversion ข้ามบัญชีหรือไม่

สร้างการกระทำที่ถือเป็น Conversion ภายใต้ลูกค้า Conversion ของ Google Ads

หากค่า conversion_tracking_status เป็น NOT_CONVERSION_TRACKED แสดงว่าไม่ได้เปิดใช้เครื่องมือวัด Conversion สำหรับบัญชี เปิดใช้เครื่องมือวัด Conversion โดยสร้างConversionAction อย่างน้อย 1 รายการใน บัญชี Conversion ของ Google Ads เช่น ในตัวอย่างต่อไปนี้ หรือจะสร้างการกระทำที่ถือเป็น Conversion ใน UI ก็ได้ โดยทำตามวิธีการในบทความในศูนย์ช่วยเหลือของ Google Ads เกี่ยวกับการตั้งค่าเครื่องมือวัด Conversion สำหรับประเภท Conversion ที่ต้องการเปิดใช้

โปรดทราบว่าระบบจะเปิดใช้ Conversion ที่ปรับปรุงแล้วโดยอัตโนมัติเมื่อส่งผ่าน Google Ads API แต่คุณสามารถปิดใช้ได้ผ่าน UI ของ Google Ads

ตัวอย่างโค้ด

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

ตรวจสอบว่าได้ตั้งค่า type เป็นค่า ConversionActionType ที่ถูกต้อง ดูคําแนะนําเพิ่มเติมเกี่ยวกับการสร้างการกระทําที่ถือเป็น Conversion ใน Google Ads API ได้ที่ สร้าง การกระทําที่ถือเป็น Conversion

ดึงข้อมูลการกระทำที่ถือเป็น Conversion ที่มีอยู่

คุณสามารถดึงรายละเอียดของการกระทำที่ถือเป็น Conversion ที่มีอยู่ได้โดยใช้คำค้นหาต่อไปนี้ ตรวจสอบว่ารหัสลูกค้าในคำขอตั้งค่าเป็นลูกค้า Conversion ของ Google Ads ที่คุณระบุไว้ก่อนหน้านี้ และประเภทการกระทำที่ถือเป็น Conversion ตั้งค่าเป็นค่า ConversionActionType ที่ถูกต้อง

SELECT
  conversion_action.id,
  conversion_action.resource_name,
  conversion_action.name,
  conversion_action.type,
  conversion_action.category,
  conversion_action.status
FROM conversion_action

WHERE conversion_action.type = 'INSERT_CONVERSION_ACTION_TYPE'

เครื่องมือวัด Conversion ข้ามบัญชี

เครื่องมือวัด Conversion ข้ามบัญชีช่วยให้บัญชี Google Ads นำเข้า Conversion ในนามของบัญชีอื่นๆ ซึ่งอาจแสดงโฆษณาที่ สร้าง Conversion ซึ่งจะช่วยลดความซับซ้อนของการผสานรวมโดยให้คุณรวมบัญชีที่ส่งคำขอนำเข้าได้

การเปิดใช้เครื่องมือวัด Conversion ข้ามบัญชีใน Google Ads API

คุณสามารถใช้ Google Ads API เพื่อเลือกใช้เครื่องมือวัด Conversion ข้ามบัญชีเมื่อสร้างหรืออัปเดตบัญชีลูกค้า

ในแหล่งข้อมูล Customer ให้ตั้งค่าฟิลด์ conversion_tracking_setting.google_ads_conversion_customer เป็นชื่อทรัพยากรของบัญชีดูแลจัดการที่ควร จัดการการกระทำที่ถือเป็น Conversion ในนามของบัญชีลูกค้า

คำขอที่แก้ไขลูกค้าที่ทำ Conversion ของบัญชีลูกค้าต้องส่งโดยบัญชีดูแลจัดการที่กำลังจะกลายเป็นลูกค้าที่ทำ Conversion รายใหม่ของลูกค้า โดยการตั้งค่า login-customer-id เป็นรหัสบัญชีดูแลจัดการ

เมื่อเลือกใช้เครื่องมือวัด Conversion ข้ามบัญชี หรือเปลี่ยนเครื่องมือจัดการเครื่องมือวัด Conversion สำหรับบัญชีลูกค้าที่มีอยู่ ข้อควรระวังเดียวกันนี้จะมีผลเหมือนกับว่าคุณทำการเปลี่ยนแปลงนี้ใน UI ดังนี้

  • บัญชีลูกค้าจะใช้กฎมูลค่า Conversion เริ่มต้นและเป้าหมายวงจรลูกค้าเริ่มต้นของเครื่องมือจัดการการวัด Conversion ใหม่
  • แคมเปญที่กําหนดเป้าหมายการกระทําที่ถือเป็น Conversion ที่เฉพาะเจาะจงจะเปลี่ยนไปใช้เป้าหมาย Conversion เริ่มต้นของบัญชีดูแลจัดการ Conversion หากคุณยังคงกําหนดเป้าหมายการกระทําที่ถือเป็น Conversion ที่เฉพาะเจาะจงต่อไป อาจทําให้เกิดลักษณะการทํางานที่ไม่สอดคล้องกัน เนื่องจากบัญชีดูแลจัดการอาจไม่มีเป้าหมายเดียวกับบัญชีลูกค้า ตรวจสอบว่าแคมเปญได้รับการเพิ่มประสิทธิภาพเพื่อเป้าหมายที่เหมาะสม
  • หากบัญชีเป็นของบัญชีดูแลจัดการมากกว่า 1 บัญชี บัญชีนั้นจะใช้การกระทำที่ถือเป็น Conversion จากผู้จัดการได้เพียงรายเดียวเท่านั้น หากไม่ได้ระบุบัญชีเครื่องมือวัด Conversion บัญชีจะใช้ตัวเองเป็นบัญชีเครื่องมือวัด Conversion โดยค่าเริ่มต้น

การนําเข้า Conversion ข้ามบัญชี

เมื่อเปิดใช้การติดตามข้ามบัญชี บัญชีลูกค้าและบัญชีดูแลจัดการจะนําเข้า Conversion ในนามของบัญชีที่ใช้แสดงโฆษณาได้ ซึ่งจะช่วยให้คุณ ลดความซับซ้อนของตรรกะการนําเข้าได้ คุณจึงไม่จําเป็นต้องกําหนดบัญชีที่แสดง สําหรับ Conversion แต่ละรายการในเวลานําเข้า เพียงเลือกบัญชีใดบัญชีหนึ่งจาก โครงสร้างบัญชีเพื่อนำเข้า Conversion ทั้งหมด

หากต้องการอัปโหลด Conversion ให้สำเร็จ บัญชีที่อัปโหลดต้องมีสิทธิ์เข้าถึงการกระทำที่ถือเป็น Conversion ในลำดับชั้นการติดตามข้ามบัญชี บัญชีที่อัปโหลดจะมีสิทธิ์เข้าถึงการกระทำหากเป็นบัญชีหลัก (ผู้จัดการ) หรือบัญชีสืบทอดของเจ้าของการกระทำที่ถือเป็น Conversion ในแผนผังบัญชี

แผนภาพต่อไปนี้แสดงโครงสร้างการให้สิทธิ์สำหรับการนำเข้า Conversion ในที่นี้ C1 คือบัญชีลูกค้าที่แสดงโฆษณาที่สร้าง Conversion และ M2 คือเจ้าของการกระทำที่ถือเป็น Conversion และบัญชีหลักของเครื่องมือวัด Conversion ของ C1 บัญชีที่ไฮไลต์เป็นสีเขียวได้รับอนุญาตให้นำเข้า Conversion ในนามของ C1 ส่วนบัญชีที่ไฮไลต์เป็นสีแดงไม่ได้รับอนุญาต

โครงสร้างการให้สิทธิ์

สร้างการกระทำที่ถือเป็น Conversion

หากต้องการวัด Conversion ให้ตั้งค่า ConversionAction สําหรับtype ของการกระทําที่ถือเป็น Conversion ที่ต้องการติดตาม ตัวอย่างเช่น การซื้อออนไลน์และการโทรต้องใช้การกระทำที่ถือเป็น Conversion ที่แตกต่างกัน

วิธีที่ดีที่สุดในการตั้งค่าการกระทำที่ถือเป็น Conversion ใหม่ใน API คือการใช้ตัวอย่างโค้ดเพิ่มการกระทำที่ถือเป็น Conversion ตัวอย่างนี้จะจัดการงานการตรวจสอบสิทธิ์ในเบื้องหลังทั้งหมดให้คุณ และแนะนำขั้นตอนการสร้าง ConversionAction

การกระทำที่ถือเป็น Conversion ส่วนใหญ่ยังกำหนดให้คุณต้องทำตามขั้นตอนเพิ่มเติมเพื่อติดตามการกระทำเหล่านั้นด้วย เช่น หากต้องการติดตาม Conversion ในเว็บไซต์ คุณต้องเพิ่มข้อมูลโค้ด ที่เรียกว่าแท็กลงในหน้า Conversion ของเว็บไซต์ ดูข้อกําหนดโดยละเอียดของการกระทําที่ถือเป็น Conversion ประเภทอื่นๆ ได้ในบทความในศูนย์ช่วยเหลือของ Google Ads เกี่ยวกับประเภท Conversion

หากใช้เครื่องมือวัด Conversion ข้ามบัญชี ConversionActionService จะแสดงผลการกระทำที่ถือเป็น Conversion ต่อไปนี้

  • การกระทำที่ถือเป็น Conversion ทั้งหมดที่กำหนดโดยบัญชีดูแลจัดการที่บัญชีใช้สำหรับเครื่องมือวัด Conversion ข้ามบัญชี
  • การกระทำที่ถือเป็น Conversion ทั้งหมดที่ลูกค้าได้รวบรวมสถิติไว้ ซึ่งรวมถึงการกระทำที่ระบบกำหนดและการกระทำที่ผู้จัดการเป็นเจ้าของ แม้ว่าผู้จัดการรายนั้นจะยกเลิกการลิงก์ในภายหลังก็ตาม
  • การกระทำทั้งหมดที่ลูกค้ากำหนดไว้ในบัญชีของตนเอง
  • Conversion ของ Analytics ที่สร้างในพร็อพเพอร์ตี้ Google Analytics ที่ลิงก์ ซึ่งรวมถึงการกระทําสําหรับ Conversion ของ Analytics ที่ไม่ได้นําเข้าสู่ Google Ads ซึ่งมีสถานะเป็น HIDDEN

ตัวอย่างโค้ด

ตัวอย่างโค้ดต่อไปนี้จะแนะนําขั้นตอนการสร้างการกระทำที่ถือเป็น Conversion ใหม่ โดยเฉพาะอย่างยิ่ง ระบบจะสร้างการกระทำที่ถือเป็น Conversion โดยตั้งค่า type เป็น UPLOAD_CLICKS นอกจากนี้ยังตั้งค่า category เป็น DEFAULT ด้วย

ระบบจะใช้การตั้งค่าเริ่มต้นต่อไปนี้

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

คุณดูตัวอย่างนี้ได้ในโฟลเดอร์รีมาร์เก็ตติ้งของไลบรารีของไคลเอ็นต์ และในคอลเล็กชันตัวอย่างโค้ด: ตัวอย่างโค้ดเพิ่มการกระทำที่ถือเป็น Conversion

ข้อมูลอ้างอิงของช่อง ConversionActionService.MutateConversionActions

ใช้ MutateConversionActions ใน ConversionActionService เพื่อสร้าง อัปเดต หรือนําการกระทําที่ถือเป็น Conversion ออกภายใต้ลูกค้า Conversion ของ Google Ads

POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate

ตารางต่อไปนี้แสดงช่องคำขอและการดำเนินการระดับบนสุดใน MutateConversionActionsRequest

ช่อง ข้อกำหนด คำอธิบาย
customer_id ต้องระบุ รหัส 10 หลัก (string) ของลูกค้า Conversion โฆษณาของ Google Ads (google_ads_conversion_customer) โดยไม่มีขีดกลาง
partial_failure ไม่บังคับ เมื่อ true (bool) ระบบจะดำเนินการที่ถูกต้อง และการดำเนินการที่ล้มเหลวจะแสดงข้อผิดพลาดใน partial_failure_error ค่าเริ่มต้นคือ false
validate_only ไม่บังคับ เมื่อ true (bool) ตรวจสอบคำขอโดยไม่ดำเนินการเปลี่ยนแปลง
response_content_type ไม่บังคับ ResponseContentType ควบคุมว่าการตอบกลับจะแสดงเฉพาะ resource_name (RESOURCE_NAME_ONLY, ค่าเริ่มต้น) หรือออบเจ็กต์ ConversionAction ที่เปลี่ยนแปลง (MUTABLE_RESOURCE)
operations[].create ต้องระบุ (เมื่อสร้าง) ทรัพยากร ConversionAction ที่จะสร้าง คาดว่าจะไม่มีresource_name
operations[].update ต้องระบุ (เมื่ออัปเดต) ทรัพยากร ConversionAction ที่จะอัปเดต (ต้องมี resource_name และ update_mask ที่อยู่ระดับเดียวกันใน ConversionActionOperation)
operations[].update_mask ต้องระบุ (เมื่ออัปเดต) FieldMask (รายการเส้นทางฟิลด์ ConversionAction ที่แก้ไขใน snake_case คั่นด้วยคอมมา; REST JSON updateMask ยอมรับ snake_case หรือ camelCase ขณะที่ gRPC และไลบรารีไคลเอ็นต์ต้องใช้ snake_case) ใน ConversionActionOperation (รายการที่อยู่ระดับเดียวกันกับ update ไม่ได้ซ้อนอยู่ภายใน ConversionAction)
operations[].remove ต้องระบุ (เมื่อนำออก) ชื่อทรัพยากร (customers/{customer_id}/conversionActions/{action_id}) ของการกระทำที่ถือเป็น Conversion ที่จะนำออก

เมื่อกำหนดค่า ConversionAction ใน operations[].create หรือ operations[].update ให้สังเกตข้อกำหนดของช่องและข้อจำกัดด้านความสามารถในการเปลี่ยนแปลงได้ต่อไปนี้ (ดูการตรวจสอบสำหรับกฎข้อผิดพลาดเฉพาะประเภท)

ช่อง ConversionAction ข้อกำหนดและความสามารถในการเปลี่ยนแปลงได้ คำอธิบาย
name ต้องระบุ (เปลี่ยนแปลงได้) ชื่อที่แสดงที่ไม่ซ้ำกัน (string) ภายในบัญชีลูกค้าที่เกิด Conversion
type ต้องระบุใน create (IMMUTABLE) ConversionActionType (เช่น WEBPAGE, UPLOAD_CLICKS, UPLOAD_CALLS, AD_CALL หรือ WEBSITE_CALL)
category ไม่บังคับ (เปลี่ยนแปลงได้) ConversionActionCategory (เช่น DEFAULT, PURCHASE, SUBMIT_LEAD_FORM, SIGNUP หรือ PHONE_CALL_LEAD) ค่าเริ่มต้นคือ DEFAULT
status ไม่บังคับ (เปลี่ยนแปลงได้) ConversionActionStatus (ENABLED, REMOVED หรือ HIDDEN) ค่าเริ่มต้นคือ ENABLED
primary_for_goal ไม่บังคับ (เปลี่ยนแปลงได้) bool ควบคุมว่าการกระทำนั้นเสนอราคาได้หรือไม่ในเป้าหมาย Conversion ของลูกค้าและแคมเปญมาตรฐาน (หมายเหตุ: แหล่งข้อมูล CustomConversionGoal จะละเว้นการตั้งค่านี้) ค่าเริ่มต้นคือ true
counting_type ไม่บังคับ (เปลี่ยนแปลงได้) ConversionActionCountingType (ค่าเริ่มต้น MANY_PER_CLICK หรือ ONE_PER_CLICK)
value_settings ไม่บังคับ (เปลี่ยนแปลงได้) ValueSettings (default_value, default_currency_code, always_use_default_value)
attribution_model_settings ไม่บังคับ (เปลี่ยนแปลงได้) AttributionModelSettings (attribution_model: GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN ค่าเริ่มต้นหรือ GOOGLE_ADS_LAST_CLICK)
click_through_lookback_window_days ไม่บังคับ (เปลี่ยนแปลงได้) int64 กรอบเวลามองย้อนกลับของการคลิกผ่านเป็นวัน (1 ถึง 90 สำหรับประเภทส่วนใหญ่ 1 ถึง 60 สำหรับประเภทการโทร)
view_through_lookback_window_days ไม่บังคับ (เปลี่ยนแปลงได้) กรอบเวลามองย้อนกลับของการดูผ่าน int64 วัน (1 ถึง 30 สำหรับประเภทส่วนใหญ่ ไม่ได้ตั้งค่าสำหรับประเภทการโทร)
phone_call_duration_seconds ประเภทการโทรเท่านั้น (เปลี่ยนแปลงได้) int64 ระยะเวลาการโทรขั้นต่ำเป็นวินาที (0 ถึง 10000)
app_id ประเภทแอปเท่านั้น (เปลี่ยนแปลงไม่ได้หลังจากสร้าง) ตัวระบุแอปบนอุปกรณ์เคลื่อนที่ (string) ตั้งค่าได้ใน create สำหรับการกระทำที่ถือเป็น Conversion ของแอปเท่านั้น
include_in_conversions_metric อ่านอย่างเดียวในการกลายพันธุ์ แก้ไขโดยตรงไม่ได้ ให้กำหนดค่า primary_for_goal แทน
tag_snippets[] OUTPUT_ONLY ข้อมูลโค้ดติดตามเว็บไซต์ (TagSnippet) ที่สร้างขึ้นในการกระทำที่ถือเป็น Conversion WEBPAGE รายการ

โครงสร้างคำขอและการตอบกลับของ REST

หากต้องการสร้างหรืออัปเดต ConversionAction ผ่าน REST ให้ส่งคำขอ POST ไปยัง ConversionActionService.MutateConversionActions เมื่ออัปเดตการกระทำที่ถือเป็น Conversion ที่มีอยู่ ให้ระบุ updateMask ใน ออบเจ็กต์การดำเนินการเป็นรายการที่อยู่ระดับเดียวกันกับ update

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
        }
      }
    },
    {
      "updateMask": "primary_for_goal,value_settings.default_value",
      "update": {
        "resourceName": "customers/{customer_id}/conversionActions/6666666666",
        "primaryForGoal": false,
        "valueSettings": {
          "defaultValue": 45.00
        }
      }
    }
  ]
}

การตอบกลับที่สำเร็จจะแสดงรายการ MutateConversionActionResult ใน results[] ดังนี้

{
  "results": [
    {
      "resourceName": "customers/{customer_id}/conversionActions/7777777777"
    },
    {
      "resourceName": "customers/{customer_id}/conversionActions/6666666666"
    }
  ]
}

ตรวจสอบการตั้งค่าชุดการกระทำที่ถือเป็น Conversion และข้อมูลโค้ดแท็กด้วย GAQL

นอกเหนือจากคำค้นหาพื้นฐานที่แสดงในขั้นตอนในการเปิดใช้เครื่องมือวัด Conversion คุณยังสามารถค้นหาทรัพยากร conversion_action โดยใช้ GoogleAdsService.SearchStream เพื่อตรวจสอบ primary_for_goal, สถานะรูปแบบการระบุแหล่งที่มา, กรอบเวลามองย้อนกลับ, การตั้งค่ามูลค่า และtag_snippetsของเว็บไซต์ได้ด้วย

SELECT
  conversion_action.id,
  conversion_action.resource_name,
  conversion_action.name,
  conversion_action.type,
  conversion_action.category,
  conversion_action.status,
  conversion_action.primary_for_goal,
  conversion_action.counting_type,
  conversion_action.click_through_lookback_window_days,
  conversion_action.view_through_lookback_window_days,
  conversion_action.value_settings.default_value,
  conversion_action.value_settings.default_currency_code,
  conversion_action.value_settings.always_use_default_value,
  conversion_action.attribution_model_settings.attribution_model,
  conversion_action.attribution_model_settings.data_driven_model_status,
  conversion_action.tag_snippets
FROM conversion_action
WHERE conversion_action.status = 'ENABLED'

การตรวจสอบความถูกต้อง

Google Ads และ Google Ads API รองรับการกระทำที่ถือเป็น Conversion ที่หลากหลาย ดังนั้นกฎการตรวจสอบบางอย่างจึงแตกต่างกันไปตาม type ของการกระทำ

ข้อผิดพลาดที่พบบ่อยที่สุดเมื่อสร้างการกระทำที่ถือเป็น Conversion คือ DUPLICATE_NAME ตรวจสอบว่าคุณใช้ชื่อที่ไม่ซ้ำกันสําหรับ การกระทําที่ถือเป็น Conversion แต่ละรายการ

เคล็ดลับในการตั้งค่าฟิลด์ ConversionAction มีดังนี้

ฟิลด์ Enum ทั้งหมด
การพยายามตั้งค่าฟิลด์ enum เป็น UNKNOWN จะทำให้เกิดข้อผิดพลาด RequestError.INVALID_ENUM_VALUE
app_id
แอตทริบิวต์ app_id จะเปลี่ยนแปลงไม่ได้ และจะตั้งค่าได้เมื่อสร้าง Conversion ใหม่ของแอปเท่านั้น
attribution_model_settings
การตั้งค่านี้เป็นตัวเลือกที่เลิกใช้งานแล้วจะทำให้เกิดข้อผิดพลาด CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELS Google Ads รองรับเฉพาะ GOOGLE_ADS_LAST_CLICK และ GOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN
click_through_lookback_window_days

การตั้งค่าแอตทริบิวต์นี้เป็นค่าที่อยู่นอกช่วงที่อนุญาตจะทำให้เกิดข้อผิดพลาด RangeError.TOO_LOW หรือ RangeError.TOO_HIGH

แอตทริบิวต์นี้ต้องอยู่ระหว่าง 1 ถึง 60 วันสําหรับการกระทําที่ถือเป็น Conversion AD_CALL หรือ WEBSITE_CALL สำหรับการกระทำที่ถือเป็น Conversion อื่นๆ ส่วนใหญ่ ช่วงที่อนุญาตคือ 1 ถึง 90 วัน

include_in_conversions_metric

การตั้งค่านี้ในการดำเนินการ create หรือ update จะไม่สำเร็จและแสดงข้อผิดพลาด FieldError.IMMUTABLE_FIELD แต่ให้ตั้งค่า primary_for_goal ตามที่อธิบายไว้ในคู่มือเป้าหมาย Conversion

phone_call_duration_seconds

การพยายามตั้งค่าแอตทริบิวต์นี้ในการกระทำที่ถือเป็น Conversion ที่ไม่ใช่สำหรับการโทรจะส่งผลให้เกิดข้อผิดพลาด FieldError.VALUE_MUST_BE_UNSET

type

แอตทริบิวต์ type เปลี่ยนแปลงไม่ได้ และตั้งค่าได้เมื่อสร้าง Conversion ใหม่เท่านั้น

การอัปเดตการกระทำที่ถือเป็น Conversion โดยมี type เท่ากับ UNKNOWN จะทำให้เกิดข้อผิดพลาด MutateError.MUTATE_NOT_ALLOWED

value_settings

value_settings สำหรับการกระทำที่ถือเป็น Conversion WEBSITE_CALL หรือ AD_CALL ต้องตั้งค่า always_use_default_value เป็น true การระบุค่าเป็น false เมื่อสร้างหรืออัปเดตค่านี้จะทำให้เกิดข้อผิดพลาด INVALID_VALUE

view_through_lookback_window_days

การตั้งค่าแอตทริบิวต์นี้เป็นค่าที่อยู่นอกช่วงที่อนุญาตจะทำให้เกิดข้อผิดพลาด RangeError.TOO_LOW หรือ RangeError.TOO_HIGH สําหรับการกระทําที่ถือเป็น Conversion ส่วนใหญ่ ช่วงที่อนุญาตคือ 1 ถึง 30 วัน

ตั้งค่าแอตทริบิวต์นี้ในการกระทำที่ถือเป็น Conversion AD_CALL หรือ WEBSITE_CALL ไม่ได้ การระบุค่าจะทำให้เกิดข้อผิดพลาด VALUE_MUST_BE_UNSET