إدارة الإحالات الناجحة الناتجة عن النقرات على الإنترنت

يمكنك استخدام Google Ads API لإدارة الإحالات الناجحة الناتجة عن النقرات على الإنترنت في "إعلانات Google". تساعدك الإحالات الناجحة الناتجة عن النقرات على الإنترنت في تتبُّع الإعلانات التي أدّت إلى تحقيق مبيعات على الإنترنت، مثلاً من خلال موقع إلكتروني.

يتم تتبُّع الإحالات الناجحة على الإنترنت باستخدام علامة Google، ولكن يمكنك تعديلها أو تحسينها باستخدام Google Ads API.

إذا كنت قد أعددت علامة Google وتريد تعديل إحالاتك الناجحة على الإنترنت، اطّلِع على صفحة تعديلات الإحالات الناجحة. إذا كانت "علامة التتبّع من Google" معدّة وكنت تريد تحسين إحالاتك الناجحة على الإنترنت باستخدام البيانات المقدَّمة من المستخدِم، المعروفة أيضًا باسم الإحالات الناجحة المحسّنة للويب، تابِع القراءة.

الإحالات الناجحة المحسّنة للويب

يوضّح القسم التالي كيفية تحسين الإحالات الناجحة الناتجة عن النقرات على الإنترنت، والمعروفة أيضًا باسم الإحالات الناجحة المحسّنة للويب.

تتطلّب ميزة "الإحالات الناجحة المحسّنة للويب" إعداد علامة ترسل تلقائيًا معرّف نقرة، مثل معرّف النقرة من Google، ومعرّف طلب إلى "إعلانات Google" عندما يجري المستخدم إحالة ناجحة. يمكنك إعداد ميزة "الإحالات الناجحة المحسّنة" من خلال أداة "إدارة العلامات من Google" أو علامة Google أو Google Ads API. يمنحك استخدام Google Ads API ميزة إرسال بيانات الإحالات الناجحة من الطرف الأول في غضون 24 ساعة من حدث الإحالة الناجحة، بدلاً من إرسالها في الوقت نفسه. يتيح ذلك تحديد بيانات الطرف الأول من مجموعة متنوعة من المصادر، مثل قاعدة بيانات العملاء أو نظام إدارة علاقات العملاء.

طريقة عمل ميزة "الإحالات الناجحة المحسّنة للويب"

تكمّل ميزة "الإحالات الناجحة المحسّنة للويب" في Google Ads API الخطوة 3 في المسار التالي.

بدلاً من إرسال معلومات المستخدم المجزّأة عندما يُجري المستخدم إحالة ناجحة، ترسِل العلامة معرّف النقرة من Google ومعرّف الطلب فقط، ويمكنك إرسال معلومات المستخدم المجزّأة لاحقًا من خلال استيراد معرّف الطلب مع البيانات المجزّأة. لمزيد من المعلومات حول ميزة "الإحالات الناجحة المحسّنة" على الويب، يُرجى الانتقال إلى مركز المساعدة.

الإحالات الناجحة المحسّنة للويب

المتطلبات الأساسية

يجب قبول أحكام بيانات العملاء قبل أن تتمكّن من استخدام ميزة "الإحالات الناجحة المحسّنة للويب". يمكنك التحقّق مما إذا تم قبول بنود بيانات العملاء من خلال تنفيذ طلب البحث التالي إلى عميل الإحالة الناجحة في "إعلانات Google":

SELECT
  customer.id,
  customer.conversion_tracking_setting.accepted_customer_data_terms
FROM customer

إذا كانت قيمة accepted_customer_data_terms هي false، يُرجى اتّباع التعليمات الواردة في مركز المساعدة لإكمال هذا الشرط الأساسي.

ضبط وضع العلامات

