คุณต้องเปิดใช้เครื่องมือวัด Conversion ในบัญชี Conversion ของ Google Ads เพื่อบันทึก Conversion คู่มือนี้ให้รายละเอียดเกี่ยวกับวิธีตรวจสอบว่าได้เปิดใช้เครื่องมือวัด Conversion แล้วหรือไม่ เปิดใช้หากยังไม่ได้เปิด และดึงข้อมูลเกี่ยวกับการกระทำที่ถือเป็น Conversion ที่มีอยู่
การกระทำที่ถือเป็น Conversion ส่วนใหญ่ยังต้องมีขั้นตอนเพิ่มเติมจากคุณเพื่อติดตาม ดูข้อมูลเพิ่มเติมเกี่ยวกับประเภทการกระทำที่ถือเป็น Conversion ต่างๆ และข้อกำหนดของแต่ละประเภทได้ใน คู่มือสร้างการกระทำที่ถือเป็น Conversion
เตรียมให้ความยินยอม
คุณต้องยืนยันว่าได้รับอนุญาตให้แชร์ข้อมูล Conversion กับ Google โดยสามารถทำได้ด้วยวิธีใดวิธีหนึ่งต่อไปนี้
- กำหนดค่าการตั้งค่าความยินยอมเริ่มต้นระดับบัญชี ใน UI ของ Google Ads ให้คลิก เครื่องมือ -> Data Manager -> การตั้งค่าความยินยอม -> การตั้งค่าความยินยอมเริ่มต้น
- ตั้งค่าฟิลด์ 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.V25.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V25::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V25::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
ตรวจสอบว่าได้ตั้งค่า conversion_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 ข้ามบัญชี บัญชีที่อัปโหลดจะมีสิทธิ์เข้าถึงการกระทำที่ถือเป็น Conversion หากเป็นบัญชีระดับบน (บัญชีดูแลจัดการ) หรือบัญชีระดับล่างของเจ้าของการกระทำที่ถือเป็น Conversion ในแผนผังบัญชี
แผนภาพต่อไปนี้แสดงโครงสร้างการให้สิทธิ์สําหรับการนําเข้า Conversion โดย C1 คือบัญชีลูกค้าที่แสดงโฆษณาซึ่งสร้าง Conversion และ M2 คือเจ้าของการกระทำที่ถือเป็น Conversion และบัญชีดูแลจัดการเครื่องมือวัด Conversion ของ C1 บัญชีที่ไฮไลต์เป็นสีเขียวได้รับอนุญาตให้นําเข้า Conversion ในนามของ C1 ส่วนบัญชีที่ไฮไลต์เป็นสีแดงไม่ได้รับอนุญาต

