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

คุณต้องเปิดใช้เครื่องมือวัด 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.V25.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::V25::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

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

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

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

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สําหรับWEBSITE_CALLหรือAD_CALLการกระทําที่ถือเป็น Conversion ต้อง ตั้งค่า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