يمكنك ضبط إعدادات وضع العلامات على موقعك الإلكتروني باتّباع التعليمات الواردة في مركز المساعدة. ننصحك أيضًا بإضافة معرّفات المعاملات (معرّفات الطلبات) إلى علامة تتبُّع الإحالات الناجحة للمساعدة في مطابقة الإحالات الناجحة.

تنفيذ واجهة برمجة التطبيقات

في ما يلي المسار العام لاستيراد ميزة "الإحالات الناجحة المحسّنة للويب" في Google Ads API.

  1. تسوية البيانات المقدَّمة من المستخدِم وتجزئتها، مثل عنوان البريد الإلكتروني ورقم الهاتف والعنوان البريدي

  2. املأ عناصر ConversionAdjustment بالبيانات المقدَّمة من المستخدِم التي تمّت تسويتها وتجزئتها.

  3. استورِد عناصر ConversionAdjustment إلى ConversionAdjustmentUploadService.

  4. مراجعة عمليات الاستيراد

تسوية البيانات المقدَّمة من المستخدِم وتجزئتها

لمراعاة اعتبارات الخصوصية، يجب تجزئة البيانات التالية باستخدام SHA-256 قبل استيرادها:

  • عنوان البريد الإلكتروني
  • رقم الهاتف
  • الاسم الأول
  • اسم العائلة
  • عنوان الشارع

يجب عدم تجزئة البيانات التالية:

  • البلد
  • الولاية
  • المدينة
  • الرمز البريدي

لتوحيد نتائج التجزئة، عليك إجراء ما يلي قبل تجزئة إحدى هذه القيم:

  • إزالة المسافات البيضاء البادئة واللاحقة
  • تحويل النص إلى أحرف لاتينية صغيرة
  • تنسيق أرقام الهواتف وفقًا لمعيار E164
  • بالنسبة إلى عناوين البريد الإلكتروني:
    • إزالة جميع النقاط (.) في اسم المستخدم (قبل الرمز @) على سبيل المثال، يصبح jane.doe@example.com هو janedoe@example.com.
    • أزِل رمز الجمع (+) وأي أحرف تليه في اسم المستخدم (قبل الرمز @). على سبيل المثال، يصبح janedoe+newsletter@example.com janedoe@example.com.

Java

private String normalizeAndHash(MessageDigest digest, String s, boolean trimIntermediateSpaces)
    throws UnsupportedEncodingException {
  // Normalizes by first converting all characters to lowercase, then trimming spaces.
  String normalized = s.toLowerCase();
  if (trimIntermediateSpaces) {
    // Removes leading, trailing, and intermediate spaces.
    normalized = normalized.replaceAll("\\s+", "");
  } else {
    // Removes only leading and trailing spaces.
    normalized = normalized.trim();
  }
  // Hashes the normalized string using the hashing algorithm.
  byte[] hash = digest.digest(normalized.getBytes("UTF-8"));
  StringBuilder result = new StringBuilder();
  for (byte b : hash) {
    result.append(String.format("%02x", b));
  }

  return result.toString();
}

/**
 * Returns the result of normalizing and hashing an email address. For this use case, Google Ads
 * requires removal of any '.' characters preceding {@code gmail.com} or {@code googlemail.com}.
 *
 * @param digest the digest to use to hash the normalized string.
 * @param emailAddress the email address to normalize and hash.
 */
private String normalizeAndHashEmailAddress(MessageDigest digest, String emailAddress)
    throws UnsupportedEncodingException {
  String normalizedEmail = emailAddress.toLowerCase();
  String[] emailParts = normalizedEmail.split("@");
  if (emailParts.length > 1 && emailParts[1].matches("^(gmail|googlemail)\\.com\\s*")) {
    // Removes any '.' characters from the portion of the email address before the domain if the
    // domain is gmail.com or googlemail.com.
    emailParts[0] = emailParts[0].replaceAll("\\.", "");
    normalizedEmail = String.format("%s@%s", emailParts[0], emailParts[1]);
  }
  return normalizeAndHash(digest, normalizedEmail, true);
}
      

