برای ثبت تبدیلها، باید ردیابی تبدیل را در حساب تبدیل Google Ads خود فعال کنید. این راهنما جزئیاتی درباره نحوه تأیید اینکه آیا ردیابی تبدیل فعال است یا نه، فعال کردن آن درصورت فعال نبودن، و بازیابی اطلاعات درباره کنشهای تبدیل موجود ارائه میدهد.
بیشتر کنشهای تبدیل برای ردیابی به مراحل اضافی ازطرف شما نیز نیاز دارند. برای اطلاعات بیشتر درباره انواع مختلف کنش تبدیل و الزامات آنها، به دستههای کنش تبدیل و ایجاد کنشهای تبدیل مراجعه کنید.
آماده شدن برای ارائه رضایت
هنگام وارد کردن تبدیلها یا دادههای کاربر، باید تأیید کنید که اجازه همرسانی دادههای تبدیل با Google را دارید. این کار را میتوانید به یکی از دو روش زیر انجام دهید:
- تنظیمات رضایت پیشفرض سطح حساب را پیکربندی کنید. در رابط کاربری Google Ads، روی ابزارها > مدیر داده > تنظیمات رضایت > تنظیمات رضایت پیشفرض کلیک کنید.
- فیلد رضایت را در هر بار داده کاربر یا تبدیل واردشده تنظیم کنید (برای مثال،
ClickConversion.consent،CallConversion.consent، یاUserData.consent).
وبسایتتان را برای ردیابی تبدیلها راهاندازی کنید
اگر تبدیلهای وبسایت را ردیابی میکنید یا تبدیلهای بهبودیافته را برای مشتریان بالقوه پیادهسازی میکنید، ابتدا برچسبگذاری وبسایتتان را پیکربندی کنید. مراحل موجود در پیکربندی برچسب Google برای تبدیلهای بهبودیافته برای مشتریان بالقوه را دنبال کنید، یا با دنبال کردن پیکربندی Google Tag Manager برای تبدیلهای بهبودیافته برای مشتریان بالقوه از Google Tag Manager استفاده کنید.
فعال کردن ردیابی تبدیل در حساب تبدیل Google Ads
برای درستیسنجی راهاندازی «ردیابی تبدیل» حسابتان و ایجاد یا بازیابی کنشهای تبدیل، این مراحل را دنبال کنید.
مراحل فعال کردن ردیابی تبدیل
بازیابی اطلاعات مربوط به راهاندازی ردیابی تبدیل
میتوانید راهاندازی «ردگیری تبدیل» حسابتان را بررسی کنید و با پُرسمان کردن منبع 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 است که
تبدیلها را برای این مشتری ایجاد و مدیریت میکند. برای مشتریانی که از
ردگیری تبدیل میانحسابی
استفاده میکنند، این شناسه
حساب مدیر است. شناسه مشتری تبدیل Google Ads باید بهعنوان
customer_id در درخواستهای Google Ads API برای ایجاد و مدیریت تبدیلها ارائه شود. توجه داشته باشید که
این فیلد حتی اگر پایش تبدیل فعال نباشد پر میشود.
فیلد
conversion_tracking_status
نشان میدهد که آیا «ردیابی تبدیل» فعال است و آیا حساب
از «ردیابی تبدیل میانحسابی» استفاده میکند یا نه.
ایجاد کنش تبدیل در مشتری تبدیل Google Ads
اگر مقدار conversion_tracking_status NOT_CONVERSION_TRACKED باشد،
پیگیری تبدیل برای حساب فعال نیست. پایش تبدیل را با ایجاد حداقل یک ConversionAction در حساب تبدیل Google Ads فعال کنید، مانند مثال زیر. یا میتوانید با دنبال کردن دستورالعملهای موجود در
مقاله «مرکز راهنمایی Google Ads» درباره
راهاندازی پایش تبدیل برای نوع تبدیلی که میخواهید فعال کنید،
کنش تبدیلی را در «میانای کاربری» ایجاد کنید.
توجه داشته باشید که تبدیلهای بهبودیافته وقتی ازطریق Google Ads API ارسال میشوند بهطور خودکار فعال میشوند، اما میتوان آنها را ازطریق واسط کاربری Google Ads غیرفعال کرد.
نمونه کد
جاوا
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
پرل
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; }
فر کردن
مطمئن شوید type
روی مقدار
ConversionActionType
صحیح تنظیم شده باشد. برای راهنمایی بیشتر درباره ایجاد کنشهای تبدیل در «میانای برنامهسازی کاربردی Google Ads»،
ایجاد
کنشهای تبدیل را ببینید.
بازیابی کنش تبدیل موجود
با صدور پرسمان زیر میتوانید جزئیات کنش تبدیل موجود را بازیابی کنید. مطمئن شوید شناسه مشتری در درخواست روی مشتری تبدیل Google Ads که قبلاً شناسایی کردهاید تنظیم شده باشد و نوع کنش تبدیل روی مقدار صحیح 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'
ردگیری تبدیل میانحسابی
ردگیری تبدیل میانحسابی به حسابهای Google Ads اجازه میدهد تبدیلها را ازطرف حسابهای دیگر وارد کنند، که ممکن است آگهیهایی را که تبدیل ایجاد کردهاند ترافیکدهی کرده باشند. این کار میتواند به سادهسازی ادغام شما کمک کند، زیرا به شما اجازه میدهد حسابهایی را که درخواستهای وارد کردن را ایجاد میکنند، ادغام کنید.
فعال کردن ردگیری تبدیل میانحسابی در Google Ads API
میتوانید از Google Ads API برای انتخاب ردگیری تبدیل متقاطع هنگام ایجاد یا بهروزرسانی حسابهای مشتری استفاده کنید.
در منبع Customer، فیلد
conversion_tracking_setting.google_ads_conversion_customer
را روی نام منبع حساب مدیری که باید
کنشهای تبدیل را ازطرف حساب مشتری مدیریت کند تنظیم کنید.
درخواستهایی که مشتری تبدیل حساب مشتری را تغییر میدهند باید توسط
حساب مدیری که مشتری تبدیل جدید برای مشتری میشود ارسال شوند.
این کار را با تنظیم login-customer-id روی شناسه حساب مدیر انجام دهید.
وقتی با پیگیری تبدیل بینحسابی موافقت میکنید، یا مدیر پیگیری تبدیل را برای حساب مشتری موجود تغییر میدهید، همان هشدارهایی اعمال میشود که اگر این تغییر را در واسط کاربر انجام میدادید. بهطور دقیق:
- حساب مشتری قوانین ارزش تبدیل پیشفرض و اهداف چرخه حیات مشتری پیشفرض مدیر ردیابی تبدیل جدیدش را اتخاذ خواهد کرد.
- پویشهایی که کنش تبدیل خاصی را هدفیابی میکنند به استفاده از هدفهای تبدیل پیشفرض حساب مدیر تبدیل تغییر خواهند کرد. اگر همچنان کنش تبدیل خاصی را هدفیابی کنید، این کار میتواند منجر به عملکرد ناسازگار شود، زیرا حساب مدیر ممکن است هدفهای یکسانی با حساب مشتری نداشته باشد. مطمئن شوید که پویشهایتان برای اهداف درست بهینهسازی شدهاند.
- اگر حسابی به بیشاز یک حساب مدیر تعلق داشته باشد، فقط میتواند از کنشهای تبدیل یک مدیر استفاده کند. اگر حساب ردیابی تبدیلی مشخص نشده باشد، حساب بهطور پیشفرض از خودش بهعنوان حساب ردیابی تبدیل استفاده میکند.
وارد کردن تبدیلها در سراسر حسابها
با فعال کردن ردگیری میانحسابی، حسابهای مشتری و مدیر میتوانند تبدیلها را ازطرف حساب ارائهدهنده وارد کنند. این کار باعث میشود بتوانید منطق وارد کردن را ساده کنید تا لازم نباشد حساب ارائهدهنده را برای هر تبدیل در زمان وارد کردن تعیین کنید، بلکه میتوانید فقط یک حساب را از درخت حساب خود برای وارد کردن همه تبدیلها انتخاب کنید.
برای بارگذاری موفقیتآمیز تبدیل، حساب بارگذاریکننده باید به کنش تبدیل دسترسی داشته باشد. در سلسلهمراتب ردیابی بینحسابی، حساب بارگذاریکننده اگر والد (مدیر) یا نواده مالک کنش تبدیل در درخت حساب باشد، به کنش دسترسی دارد.
نمودار زیر ساختار مجوز را برای وارد کردن تبدیلها نشان میدهد. در اینجا C1 حساب مشتری است که آگهی تولیدکننده تبدیل را ارائه کرده است، و M2 مالک کنش تبدیل و والد ردگیری تبدیل C1 است. حسابهایی که با رنگ سبز مشخص شدهاند مجازند تبدیلها را ازطرف C1 وارد کنند، اما حسابهایی که با رنگ قرمز مشخص شدهاند مجاز نیستند.

