คุณต้องเปิดใช้เครื่องมือวัด Conversion ในบัญชี Conversion ของ Google Ads เพื่อบันทึก Conversion คู่มือนี้จะให้รายละเอียดเกี่ยวกับวิธียืนยันว่าเครื่องมือวัด Conversion เปิดใช้อยู่หรือไม่ เปิดใช้หากยังไม่ได้เปิดใช้ และดึงข้อมูลเกี่ยวกับการกระทำที่ถือเป็น Conversion ที่มีอยู่
การกระทำที่ถือเป็น Conversion ส่วนใหญ่ยังกำหนดให้คุณต้องดำเนินการเพิ่มเติมเพื่อติดตาม การกระทำเหล่านั้นด้วย ดูข้อมูลเพิ่มเติมเกี่ยวกับการกระทำที่ถือเป็น Conversion ประเภทต่างๆ และข้อกำหนดของการกระทำเหล่านั้นได้ที่หมวดหมู่การกระทำที่ถือเป็น Conversion และสร้างการกระทำที่ถือเป็น Conversion
เตรียมให้ความยินยอม
เมื่อนําเข้า Conversion หรือข้อมูลผู้ใช้ คุณต้องยืนยันว่าคุณมีสิทธิ์แชร์ข้อมูล Conversion กับ Google ซึ่งทำได้ 2 วิธี ดังนี้
- กำหนดการตั้งค่าความยินยอมเริ่มต้นระดับบัญชี ในUI ของ Google Ads ให้คลิกเครื่องมือ > Data Manager > การตั้งค่าความยินยอม > การตั้งค่าความยินยอมเริ่มต้น
- ตั้งค่าช่องความยินยอมในเพย์โหลด 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 ด้วย
ระบบจะใช้การตั้งค่าเริ่มต้นต่อไปนี้
Google Ads API จะตั้งค่าฟิลด์
primary_for_goalโดยอัตโนมัติ แต่คุณสามารถตั้งค่าฟิลด์นี้อย่างชัดเจนเพื่อควบคุมวิธีที่การกระทําที่ถือเป็น Conversion ส่งผลต่อการรายงานและการเสนอราคาในบัญชีเมื่อรวมกับเป้าหมาย ConversionGoogle Ads API จะตั้งค่า
counting_typeเป็นMANY_PER_CLICKโดยอัตโนมัติ ดูรายละเอียดเพิ่มเติมได้ที่เกี่ยวกับตัวเลือกการนับ ConversionGoogle Ads API จะตั้งค่ารูปแบบการระบุแหล่งที่มาเป็นอิงตามข้อมูลโดยตั้งค่าช่อง
attribution_model_settingsเป็นค่าGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVENของAttributionModelดูข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบการระบุแหล่งที่มาได้ที่เกี่ยวกับรูปแบบการระบุแหล่งที่มา
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_MODELSGoogle 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ตามที่อธิบายไว้ในคู่มือเป้าหมาย Conversionphone_call_duration_secondsการพยายามตั้งค่าแอตทริบิวต์นี้ในการกระทำที่ถือเป็น Conversion ที่ไม่ใช่สำหรับการโทรจะส่งผลให้เกิดข้อผิดพลาด
FieldError.VALUE_MUST_BE_UNSETtypeแอตทริบิวต์
typeเปลี่ยนแปลงไม่ได้ และตั้งค่าได้เมื่อสร้าง Conversion ใหม่เท่านั้นการอัปเดตการกระทำที่ถือเป็น Conversion โดยมี
typeเท่ากับUNKNOWNจะทำให้เกิดข้อผิดพลาดMutateError.MUTATE_NOT_ALLOWEDvalue_settingsvalue_settingsสำหรับการกระทำที่ถือเป็น ConversionWEBSITE_CALLหรือAD_CALLต้องตั้งค่าalways_use_default_valueเป็นtrueการระบุค่าเป็นfalseเมื่อสร้างหรืออัปเดตค่านี้จะทำให้เกิดข้อผิดพลาดINVALID_VALUEview_through_lookback_window_daysการตั้งค่าแอตทริบิวต์นี้เป็นค่าที่อยู่นอกช่วงที่อนุญาตจะทำให้เกิดข้อผิดพลาด
RangeError.TOO_LOWหรือRangeError.TOO_HIGHสําหรับการกระทําที่ถือเป็น Conversion ส่วนใหญ่ ช่วงที่อนุญาตคือ 1 ถึง 30 วันตั้งค่าแอตทริบิวต์นี้ในการกระทำที่ถือเป็น Conversion
AD_CALLหรือWEBSITE_CALLไม่ได้ การระบุค่าจะทำให้เกิดข้อผิดพลาดVALUE_MUST_BE_UNSET