#C

/// <summary>
/// Normalizes the email address and hashes it. For this use case, Google Ads requires
/// removal of any '.' characters preceding <code>gmail.com</code> or
/// <code>googlemail.com</code>.
/// </summary>
/// <param name="emailAddress">The email address.</param>
/// <returns>The hash code.</returns>
private string NormalizeAndHashEmailAddress(string emailAddress)
{
    string normalizedEmail = emailAddress.ToLower();
    string[] emailParts = normalizedEmail.Split('@');
    if (emailParts.Length > 1 && (emailParts[1] == "gmail.com" ||
        emailParts[1] == "googlemail.com"))
    {
        // Removes any '.' characters from the portion of the email address before
        // the domain if the domain is gmail.com or googlemail.com.
        emailParts[0] = emailParts[0].Replace(".", "");
        normalizedEmail = $"{emailParts[0]}@{emailParts[1]}";
    }
    return NormalizeAndHash(normalizedEmail);
}

/// <summary>
/// Normalizes and hashes a string value.
/// </summary>
/// <param name="value">The value to normalize and hash.</param>
/// <returns>The normalized and hashed value.</returns>
private static string NormalizeAndHash(string value)
{
    return ToSha256String(digest, ToNormalizedValue(value));
}

/// <summary>
/// Hash a string value using SHA-256 hashing algorithm.
/// </summary>
/// <param name="digest">Provides the algorithm for SHA-256.</param>
/// <param name="value">The string value (e.g. an email address) to hash.</param>
/// <returns>The hashed value.</returns>
private static string ToSha256String(SHA256 digest, string value)
{
    byte[] digestBytes = digest.ComputeHash(Encoding.UTF8.GetBytes(value));
    // Convert the byte array into an unhyphenated hexadecimal string.
    return BitConverter.ToString(digestBytes).Replace("-", string.Empty);
}

/// <summary>
/// Removes leading and trailing whitespace and converts all characters to
/// lower case.
/// </summary>
/// <param name="value">The value to normalize.</param>
/// <returns>The normalized value.</returns>
private static string ToNormalizedValue(string value)
{
    return value.Trim().ToLower();
}
      

PHP

private static function normalizeAndHash(
    string $hashAlgorithm,
    string $value,
    bool $trimIntermediateSpaces
): string {
    // Normalizes by first converting all characters to lowercase, then trimming spaces.
    $normalized = strtolower($value);
    if ($trimIntermediateSpaces === true) {
        // Removes leading, trailing, and intermediate spaces.
        $normalized = str_replace(' ', '', $normalized);
    } else {
        // Removes only leading and trailing spaces.
        $normalized = trim($normalized);
    }
    return hash($hashAlgorithm, strtolower(trim($normalized)));
}

/**
 * Returns the result of normalizing and hashing an email address. For this use case, Google
 * Ads requires removal of any '.' characters preceding "gmail.com" or "googlemail.com".
 *
 * @param string $hashAlgorithm the hash algorithm to use
 * @param string $emailAddress the email address to normalize and hash
 * @return string the normalized and hashed email address
 */
private static function normalizeAndHashEmailAddress(
    string $hashAlgorithm,
    string $emailAddress
): string {
    $normalizedEmail = strtolower($emailAddress);
    $emailParts = explode("@", $normalizedEmail);
    if (
        count($emailParts) > 1
        && preg_match('/^(gmail|googlemail)\.com\s*/', $emailParts[1])
    ) {
        // Removes any '.' characters from the portion of the email address before the domain
        // if the domain is gmail.com or googlemail.com.
        $emailParts[0] = str_replace(".", "", $emailParts[0]);
        $normalizedEmail = sprintf('%s@%s', $emailParts[0], $emailParts[1]);
    }
    return self::normalizeAndHash($hashAlgorithm, $normalizedEmail, true);
}