สร้างการกระทำที่ถือเป็น Conversion
หากต้องการวัด Conversion ให้ตั้งค่า
ConversionAction สําหรับ
type ของ
การกระทำที่ถือเป็น Conversion ที่ต้องการติดตาม ตัวอย่างเช่น การซื้อออนไลน์และการโทรทางโทรศัพท์ต้องใช้การกระทำที่ถือเป็น Conversion ที่แตกต่างกัน
วิธีที่ดีที่สุดในการตั้งค่าการกระทำที่ถือเป็น Conversion ใหม่ใน API คือการใช้
ตัวอย่างโค้ดเพิ่มการกระทำที่ถือเป็น Conversion ด้านล่าง ตัวอย่างจะจัดการ
งานการตรวจสอบสิทธิ์เบื้องหลังทั้งหมดให้คุณ และแนะนําขั้นตอนการสร้าง
a ConversionAction
การกระทำที่ถือเป็น Conversion ส่วนใหญ่ยังต้องมีขั้นตอนเพิ่มเติมจากคุณเพื่อติดตาม ตัวอย่างเช่น หากต้องการติดตาม Conversion ในเว็บไซต์ คุณต้องเพิ่มโค้ด ที่เรียกว่า แท็ก ลงในหน้า Conversion ของเว็บไซต์ ดูข้อกําหนดโดยละเอียดของการกระทำที่ถือเป็น Conversion ประเภท อื่นๆ ได้ใน บทความในศูนย์ช่วยเหลือ
หากคุณใช้เครื่องมือวัด Conversion ข้ามบัญชี
ติดตาม
ConversionActionService จะแสดงการกระทำที่ถือเป็น Conversion ต่อไปนี้
- การกระทำที่ถือเป็น Conversion ทั้งหมดที่กำหนดโดยบัญชีดูแลจัดการซึ่งบัญชีใช้สําหรับเครื่องมือวัด Conversion ข้ามบัญชี
- การกระทำที่ถือเป็น Conversion ทั้งหมดที่ลูกค้าสะสมสถิติไว้ รวมถึงการกระทำที่ระบบกําหนด และการกระทำที่บัญชีดูแลจัดการเป็นเจ้าของ แม้ว่าบัญชีดูแลจัดการจะยกเลิกการลิงก์ในภายหลังก็ตาม
- การกระทำทั้งหมดที่ลูกค้ากําหนดไว้ในบัญชีของตนเอง
- Conversion ของ Analytics ที่สร้างในพร็อพเพอร์ตี้ Google Analytics ที่ลิงก์
ซึ่งรวมถึงการกระทำที่ถือเป็น Conversion สําหรับ 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.V25.ConversionActionService); // Note that conversion action names must be unique. // If a conversion action already exists with the specified name the create operation // will fail with a ConversionAction.DUPLICATE_NAME error. string ConversionActionName = "Earth to Mars Cruises Conversion #" + ExampleUtilities.GetRandomString(); // Add a conversion action. ConversionAction conversionAction = new ConversionAction() { Name = ConversionActionName, Category = ConversionActionCategory.Default, Type = ConversionActionType.Webpage, Status = ConversionActionStatus.Enabled, ViewThroughLookbackWindowDays = 15, ValueSettings = new ConversionAction.Types.ValueSettings() { DefaultValue = 23.41, AlwaysUseDefaultValue = true } }; // Create the operation. ConversionActionOperation operation = new ConversionActionOperation() { Create = conversionAction }; try { // Create the conversion action. MutateConversionActionsResponse response = conversionActionService.MutateConversionActions(customerId.ToString(), new ConversionActionOperation[] { operation }); // Display the results. foreach (MutateConversionActionResult newConversionAction in response.Results) { Console.WriteLine($"New conversion action with resource name = " + $"'{newConversionAction.ResourceName}' was added."); } } catch (GoogleAdsException e) { Console.WriteLine("Failure:"); Console.WriteLine($"Message: {e.Message}"); Console.WriteLine($"Failure: {e.Failure}"); Console.WriteLine($"Request ID: {e.RequestId}"); throw; } }
PHP
public static function runExample(GoogleAdsClient $googleAdsClient, int $customerId) { // Creates a conversion action. $conversionAction = new ConversionAction( [ // Note that conversion action names must be unique. // If a conversion action already exists with the specified conversion_action_name // the create operation will fail with a ConversionActionError.DUPLICATE_NAME error. 'name' => 'Earth to Mars Cruises Conversion #' . Helper::getPrintableDatetime(), 'category' => ConversionActionCategory::PBDEFAULT, 'type' => ConversionActionType::WEBPAGE, 'status' => ConversionActionStatus::ENABLED, 'view_through_lookback_window_days' => 15, 'value_settings' => new ValueSettings( [ 'default_value' => 23.41, 'always_use_default_value' => true ] ) ] ); // Creates a conversion action operation. $conversionActionOperation = new ConversionActionOperation(); $conversionActionOperation->setCreate($conversionAction); // Issues a mutate request to add the conversion action. $conversionActionServiceClient = $googleAdsClient->getConversionActionServiceClient(); $response = $conversionActionServiceClient->mutateConversionActions( MutateConversionActionsRequest::build($customerId, [$conversionActionOperation]) ); printf("Added %d conversion actions:%s", $response->getResults()->count(), PHP_EOL); foreach ($response->getResults() as $addedConversionAction) { /** * @var ConversionAction $addedConversionAction */ printf( "New conversion action added with resource name: '%s'%s", $addedConversionAction->getResourceName(), PHP_EOL ); } }
Python
def main(client: GoogleAdsClient, customer_id: str) -> None: conversion_action_service: ConversionActionServiceClient = ( client.get_service("ConversionActionService") ) # Create the operation. conversion_action_operation: ConversionActionOperation = client.get_type( "ConversionActionOperation" ) # Create conversion action. conversion_action: ConversionAction = conversion_action_operation.create # Note that conversion action names must be unique. If a conversion action # already exists with the specified conversion_action_name, the create # operation will fail with a ConversionActionError.DUPLICATE_NAME error. conversion_action.name = f"Earth to Mars Cruises Conversion {uuid.uuid4()}" conversion_action.type_ = ( client.enums.ConversionActionTypeEnum.UPLOAD_CLICKS ) conversion_action.category = ( client.enums.ConversionActionCategoryEnum.DEFAULT ) conversion_action.status = client.enums.ConversionActionStatusEnum.ENABLED conversion_action.view_through_lookback_window_days = 15 # Create a value settings object. value_settings: ConversionAction.ValueSettings = ( conversion_action.value_settings ) value_settings.default_value = 15.0 value_settings.always_use_default_value = True # Add the conversion action. conversion_action_response: MutateConversionActionsResponse = ( conversion_action_service.mutate_conversion_actions( customer_id=customer_id, operations=[conversion_action_operation], ) ) print( "Created conversion action " f'"{conversion_action_response.results[0].resource_name}".' )
Ruby
def add_conversion_action(customer_id) # GoogleAdsClient will read a config file from # ENV['HOME']/google_ads_config.rb when called without parameters client = Google::Ads::GoogleAds::GoogleAdsClient.new # Add a conversion action. conversion_action = client.resource.conversion_action do |ca| ca.name = "Earth to Mars Cruises Conversion #{(Time.new.to_f * 100).to_i}" ca.type = :UPLOAD_CLICKS ca.category = :DEFAULT ca.status = :ENABLED ca.view_through_lookback_window_days = 15 # Create a value settings object. ca.value_settings = client.resource.value_settings do |vs| vs.default_value = 15 vs.always_use_default_value = true end end # Create the operation. conversion_action_operation = client.operation.create_resource.conversion_action(conversion_action) # Add the ad group ad. response = client.service.conversion_action.mutate_conversion_actions( customer_id: customer_id, operations: [conversion_action_operation], ) puts "New conversion action with resource name = #{response.results.first.resource_name}." end
Perl
sub add_conversion_action { my ($api_client, $customer_id) = @_; # Note that conversion action names must be unique. # If a conversion action already exists with the specified conversion_action_name, # the create operation fails with error ConversionActionError.DUPLICATE_NAME. my $conversion_action_name = "Earth to Mars Cruises Conversion #" . uniqid(); # Create a conversion action. my $conversion_action = Google::Ads::GoogleAds::V25::Resources::ConversionAction->new({ name => $conversion_action_name, category => DEFAULT, type => WEBPAGE, status => ENABLED, viewThroughLookbackWindowDays => 15, valueSettings => Google::Ads::GoogleAds::V25::Resources::ValueSettings->new({ defaultValue => 23.41, alwaysUseDefaultValue => "true" })}); # Create a conversion action operation. my $conversion_action_operation = Google::Ads::GoogleAds::V25::Services::ConversionActionService::ConversionActionOperation ->new({create => $conversion_action}); # Add the conversion action. my $conversion_actions_response = $api_client->ConversionActionService()->mutate({ customerId => $customer_id, operations => [$conversion_action_operation]}); printf "New conversion action added with resource name: '%s'.\n", $conversion_actions_response->{results}[0]{resourceName}; return 1; }
curl
คุณสามารถดูตัวอย่างนี้ได้ในโฟลเดอร์การรีมาร์เก็ตติ้งของไลบรารีของไคลเอ็นต์ และในคอลเล็กชันตัวอย่างโค้ด: ตัวอย่างโค้ดเพิ่มการกระทำที่ถือเป็น Conversion ตัวอย่าง
การตรวจสอบความถูกต้อง
Google Ads และ Google Ads API รองรับการกระทำที่ถือเป็น Conversion ที่หลากหลาย ดังนั้นกฎการตรวจสอบความถูกต้องบางอย่างจึงแตกต่างกันไปตาม type
ของการกระทำ
ข้อผิดพลาดที่พบบ่อยที่สุดเมื่อสร้างการกระทำที่ถือเป็น Conversion คือ
DUPLICATE_NAME
ตรวจสอบว่าคุณใช้ชื่อที่ไม่ซ้ำกันสําหรับการกระทำที่ถือเป็น Conversion แต่ละรายการ
เคล็ดลับบางประการในการตั้งค่าฟิลด์ ConversionAction มีดังนี้
- ฟิลด์ enum ทั้งหมด
- การพยายามตั้งค่าฟิลด์ enum เป็น
UNKNOWNจะทําให้เกิดข้อผิดพลาดRequestError.INVALID_ENUM_VALUE app_id- แอตทริบิวต์
app_idเปลี่ยนแปลงไม่ได้และตั้งค่าได้เมื่อสร้าง Conversion ของแอปใหม่เท่านั้น attribution_model_settings- การตั้งค่านี้เป็นตัวเลือกที่เลิกใช้แล้ว
จะทําให้เกิด
ข้อผิดพลาด
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELSGoogle Ads รองรับเฉพาะGOOGLE_ADS_LAST_CLICKและGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVEN click_through_lookback_window_daysการตั้งค่าแอตทริบิวต์นี้เป็นค่าที่อยู่นอกช่วงที่อนุญาตจะทําให้เกิดข้อผิดพลาด
RangeError.TOO_LOWหรือRangeError.TOO_HIGHแอตทริบิวต์นี้ต้องอยู่ในช่วง
[1,60]สําหรับการกระทำที่ถือเป็น ConversionAD_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_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