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