คุณต้องเปิดใช้เครื่องมือวัด 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 ใหม่
- แคมเปญที่กำหนดเป้าหมายไปยังการกระทำที่ถือเป็น 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 ของ 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_VALUEerror. 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