ایجاد کنشهای تبدیل
برای اندازهگیری تبدیلها، ConversionAction را برای
type کنش تبدیلی که میخواهید ردیابی کنید راهاندازی کنید.
برای مثال، خرید آنلاین و تماس تلفنی به کنشهای تبدیل متفاوتی نیاز دارند.
بهترین راه برای راهاندازی کنشهای تبدیل جدید در میانای برنامهسازی کاربردی، استفاده از
نمونه کد «افزودن کنش تبدیل» است. این نمونه همه کارهای اصالتسنجی پسزمینه را برای شما انجام میدهد و شما را در ایجاد ConversionAction راهنمایی میکند.
بیشتر کنشهای تبدیل برای پیگیری آنها به مراحل اضافی ازطرف شما نیاز دارند. برای مثال، برای پیگیری تبدیلها در وبسایتتان، باید تکهکدی به نام برچسب را به صفحه تبدیل در وبسایتتان اضافه کنید. برای الزامات دقیق انواع دیگر کنشهای تبدیل، به مقاله «مرکز راهنمایی Google Ads» درباره انواع تبدیل مراجعه کنید.
اگر از ردگیری تبدیل میانحسابی استفاده میکنید،
ConversionActionService کنشهای تبدیل زیر را برمیگرداند:
- همه کنشهای تبدیلی که حساب مدیر استفادهشده توسط حساب برای ردیابی تبدیل میانحسابی تعریف کرده است
- همه کنشهای تبدیل که مشتری برای آنها آمار جمعآوری کرده است، ازجمله کنشهای تعریفشده توسط سیستم و کنشهای متعلق به مدیر، حتی اگر آن مدیر بعداً لغو پیوند کند
- همه کنشهایی که مشتری در حساب خودش تعریف کرده است
- تبدیلهای Analytics ایجادشده در داراییهای Google Analytics پیوندشده.
این شامل کنشهای تبدیل Analytics است که به Google Ads وارد نشدهاند،
و وضعیت
HIDDENدارند.
نمونه کد
مثال کد زیر شما را در فرایند ایجاد کنش تبدیل جدید راهنمایی میکند. بهطور خاص، کنش تبدیلی ایجاد میکند که
type آن روی UPLOAD_CLICKS تنظیم شده است.
همچنین category را روی
DEFAULT تنظیم میکند.
تنظیمات پیشفرض زیر اعمال میشود:
Google Ads API فیلد
primary_for_goalرا بهطور خودکار تنظیم میکند، اما میتوانید این فیلد را بهطور صریح تنظیم کنید تا کنترل کنید کنش تبدیلی چگونه بر گزارشدهی و پیشنهاد قیمت در حسابتان وقتی با هدفهای تبدیل شما ترکیب میشود تأثیر میگذارد.Google Ads API بهطور خودکار
counting_typeرا رویMANY_PER_CLICKتنظیم میکند. برای جزئیات بیشتر، درباره گزینههای شمارش تبدیل را ببینید.Google Ads API مدل اسنادی را با تنظیم فیلد
attribution_model_settingsروی مقدارGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVENAttributionModelروی دادهمحور تنظیم میکند. برای کسب اطلاعات بیشتر درباره مدلهای اسنادی، درباره مدلهای اسنادی را ببینید.
جاوا
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
پرل
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; }
فر کردن
میتوانید این نمونه را در پوشه «بازاریابی مجدد» کتابخانه مشتریتان و در مجموعه نمونههای کد ببینید: نمونه کد «افزودن کنش تبدیل».
مرجع فیلد ConversionActionService.MutateConversionActions
از MutateConversionActions در
ConversionActionService برای ایجاد، بهروزرسانی، یا
برداشتن کنشهای تبدیل تحت مشتری تبدیل Google Ads استفاده کنید:
POST https://googleads.googleapis.com/v26/customers/{customer_id}/conversionActions:mutate
جدول زیر فیلدهای درخواست و عملیات سطح بالا را در
MutateConversionActionsRequest فهرست میکند:
| فیلد | الزام | شرح |
|---|---|---|
customer_id |
الزامی | شناسه ۱۰ رقمی (string) مشتری تبدیل 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}) کنش تبدیل برای برداشتن. |
هنگام پیکربندی ConversionAction در
operations[].create یا operations[].update، الزامات فیلد
و محدودیتهای تغییرپذیری زیر را رعایت کنید (برای قوانین خطای خاص نوع، به اعتبارسنجیها مراجعه کنید):
ConversionAction فیلد |
الزام و تغییرپذیری | شرح |
|---|---|---|
name |
الزامی (تغییرپذیر) | نام نمایشی غیرتکراری (string) در حساب مشتری تبدیل. |
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 کنترل اینکه آیا کنش در هدفهای تبدیل پویش و مشتری استاندارد پیشنهاد قیمتپذیر است یا نه (توجه: 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 برای کنشهای تبدیل برنامه قابل تنظیم است. |
include_in_conversions_metric |
فقط خواندنی در جهشها | نمیتوان مستقیماً اصلاح کرد؛ بهجای آن primary_for_goal را پیکربندی کنید. |
tag_snippets[] |
OUTPUT_ONLY |
تکهکدهای ردگیری وبسایت (TagSnippet) در WEBPAGE کنش تبدیل پر شده است. |
ساختار درخواست و پاسخ REST
برای ایجاد یا بهروزرسانی ConversionAction ازطریق REST،
درخواست POST را به
ConversionActionService.MutateConversionActions ارسال کنید.
هنگام بهروزرسانی کنش تبدیل موجود، 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"
}
]
}
بررسی تنظیمات کنش تبدیل و تکهکدهای برچسب با GAQL
علاوهبر پُرسمان پایهای که در مراحل فعال کردن ردگیری تبدیل نشان داده شده است، میتوانید بااستفاده از GoogleAdsService.SearchStream، منبع conversion_action را پُرسمان کنید تا 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 از انواع مختلفی از کنشهای تبدیل پشتیبانی میکنند، بنابراین برخیاز قوانین
درستیسنجی براساس type کنش متفاوت است.
رایجترین خطا هنگام ایجاد کنش تبدیل
DUPLICATE_NAME است. مطمئن شوید که برای هر کنش تبدیل از نام یکتایی استفاده میکنید.
نکاتی درباره تنظیم فیلدهای ConversionAction:
- همه فیلدهای enum
- تلاش برای تنظیم هر فیلد enum روی
UNKNOWNمنجر بهRequestError.INVALID_ENUM_VALUEخطا میشود. app_id- مشخصه
app_idتغییرناپذیر است و فقط هنگام ایجاد تبدیل برنامه جدید میتواند تنظیم شود. attribution_model_settings- تنظیم این مورد روی گزینه منسوخشده منجر به
خطای
CANNOT_SET_RULE_BASED_ATTRIBUTION_MODELSمیشود. Google Ads فقط ازGOOGLE_ADS_LAST_CLICKوGOOGLE_SEARCH_ATTRIBUTION_DATA_DRIVENپشتیبانی میکند. click_through_lookback_window_daysتنظیم این مشخصه روی مقداری خارج از محدوده مجاز منجر به خطای
RangeError.TOO_LOWیاRangeError.TOO_HIGHمیشود.این مشخصه باید بین ۱ تا ۶۰ روز برای کنش تبدیل
AD_CALLیاWEBSITE_CALLباشد. برای اکثر کنشهای تبدیل دیگر، محدوده مجاز ۱ تا ۹۰ روز است.include_in_conversions_metricتنظیم این مقدار در عملیات
createیاupdateبا خطایFieldError.IMMUTABLE_FIELDناموفق میشود. بهجای آن،primary_for_goalرا همانطور که در راهنمای اهداف تبدیل توضیح داده شده است تنظیم کنید.phone_call_duration_secondsتلاش برای تنظیم این مشخصه در کنش تبدیلی که برای تماسها نیست منجر به خطای
FieldError.VALUE_MUST_BE_UNSETمیشود.typeمشخصه
typeتغییرناپذیر است و فقط هنگام ایجاد تبدیل جدید میتواند تنظیم شود.بهروزرسانی کنش تبدیل با
typeبرابر باUNKNOWNمنجر به خطایMutateError.MUTATE_NOT_ALLOWEDمیشود.value_settingsvalue_settingsبرای کنش تبدیلWEBSITE_CALLیاAD_CALLبایدalways_use_default_valueرویtrueتنظیم شده باشد. مشخص کردن مقدارfalseهنگام ایجاد یا بهروزرسانی این مقدار منجر به خطایINVALID_VALUEمیشود.view_through_lookback_window_daysاگر این مشخصه را روی مقداری خارج از محدوده مجاز تنظیم کنید، خطای
RangeError.TOO_LOWیاRangeError.TOO_HIGHدریافت خواهید کرد. برای اکثر کنشهای تبدیل، محدوده مجاز ۱ تا ۳۰ روز است.این مشخصه را نمیتوانید در
AD_CALLیاWEBSITE_CALLکنش تبدیل تنظیم کنید. مشخص کردن مقدار منجر به خطایVALUE_MUST_BE_UNSETمیشود.