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

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

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

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

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

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

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

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

ดึงข้อมูลเกี่ยวกับการตั้งค่าเครื่องมือวัด 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 โดยทําตามวิธีการใน ศูนย์ช่วยเหลือสําหรับประเภท 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.V24.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::V24::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V24::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

  # Create a conversion action operation.
  my $conversion_action_operation =
    Google::Ads::GoogleAds::V24::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_action_type เป็นค่าที่ถูกต้อง ConversionActionType ดูคําแนะนําเพิ่มเติมเกี่ยวกับการสร้างการกระทำที่ถือเป็น Conversion ใน Google Ads API ได้ที่ สร้างการกระทำที่ถือเป็น Conversion

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

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

SELECT
  conversion_action.resource_name,
  conversion_action.name,
  conversion_action.status
FROM conversion_action
WHERE conversion_action.type = 'INSERT_CONVERSION_ACTION_TYPE'

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ตัวอย่างโค้ดต่อไปนี้จะแนะนําขั้นตอนการสร้างการกระทำที่ถือเป็น 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.V24.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::V24::Resources::ConversionAction->new({
      name                          => $conversion_action_name,
      category                      => DEFAULT,
      type                          => WEBPAGE,
      status                        => ENABLED,
      viewThroughLookbackWindowDays => 15,
      valueSettings                 =>
        Google::Ads::GoogleAds::V24::Resources::ValueSettings->new({
          defaultValue          => 23.41,
          alwaysUseDefaultValue => "true"
        })});

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

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