برای ثبت تبدیلها، باید ردگیری تبدیل را در حساب تبدیل 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; }
curl
مطمئن شوید type
روی مقدار صحیح
ConversionActionType
تنظیم شده باشد. برای راهنمایی بیشتر درباره ایجاد کنشهای تبدیل در Google Ads API، به
ایجاد
کنشهای تبدیل مراجعه کنید.
بازیابی کنش تبدیل موجود
با صدور پرسمان زیر میتوانید جزئیات کنش تبدیل موجود را بازیابی کنید. مطمئن شوید شناسه مشتری در درخواست روی مشتری تبدیل 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; }
curl
میتوانید این نمونه را در پوشه «بازاریابی مجدد» کتابخانه مشتریتان و در مجموعه نمونههای کد ببینید: نمونه کد «افزودن کنش تبدیل».
مرجع فیلد 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
- تلاش برای تنظیم هر فیلد شمارشی روی
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میشود.