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

คุณต้องเปิดใช้เครื่องมือวัด 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 ข้ามบัญชีช่วยให้บัญชี 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 ประเภทอื่นๆ ได้ที่บทความในศูนย์ช่วยเหลือ

หากใช้เครื่องมือวัด 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.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