في "إعلانات Google"، الإحالة الناجحة هي إجراء قيّم يتّخذه المستخدم، مثل شراء منتج أو إرسال نموذج عملاء محتملين أو الاتصال بمؤسستك أو زيارة متجر، بعد التفاعل مع الإعلان. تقيس ميزة تتبُّع الإحالات الناجحة تفاعلات العملاء هذه لكي تتمكّن من تقييم أداء الحملة وتحسين عروض الأسعار المبرمَجة.
تتيح لك Google Ads API ضبط إجراءات الإحالات الناجحة آليًا، واستيراد أحداث الإحالات الناجحة غير الإلكترونية، وتحسين الإحالات الناجحة المسجّلة أو تعديلها، وتجميع الإجراءات في أهداف عروض الأسعار ودورة الحياة، ومراقبة بيانات تشخيص عمليات التحميل.
اختيار سير عمل الإحالات الناجحة
استخدِم الجدول التالي لتحديد ConversionActionType وخدمة واجهة برمجة التطبيقات ودليل الاستخدام لحالة الاستخدام لديك:
| المهمة | نوع إجراء الإحالة الناجحة | خدمة أو مورد واجهة برمجة التطبيقات | دليل الاستخدام |
|---|---|---|---|
| التحقّق من إعداد الحساب وإنشاء إجراء إحالة ناجحة |
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والطوابع الزمنية لآخر إحالة ناجحة.
البدء السريع: التحقّق من الإعداد وإنشاء الإجراءات والتحقّق من الصحة
توضّح الأمثلة التالية طلبات البحث والتغييرات الثلاثة الأكثر شيوعًا اللازمة لبدء تتبُّع الإحالات الناجحة ومراقبته.
1. التحقّق من إعدادات تتبُّع الإحالات الناجحة باستخدام 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 اللاحقة
باستخدام رقم تعريف العميل هذا. للاطّلاع على تفاصيل الإعداد الكامل والتسلسل الهرمي على مستوى الحسابات، يُرجى مراجعة مقالة البدء.
2. إنشاء إجراء إحالة ناجحة
استخدِم 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
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::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 إجراء الإحالة الناجحة، استورِد أحداث الإحالات الناجحة أو
التحسينات باستخدام سير العمل لمصدر الإحالة الناجحة (راجِع استيراد
أحداث الإحالات الناجحة).
3- مراقبة حالة تحميل الإحالات الناجحة غير الإلكترونية
بعد تحميل الإحالات الناجحة الناتجة عن النقرات أو الإحالات الناجحة عبر الاتصال الهاتفي أو تعديلات الإحالات الناجحة،
يمكنك الاستعلام عن 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
للاطّلاع على بيانات التشخيص على مستوى إجراء الإحالة الناجحة (راجِع تتبُّع بيانات التشخيص للبيانات غير الإلكترونية)، والرجوع إلى تحديد المشاكل وحلّها في عمليات استيراد الإحالات الناجحة لحلّ رموز أخطاء معيّنة.
دليل الأدلة حسب مرحلة الاشتراك
استكشِف المجموعة الكاملة من أدلة إدارة الإحالات الناجحة المنظَّمة حسب مرحلة النشاط:
1. إعداد الحساب وإجراءات الإحالات الناجحة
- فئات إجراءات الإحالات الناجحة: اختَر مصدر الإحالة الناجحة المناسب، سواء كان موقعًا إلكترونيًا (
WEBPAGE) أو مكالمة هاتفية (UPLOAD_CALLSأوAD_CALLأوWEBSITE_CALL) أو تطبيقًا للأجهزة الجوّالة (GOOGLE_PLAY_DOWNLOADأوGOOGLE_PLAY_IN_APP_PURCHASEأو Firebase أوSKAdNetwork) أو "إحصاءات Google 4" (GOOGLE_ANALYTICS_4_CUSTOMأوGOOGLE_ANALYTICS_4_PURCHASE) أو مصدرًا بلا إنترنت (UPLOAD_CLICKS) أو متجرًا (STORE_SALES)، واربطه بسير عمل واجهة برمجة التطبيقات وConversionActionTypeالمقابلَين. - البدء: يمكنك ضبط موافقة المستخدم والتحقّق من
ConversionTrackingSettingوإعداد تتبُّع الإحالات الناجحة في جميع الحسابات وإنشاء إجراءات الإحالات الناجحة باستخدام مكتبات العملاء أو REST.
2. استيراد أحداث الإحالات الناجحة
- استيراد الإحالات الناجحة غير الإلكترونية الناتجة عن النقرات: يمكنك تحميل الإحالات الناجحة غير الإلكترونية (
GCLIDوGBRAIDوWBRAID) والإحالات الناجحة المحسّنة للعملاء المحتملين (عنوان البريد الإلكتروني ورقم الهاتف المجزّأين للطرف الأول) لقياس المعاملات في الواقع. - استيراد الإحالات الناجحة الناتجة عن النقرات على الإنترنت: يمكنك تزويد علامات تتبُّع الإحالات الناجحة على الموقع الإلكتروني ببيانات مستخدمين تابعة للطرف الأول، مثل عنوان البريد الإلكتروني والاسم وعنوان المنزل ورقم الهاتف، باستخدام ميزة الإحالات الناجحة المحسّنة للويب (تعديلات
ENHANCEMENT). - استيراد الإحالات الناجحة عبر الاتصال الهاتفي: يمكنك تحميل أحداث الإحالات الناجحة للمكالمات الهاتفية التي يتم تتبّعها من خلال أرقام توجيه المكالمات من Google أو نظام تتبُّع المكالمات الخاص بك.
- استيراد الإحالات الناجحة للمبيعات في المتاجر: يمكنك تحميل بيانات المعاملات في المتاجر بشكل مجمّع باستخدام
OfflineUserDataJobService.
3- تعديل الإحالات الناجحة وتحسينها
- تعديل الإحالات الناجحة بعد الاستيراد: يمكنك سحب الطلبات المُلغاة (
RETRACTION) أو إعادة تحديد قيم الإحالات الناجحة المعدَّلة (RESTATEMENT) لإجراءات الإحالات الناجحةUPLOAD_CLICKSوWEBPAGEوSALESFORCE(متوقفة نهائيًا). - إدارة قواعد قيمة الإحالة الناجحة: يمكنك تعديل قيم الإحالات الناجحة بشكل ديناميكي في وقت المزاد استنادًا إلى معايير الجمهور أو الجهاز أو الموقع الجغرافي أو برنامج الرحلة.
- متغيّرات الإحالات الناجحة المخصّصة: يمكنك تحديد علامات مخصّصة للقيم الرئيسية (
ConversionCustomVariable) وإرفاقها بالإحالات الناجحة الناتجة عن النقرات والمكالمات والمواقع الإلكترونية، وذلك لإعداد تقارير مقسّمة. - أهداف الإحالات الناجحة: يمكنك تجميع إجراءات الإحالات الناجحة حسب الحقلَين
category(ConversionActionCategory) وorigin(ConversionOrigin)، وضبط أهداف العملاء وأهداف الحملات والأهداف المخصّصة وأهداف مراحل نشاط العملاء (اكتساب عملاء جدد والاحتفاظ بالعملاء والاحتفاظ بالعملاء الأوفياء). يمكنك أيضًا استرداد وتطبيقOPTIMIZE_FOR_NEW_CUSTOMERSاقتراحات لقيم الإحالات الناجحة المتزايدة للعملاء الجدد.
4. المراقبة وإعداد التقارير وتحديد المشاكل وحلّها
- مراقبة بيانات تشخيص الإحالات الناجحة غير الإلكترونية: يمكنك الاستعلام عن بيانات تشخيص الإحالات الناجحة غير الإلكترونية على مستوى الحساب (
offline_conversion_upload_client_summary) ومستوى إجراء الإحالة الناجحة (offline_conversion_upload_conversion_action_summary) لتتبُّع معدّلات النجاح والأحداث في انتظار المراجعة وتنبيهات التحميل. - جلب إحصاءات الإحالات الناجحة: يمكنك الاستعلام عن مقاييس أداء الإحالات الناجحة في لغة طلب البحث في "إعلانات Google" وربط أعمدة واجهة مستخدم "إعلانات Google" بحقول Google Ads API.
- تحديد المشاكل وحلّها في عمليات استيراد الإحالات الناجحة: يمكنك تشخيص وحلّ رموز الخطأ الشائعة
ConversionUploadErrorوConversionAdjustmentUploadError.