در Google Ads، تبدیل یک کنش ارزشمند کاربر است (مانند خرید محصول، ارسال فرم مشتری بالقوه، تماس با کسبوکار شما، یا بازدید از فروشگاه فیزیکی) که پساز تعامل با آگهی انجام میشود. ردگیری تبدیل این تعاملهای مشتری را میسنجد تا بتوانید عملکرد پویش را ارزیابی کنید و پیشنهاد قیمت خودکارسازیشده را بهینهسازی کنید.
Google Ads API به شما امکان میدهد کنشهای تبدیل را بهصورت برنامهنویسیشده پیکربندی کنید، رویدادهای تبدیل آفلاین را وارد کنید، تبدیلهای ثبتشده را بهبود دهید یا اصلاح کنید، کنشها را در اهداف پیشنهاد قیمت و چرخه حیات گروهبندی کنید، و عیبیابیهای بارگذاری را پایش کنید.
انتخاب گردش کار تبدیل
از جدول زیر برای شناسایی ConversionActionType،
سرویس API، و راهنمای پیادهسازی برای مورد استفادهتان استفاده کنید:
| وظیفه | نوع کنش تبدیل | سرویس یا منبع API | راهنمای پیادهسازی |
|---|---|---|---|
| درستیسنجی راهاندازی حساب و ایجاد کنش تبدیل |
UPLOAD_CLICKS، WEBPAGE،
UPLOAD_CALLS، AD_CALL،
WEBSITE_CALL، GOOGLE_PLAY_،
GOOGLE_PLAY_
|
Customer
(ConversionTracking)،
ConversionAction
|
شروع به کار و دستههای کنش تبدیل |
| وارد کردن تبدیلهای کلیک آفلاین یا تبدیلهای بهبودیافته برای مشتریان بالقوه | UPLOAD_CLICKS |
ConversionUploadService.
(یا
Data Manager API
برای ادغامهای جدید)
|
وارد کردن تبدیلهای کلیک آفلاین |
| بهبود تبدیلهای آنلاین (تبدیلهای بهبودیافته برای وب) | WEBPAGE |
ConversionAdjustment
(ENHANCEMENT)
|
وارد کردن تبدیلهای کلیک آنلاین |
| وارد کردن تبدیلهای تماس تلفنی | UPLOAD_CALLS |
ConversionUploadService.
|
وارد کردن تبدیلهای تماس |
| وارد کردن تراکنشهای فروش فروشگاه |
STORE_SALES، STORE_SALES_
|
OfflineUserData
(یا
Data Manager API)
|
وارد کردن تبدیلهای فروش فروشگاهی |
| پس گرفتن یا بازبیان کردن تبدیلهای ثبتشده |
UPLOAD_CLICKS، WEBPAGE،
SALESFORCE (منسوخشده)
|
ConversionAdjustment
(RETRACTION، RESTATEMENT)
|
تنظیم کردن تبدیلها پساز وارد کردن |
| پیوست کردن فراداده برچسب سفارشی به تبدیلها |
UPLOAD_CLICKS، UPLOAD_CALLS،
WEBPAGE
|
ConversionCustom
|
متغیرهای تبدیل سفارشی |
| پیکربندی اهداف پیشنهاد قیمت، اهداف چرخه حیات، و قوانین مقدار | اهداف حساب، پویش، و چرخه حیات |
CustomerConversion،
CampaignConversion،
CustomConversion،
ConversionGoal،
GoalService،
CampaignGoal،
ConversionValue
|
اهداف تبدیل، اهداف چرخه حیات، و قوانین مقدار تبدیل |
| پایش سلامت وارد کردن و عیبیابی خطا |
UPLOAD_CLICKS، WEBPAGE،
UPLOAD_CALLS
|
offline_conversion_upload_،
offline_conversion_upload_
|
نظارت بر عیبیابی دادههای آفلاین |
| سنجههای تبدیل پُرسمان و عیبیابی خطاها | همه انواع تبدیل |
GoogleAdsService.
(customer، campaign،
conversion_action)
|
واکشی آمار تبدیل و عیبیابی وارد کردن تبدیل |
چرخه حیات تبدیل سرتاسر
یکپارچهسازی کامل مدیریت تبدیل در Google Ads API از چهار مرحله پیروی میکند:
- راهاندازی حساب را درستیسنجی کنید و کنشهای تبدیل ایجاد کنید:
Customer.conversion_tracking_settingرا پُرسمان کنید تا حساب تبدیل مؤثر را تأیید کنید (google_ads_conversion_customer)، درستیسنجی کنید که ردگیری تبدیل فعال است، رضایت کاربر را پیکربندی کنید، وConversionActionرا باConversionActionTypeهدف وConversionActionCategoryایجاد کنید. - وارد کردن رویدادهای تبدیل: تبدیلهای کلیک یا تماس آفلاین را بااستفاده از
ConversionUploadServiceباpartial_failureتنظیمشده رویtrueجاریسازی کنید، تبدیلهای وبسایت را باENHANCEMENTتعدیلها بااستفاده ازConversionAdjustmentUploadServiceتکمیل کنید، یا فروشهای فروشگاه را بهصورت دستهای بااستفاده ازOfflineUserDataJobServiceبارگذاری کنید. - تنظیم و بهینهسازی تبدیلها: تبدیلهای ثبتشده را بااستفاده از
ConversionAdjustmentUploadServiceپس بگیرید یا دوباره بیان کنید، فرادادهConversionCustomVariableرا پیوست کنید، قوانین مقدار تبدیل را اعمال کنید، و کنشها را در اهداف تبدیل و اهداف چرخه حیات سازماندهی کنید تا بهینهسازی پیشنهاد قیمت را کنترل کنید. - نظارت بر تشخیص خرابی و گزارش عملکرد: پرسمان
offline_conversion_upload_client_summaryوoffline_conversion_upload_conversion_action_summaryبرای بررسی وضعیت پردازش بارگذاری و هشدارهای خرابی جزئی. منابعcustomerیاcampaignرا پُرسمان کنید (اختیاراً بخشبندیشده براساسsegments.conversion_action) تا سنجههایmetrics.conversionsوmetrics.all_conversionsرا مقایسه کنید، یا منبعconversion_actionرا پُرسمان کنید تاmetrics.all_conversionsو مُهرهای زمان آخرین تبدیل را بررسی کنید.
شروع سریع: تأیید راهاندازی، ایجاد کنش، و بررسی سلامت
مثالهای زیر سه پُرسمان و جهش رایج را نشان میدهند که برای مقداردهی اولیه و نظارت بر ردگیری تبدیل لازم است.
۱. درستیسنجی تنظیمات ردگیری تبدیل با GAQL
قبلاز ایجاد ConversionAction یا بارگذاری رویدادها،
منبع customer را بااستفاده از
GoogleAdsService.SearchStream پُرسمان کنید تا مشخص شود کدام حساب
تبدیلها را مدیریت میکند (google_ads_conversion_customer)، آیا شرایط دادههای مشتری
پذیرفته شده است، و آیا تبدیلهای بهبودیافته سطح حساب روشن است یا نه
(EnhancedConversionsConfig):
SELECT
customer.conversion_tracking_setting.conversion_tracking_id,
customer.conversion_tracking_setting.conversion_tracking_status,
customer.conversion_tracking_setting.cross_account_conversion_tracking_id,
customer.conversion_tracking_setting.google_ads_conversion_customer,
customer.conversion_tracking_setting.accepted_customer_data_terms,
customer.conversion_tracking_setting.enablement_setting,
customer.conversion_tracking_setting.effective_enablement_setting
FROM customer
{customer_id} را از نام منبع customers/{customer_id} که در google_ads_conversion_customer برگردانده شده است استخراج کنید و همه درخواستهای ConversionActionService و ConversionUploadService بعدی را برای آن شناسه مشتری صادر کنید. برای جزئیات کامل راهاندازی و سلسلهمراتب بینحسابی، به شروع به کار مراجعه کنید.
۲. ایجاد کنش تبدیلبهمشتری
از ConversionActionService.MutateConversionActions برای
ایجاد ConversionAction استفاده کنید. نمونه زیر یک کنش تبدیل UPLOAD_CLICKS با تنظیمات مقدار سفارشی و بازنگری ایجاد میکند:
جاوا
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
درخواست REST
برای ایجاد همان ConversionAction ازطریق REST،
درخواست POST را به
ConversionActionService.MutateConversionActions ارسال کنید:
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
}
}
}
]
}
وقتی کنش تبدیل شما ENABLED شد، رویدادهای تبدیل یا بهبودها را بااستفاده از گردش کار برای منبع تبدیل خود وارد کنید (به وارد کردن رویدادهای تبدیل مراجعه کنید).
۳. پایش وضعیت بارگذاری تبدیل آفلاین
پساز بارگذاری تبدیلهای کلیک، تبدیلهای تماس، یا اصلاحات تبدیل،
offline_conversion_upload_client_summary را پُرسمان کنید تا
وضعیت کلی کار، نرخهای موفقیت و معلق، و تفکیک خطاها را در
بارگذاریهای اخیرتان بررسی کنید:
SELECT
offline_conversion_upload_client_summary.client,
offline_conversion_upload_client_summary.status,
offline_conversion_upload_client_summary.total_event_count,
offline_conversion_upload_client_summary.successful_event_count,
offline_conversion_upload_client_summary.success_rate,
offline_conversion_upload_client_summary.pending_event_count,
offline_conversion_upload_client_summary.pending_rate,
offline_conversion_upload_client_summary.last_upload_date_time,
offline_conversion_upload_client_summary.alerts
FROM offline_conversion_upload_client_summary
برای تشخیص خرابی در سطح کنش تبدیل،
offline_conversion_upload_conversion_action_summary
را پُرسمان کنید (به پایش تشخیص خرابی دادههای آفلاین مراجعه کنید)، و برای حلوفصل کدهای خطای خاص به عیبیابی وارد کردن تبدیل مراجعه کنید.
فهرست راهنما براساس مرحله چرخه حیات
مجموعه کامل راهنماهای مدیریت تبدیل را که براساس مرحله چرخه حیات سازماندهی شدهاند کاوش کنید:
۱. راهاندازی حساب و کنشهای تبدیل
- دستههای کنش تبدیل: منبع تبدیل مناسب را انتخاب کنید—وبسایت (
WEBPAGE)، تماس تلفنی (UPLOAD_CALLS،AD_CALL،WEBSITE_CALL)، برنامه تلفن همراه (GOOGLE_PLAY_DOWNLOAD،GOOGLE_PLAY_IN_APP_PURCHASE، Firebase،SKAdNetwork)، Google Analytics 4 (GOOGLE_ANALYTICS_4_CUSTOM،GOOGLE_ANALYTICS_4_PURCHASE)، آفلاین (UPLOAD_CLICKS)، یا فروشگاه فیزیکی (STORE_SALES)—و آن را بهConversionActionTypeو گردش کار API مربوطه نگاشت کنید. - شروع به کار: رضایت کاربر را پیکربندی کنید،
ConversionTrackingSettingرا درستیسنجی کنید، ردگیری تبدیل میانحسابی را راهاندازی کنید، و بااستفاده از کتابخانههای کارخواه یا REST، کنشهای تبدیل ایجاد کنید.
۲. وارد کردن رویدادهای تبدیل
- وارد کردن تبدیلهای کلیک آفلاین: تبدیلهای آفلاین (
GCLID،GBRAID،WBRAID) و تبدیلهای بهبودیافته برای مشتریان بالقوه (ایمیل و شماره تلفن درهمسازیشده شخص اول) را بارگذاری کنید تا تراکنشهای دنیای واقعی را بسنجید. - وارد کردن تبدیلهای کلیک آنلاین: برچسبهای تبدیل وبسایت را با دادههای کاربر شخص اول (مانند نشانی ایمیل، نام، نشانی خانه، و شماره تلفن) بااستفاده از تبدیلهای بهبودیافته برای وب (
ENHANCEMENTاصلاحات) تکمیل کنید. - وارد کردن تبدیلهای تماس: رویدادهای تبدیل را برای تماسهای تلفنی که ازطریق شمارههای بازارسال Google یا سیستم ردیابی تماس خودتان ردیابی میشوند بارگذاری کنید.
- وارد کردن تبدیلهای فروش فروشگاهی: بارگذاری دستهای
دادههای تراکنش درونفروشگاهی بااستفاده از
OfflineUserDataJobService.
۳. تنظیم و بهینهسازی تبدیلها
- اصلاح تبدیلها پساز وارد کردن: پس گرفتن سفارشهای لغوشده (
RETRACTION) یا بازگو کردن مقادیر تبدیل اصلاحشده (RESTATEMENT) برای کنشهای تبدیلUPLOAD_CLICKS،WEBPAGE، وSALESFORCE(منسوخشده). - مدیریت قوانین مقدار تبدیل: مقادیر تبدیل را در زمان مزایده بهطور پویا براساس مخاطب، دستگاه، مکان جغرافیایی، یا معیارهای برنامه سفر اصلاح کنید.
- متغیرهای تبدیل سفارشی: برچسبهای مقدار کلید سفارشی (
ConversionCustomVariable) را برای تبدیلهای کلیک، تماس، و وب برای گزارشدهی بخشبندیشده تعریف و پیوست کنید. - اهداف تبدیل: کنشهای تبدیل را براساس فیلدهای
category(ConversionActionCategory) وorigin(ConversionOrigin) گروهبندی کنید و اهداف مشتری، اهداف کمپین و سفارشی، و اهداف چرخه حیات مشتری (جذب مشتری جدید، حفظ مشتری، و حفظ وفاداری) را پیکربندی کنید. همچنین میتوانیدOPTIMIZE_FOR_NEW_CUSTOMERSتوصیههای مربوط به مقادیر تبدیل افزایشی مشتری جدید را بازیابی و اعمال کنید.
۴. پایش، گزارش، و عیبیابی
- نظارت بر عیبیابی دادههای آفلاین: عیبیابی دادههای آفلاین را در سطح حساب (
offline_conversion_upload_client_summary) و سطح کنش تبدیل (offline_conversion_upload_conversion_action_summary) جستجو کنید تا نرخ موفقیت، رویدادهای معلق، و هشدارهای بارگذاری را پیگیری کنید. - واکشی آمار تبدیل: سنجههای عملکرد تبدیل را در GAQL پُرسمان کنید و ستونهای میانای کاربری Google Ads را به فیلدهای Google Ads API نگاشت کنید.
- عیبیابی وارد کردن تبدیل: تشخیص و حل کدهای رایج
ConversionUploadErrorوConversionAdjustmentUploadError.