إدارة الإحالات الناجحة

في "إعلانات Google"، الإحالة الناجحة هي إجراء قيّم يتّخذه المستخدم، مثل شراء منتج أو إرسال نموذج عملاء محتملين أو الاتصال بمؤسستك أو زيارة متجر، بعد التفاعل مع الإعلان. تقيس ميزة تتبُّع الإحالات الناجحة تفاعلات العملاء هذه لكي تتمكّن من تقييم أداء الحملة وتحسين عروض الأسعار المبرمَجة.

تتيح لك Google Ads API ضبط إجراءات الإحالات الناجحة آليًا، واستيراد أحداث الإحالات الناجحة غير الإلكترونية، وتحسين الإحالات الناجحة المسجّلة أو تعديلها، وتجميع الإجراءات في أهداف عروض الأسعار ودورة الحياة، ومراقبة بيانات تشخيص عمليات التحميل.

اختيار سير عمل الإحالات الناجحة

استخدِم الجدول التالي لتحديد ConversionActionType وخدمة واجهة برمجة التطبيقات ودليل الاستخدام لحالة الاستخدام لديك:

المهمة نوع إجراء الإحالة الناجحة خدمة أو مورد واجهة برمجة التطبيقات دليل الاستخدام
التحقّق من إعداد الحساب وإنشاء إجراء إحالة ناجحة ‫UPLOAD_CLICKS، WEBPAGE، UPLOAD_CALLS، AD_CALL، WEBSITE_CALL، GOOGLE_PLAY_DOWNLOAD، GOOGLE_PLAY_IN_APP_PURCHASE ‫Customer (ConversionTrackingSetting)، ConversionActionService البدء وفئات إجراءات الإحالات الناجحة
استيراد الإحالات الناجحة الناتجة عن النقرات غير الإلكترونية أو الإحالات الناجحة المحسّنة للعملاء المحتملين UPLOAD_CLICKS ConversionUploadService.UploadClickConversions (أو Data Manager API لعمليات الدمج الجديدة) استيراد الإحالات الناجحة الناتجة عن النقرات غير الإلكترونية
تحسين الإحالات الناجحة الإلكترونية (الإحالات الناجحة المحسّنة للويب) WEBPAGE ConversionAdjustmentUploadService.UploadConversionAdjustments (ENHANCEMENT) استيراد الإحالات الناجحة الناتجة عن النقرات على الإنترنت
استيراد الإحالات الناجحة عبر الاتصال الهاتفي UPLOAD_CALLS ConversionUploadService.UploadCallConversions استيراد الإحالات الناجحة عبر الاتصال الهاتفي
استيراد معاملات المبيعات في المتاجر STORE_SALES، STORE_SALES_DIRECT_UPLOAD OfflineUserDataJobService (أو Data Manager API) استيراد الإحالات الناجحة للمبيعات في المتاجر
سحب الإحالات الناجحة المسجّلة أو تعديل قيمتها ‫UPLOAD_CLICKS وWEBPAGE وSALESFORCE (متوقّفة نهائيًا) ConversionAdjustmentUploadService.UploadConversionAdjustments (RETRACTION، RESTATEMENT) تعديل الإحالات الناجحة بعد الاستيراد
إرفاق بيانات وصفية لعلامات مخصّصة بالإحالات الناجحة ‫UPLOAD_CLICKS، UPLOAD_CALLS، WEBPAGE ConversionCustomVariableService متغيّرات الإحالات الناجحة المخصّصة
ضبط أهداف عروض الأسعار وأهداف مراحل النشاط وقواعد القيمة أهداف الحساب والحملة وأهداف مراحل النشاط CustomerConversionGoalService، CampaignConversionGoalService، CustomConversionGoalService، ConversionGoalCampaignConfigService، GoalService، CampaignGoalConfigService، ConversionValueRuleService أهداف الإحالات الناجحة وأهداف مراحل النشاط وقواعد قيمة الإحالة الناجحة
مراقبة حالة الاستيراد وتشخيص الأخطاء ‫UPLOAD_CLICKS، WEBPAGE، UPLOAD_CALLS offline_conversion_upload_client_summary، offline_conversion_upload_conversion_action_summary مراقبة بيانات التشخيص للبيانات غير الإلكترونية
الاستعلام عن مقاييس الإحالات الناجحة وتحديد المشاكل وحلّها جميع أنواع الإحالات الناجحة GoogleAdsService.SearchStream (customer، campaign، conversion_action) جلب إحصاءات الإحالات الناجحة و تحديد المشاكل وحلّها في عمليات استيراد الإحالات الناجحة

دورة حياة الإحالة الناجحة الشاملة

تتّبع عملية دمج إدارة الإحالات الناجحة الكاملة في Google Ads API أربع مراحل:

  1. التحقّق من إعداد الحساب وإنشاء إجراءات الإحالات الناجحة: يمكنك إرسال طلب بحث إلى Customer.conversion_tracking_setting لتأكيد حساب الإحالات الناجحة الفعّال (google_ads_conversion_customer)، والتحقّق من أنّ ميزة تتبُّع الإحالات الناجحة نشطة، وضبط موافقة المستخدم، وإنشاء ConversionAction باستخدام ConversionActionType وConversionActionCategory المستهدَفَين.
  2. استيراد أحداث الإحالات الناجحة: يمكنك بث الإحالات الناجحة غير الإلكترونية الناتجة عن النقرات أو الإحالات الناجحة عبر الاتصال الهاتفي باستخدام ConversionUploadService مع ضبط partial_failure على true، أو يمكنك استكمال الإحالات الناجحة على الموقع الإلكتروني باستخدام تعديلات ENHANCEMENT من خلال ConversionAdjustmentUploadService، أو يمكنك تحميل مبيعات المتجر بشكل مجمّع باستخدام OfflineUserDataJobService.
  3. تعديل الإحالات الناجحة وتحسينها: يمكنك سحب الإحالات الناجحة المسجَّلة أو إعادة تحديدها باستخدام ConversionAdjustmentUploadService، وإرفاق البيانات الوصفية لـ ConversionCustomVariable، وتطبيق قواعد قيمة الإحالة الناجحة، وتنظيم الإجراءات في أهداف الإحالات الناجحة وأهداف مراحل النشاط للتحكّم في تحسين عروض الأسعار.
  4. مراقبة بيانات التشخيص وأداء التقارير: يمكنك إرسال طلبات بحث إلى 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. استيراد أحداث الإحالات الناجحة

3- تعديل الإحالات الناجحة وتحسينها

4. المراقبة وإعداد التقارير وتحديد المشاكل وحلّها