إنشاء تجارب مراسلة باستخدام اختبار A/B

عند التواصل مع المستخدمين أو إطلاق حملة تسويقية جديدة، عليك التأكّد من تنفيذ كل الإجراءات بشكل صحيح. ويمكن أن يساعدك اختبار A/B في العثور على الصياغة والعرض الأمثل من خلال اختبار صيغ الرسائل على أجزاء محددة من قاعدة المستخدمين. وسواء كان هدفك هو الحفاظ على المستخدمين أو إجراء إحالة ناجحة على أحد العروض الترويجية بشكل أفضل، يمكن لاختبار A/B إجراء تحليل إحصائي لتحديد ما إذا كانت صيغة الرسالة تتفوق على الأداء المتوقع لهدفك المحدّد.

لإجراء اختبار A/B لنُسخ الميزات التي تتضمّن مرجعًا، اتّبِع الخطوات التالية:

  1. أنشئ تجربتك.
  2. تحقّق من صحة تجربتك على جهاز اختبار.
  3. أدِر تجربتك.

إنشاء تجربة

تتيح لك التجربة التي تستخدم منشئ الإشعارات تقييم صيغ متعدّدة في رسالة إشعار واحدة.

  1. سجِّل الدخول إلى وحدة تحكُّم Firebase وتحقّق من تفعيل "إحصاءات Google" في مشروعك حتى تتمكن التجربة من الوصول إلى بيانات "إحصاءات Google".

    إذا لم تفعّل "إحصاءات Google" عند إنشاء مشروعك، يمكنك تفعيله من علامة تبويب عمليات الدمج التي يمكنك الوصول إليها باستخدام > إعدادات المشروع في وحدة تحكُّم Firebase.

  2. انقر على اختبار A/B في قسم التفاعل ضمن شريط التنقّل في وحدة تحكُّم Firebase.

  3. انقر على إنشاء تجربة، ثم اختَر الإشعارات عند مطالبتك بالخدمة التي تريد إجراء التجارب عليها.

  4. أدخِل اسمًا ووصفًا اختياريًا لتجربتك، ثم انقر على التالي.

  5. املأ حقول الاستهداف، ثم اختَر أولاً التطبيق الذي يستخدم تجربتك. يمكنك أيضًا استهداف مجموعة فرعية من المستخدمين للمشاركة في تجربتك من خلال تحديد الخيارات التي تتضمّن ما يلي:

    • الإصدار: إصدار واحد أو أكثر من تطبيقك
    • جمهور المستخدم: شرائح جمهور "إحصاءات Google" المستخدَمة لاستهداف المستخدمين الذين قد يتم تضمينهم في التجربة
    • خاصّية المستخدِم: خاصيّة مستخدِم واحدة أو أكثر في "إحصاءات Google" لاختيار المستخدِمين الذين قد يتمّ تضمينهم في التجربة
    • البلد/المنطقة: بلد أو منطقة واحدة أو أكثر لاختيار المستخدمين الذين قد يتم تضمينهم في التجربة
    • لغة الجهاز: يتم استخدام لغة واحدة أو أكثر من اللغات والمناطق المحلية لاختيار المستخدمين الذين قد يتم تضمينهم في التجربة.
    • أول فتح: يمكنك استهداف المستخدمين استنادًا إلى المرة الأولى التي فتحوا فيها تطبيقك
    • آخر تفاعل مع التطبيق: يمكنك استهداف المستخدمين استنادًا إلى آخر مرة تفاعلوا فيها مع تطبيقك
  6. حدِّد النسبة المئوية للمستخدمين المستهدَفين: اختَر النسبة المئوية لقاعدة مستخدمي التطبيق التي تتطابق مع المعايير المحدّدة ضمن استهداف المستخدمين والتي تريد تقسيمها بالتساوي بين القيمة المرجعية وصيغة واحدة أو أكثر في تجربتك. يمكن أن تكون أي نسبة مئوية بين 0.01٪ و100٪. تتم إعادة تخصيص النسب المئوية عشوائيًا للمستخدمين لكل تجربة، بما في ذلك التجارب المكرّرة.

  7. في قسم الصيغ، اكتب رسالة لإرسالها إلى المجموعة الأساسية في الحقل إدخال نص الرسالة. لعدم إرسال أي رسالة إلى المجموعة المرجعية، اترك هذا الحقل فارغًا.

  8. (اختياري) لإضافة أكثر من صيغة واحدة إلى تجربتك، انقر على إضافة صيغة. تحتوي التجارب تلقائيًا على صورة مرجعية واحدة وصيغة واحدة.

  9. (اختياري) أدخِل اسمًا لكل صيغة في تجربتك لاستبدال الأسماء الصيغة "أ" والصيغة "ب" وما إلى ذلك.

  10. حدِّد مقياسًا لهدف تجربتك لاستخدامه عند تقييم متغيّرات التجربة مع أي مقاييس إضافية مطلوبة من القائمة المنسدلة. تتضمن هذه المقاييس الأهداف المضمنة (التفاعل، وعمليات الشراء، والإيرادات، والاحتفاظ، إلخ.)، وأحداث الإحالات الناجحة في "إحصاءات Google" وغيرها من أحداث "إحصاءات Google"

  11. حدِّد الخيارات لرسالتك:

    • تاريخ التسليم: يمكنك اختيار إرسال الآن لبدء التجربة فورًا عند الحفظ أو تحديد موعد لتحديد وقت لبدء تجربتك في المستقبل.
    • الخيارات المتقدمة: لاختيار خيارات متقدّمة لجميع الإشعارات المضمّنة في تجربتك، وسِّع الخيارات المتقدّمة، ثمّ غيِّر أيًا من خيارات الرسائل المدرَجة.
  12. انقر على مراجعة لحفظ تجربتك.

يمكنك إجراء ما يصل إلى 300 تجربة لكل مشروع، ويمكن أن يشمل ذلك ما يصل إلى 24 تجربة قيد التنفيذ، والباقي كمسودة أو مكتملة.

التحقّق من صحة تجربتك على جهاز اختبار

يمكنك استرداد الرمز المميز لتسجيل خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" المرتبط به لكل عملية تثبيت لمنصة Firebase. يمكنك استخدام هذا الرمز المميّز لاختبار صِيَغ معيّنة من التجارب على جهاز اختباري تم تثبيت تطبيقك عليه. للتحقّق من صحة تجربتك على جهاز اختباري، اتّبِع الخطوات التالية:

  1. احصل على الرمز المميز للتسجيل في خدمة "المراسلة عبر السحابة الإلكترونية من Firebase" على النحو التالي:

    Swift

    Messaging.messaging().token { token, error in
      if let error = error {
        print("Error fetching FCM registration token: \(error)")
      } else if let token = token {
        print("FCM registration token: \(token)")
        self.fcmRegTokenMessage.text  = "Remote FCM registration token: \(token)"
      }
    }
    

    Objective-C

    [[FIRMessaging messaging] tokenWithCompletion:^(NSString *token, NSError *error) {
      if (error != nil) {
        NSLog(@"Error getting FCM registration token: %@", error);
      } else {
        NSLog(@"FCM registration token: %@", token);
        self.fcmRegTokenMessage.text = token;
      }
    }];
    

    Java

    FirebaseMessaging.getInstance().getToken()
        .addOnCompleteListener(new OnCompleteListener<String>() {
            @Override
            public void onComplete(@NonNull Task<String> task) {
              if (!task.isSuccessful()) {
                Log.w(TAG, "Fetching FCM registration token failed", task.getException());
                return;
              }
    
              // Get new FCM registration token
              String token = task.getResult();
    
              // Log and toast
              String msg = getString(R.string.msg_token_fmt, token);
              Log.d(TAG, msg);
              Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
            }
        });

    Kotlin+KTX

    FirebaseMessaging.getInstance().token.addOnCompleteListener(OnCompleteListener { task ->
        if (!task.isSuccessful) {
            Log.w(TAG, "Fetching FCM registration token failed", task.exception)
            return@OnCompleteListener
        }
    
        // Get new FCM registration token
        val token = task.result
    
        // Log and toast
        val msg = getString(R.string.msg_token_fmt, token)
        Log.d(TAG, msg)
        Toast.makeText(baseContext, msg, Toast.LENGTH_SHORT).show()
    })

    C++‎

    firebase::InitResult init_result;
    auto* installations_object = firebase::installations::Installations::GetInstance(
        firebase::App::GetInstance(), &init_result);
    installations_object->GetToken().OnCompletion(
        [](const firebase::Future& future) {
          if (future.status() == kFutureStatusComplete &&
              future.error() == firebase::installations::kErrorNone) {
            printf("Installations Auth Token %s\n", future.result()->c_str());
          }
        });
        

    Unity

    Firebase.Messaging.FirebaseMessaging.DefaultInstance.GetTokenAsync().ContinueWith(
      task => {
        if (!(task.IsCanceled || task.IsFaulted) && task.IsCompleted) {
          UnityEngine.Debug.Log(System.String.Format("FCM registration token {0}", task.Result));
        }
      });
    
  2. في شريط التنقّل في وحدة تحكُّم Firebase، انقر على اختبار A/B.
  3. انقر على مسودة، ومرِّر مؤشر الماوس فوق تجربتك، وانقر على قائمة السياقات ()، ثم انقر على إدارة الأجهزة الاختبارية.
  4. أدخِل الرمز المميّز لخدمة "المراسلة عبر السحابة الإلكترونية من Firebase" الخاص بجهاز اختباري واختَر صيغة التجربة لإرسالها إلى ذلك الجهاز الاختباري.
  5. شغِّل التطبيق وتأكَّد من أنّه يتم تلقّي الإصدار المحدَّد على جهاز الاختبار.

إدارة تجربتك

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

عند انتهاء التجربة، يمكنك ملاحظة الإعدادات التي استخدمتها الصيغة الفائزة، ثم طرح هذه الإعدادات لجميع المستخدمين. أو يمكنك إجراء تجربة أخرى.

بدء تجربة

  1. انقر على اختبار A/B في قسم التفاعل ضمن قائمة التنقّل في وحدة تحكُّم Firebase.
  2. انقر على مسودة، ثم انقر على عنوان تجربتك.
  3. للتحقّق من أنّ تطبيقك يحتوي على مستخدمين يمكن تضمينهم في تجربتك، وسِّع تفاصيل المسودة وتحقَّق من أنّ رقمًا أكبر من 0% في قسم الاستهداف والتوزيع (مثلاً، 1% من المستخدمين الذين يتطابقون مع المعايير).
  4. لتغيير تجربتك، انقر على تعديل.
  5. لبدء تجربتك، انقر على بدء التجربة. يمكنك إجراء ما يصل إلى 24 تجربة لكل مشروع في المرة الواحدة.

مراقبة تجربة

بعد تنفيذ التجربة لفترة من الوقت، يمكنك التحقق من مستوى تقدمها ومعرفة الشكل الذي ستظهر به النتائج للمستخدمين الذين شاركوا في تجربتك حتى الآن.

  1. انقر على اختبار A/B في قسم التفاعل ضمن قائمة التنقّل في وحدة تحكُّم Firebase.
  2. انقر على قيد التشغيل، ثمّ انقر على عنوان تجربتك أو ابحث عنه. في هذه الصفحة، يمكنك الاطّلاع على العديد من الإحصاءات المرصودة والمستنِدة إلى نموذج عن تجربتك قيد التنفيذ، بما في ذلك ما يلي:

    • الفرق بالنسبة المئوية مقارنةً بالقيمة المرجعية: يشير ذلك إلى مقياس لتحسين مقياس معيّن لخيار منتج معيّن مقارنةً بالمرجع. ويتم حسابه من خلال مقارنة نطاق القيمة للمتغير بنطاق القيمة للمرجع.
    • احتمالية التفوق على الأساس: الاحتمالية المُقدّرة لتجاوز أحد المتغيّرات الأساسية للمقياس المُختار.
    • observed_metric لكل مستخدم: استنادًا إلى نتائج التجربة، هذا هو النطاق المتوقّع الذي ستدخل فيه قيمة المقياس بمرور الوقت.
    • الإجمالي observed_metric: القيمة التراكمية المرصودة للصيغة المرجعية أو الصيغة. تُستخدَم القيمة لقياس مدى جودة أداء كل صيغة من التجربة، وتُستخدَم لاحتساب التحسين ونطاق القيمة واحتمالية تجاوز القيم المرجعية واحتمالية أن تكون الصيغة الأفضل. تبعًا للمقياس الذي يتم قياسه، قد يحمل هذا العمود تصنيف "المدة لكل مستخدم" أو "الأرباح لكل مستخدم" أو "معدل الاحتفاظ" أو "معدل الإحالات الناجحة".
  3. بعد تشغيل تجربتك لفترة (7 أيام على الأقل لخدمة "المراسلة عبر السحابة الإلكترونية من Firebase" والمراسلة داخل التطبيق أو 14 يومًا لميزة "الإعداد عن بُعد")، تشير البيانات على هذه الصفحة إلى الصيغة "الرائدة" إن وُجدت. تصاحب بعض القياسات مخطط شريطي يعرض البيانات بتنسيق مرئي.

طرح التجربة لجميع المستخدمين

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

  1. انقر على اختبار A/B في قسم التفاعل ضمن قائمة التنقّل في وحدة تحكُّم Firebase.
  2. انقر على مكتملة أو قيد التشغيل، وانقر على التجربة التي تريد طرحها لجميع المستخدمين، ثم انقر على قائمة السياقات () طرح الصيغة.
  3. اطرح تجربتك لجميع المستخدمين من خلال تنفيذ أحد الإجراءات التالية:

    • بالنسبة إلى التجارب التي تستخدم منشئ الإشعارات، استخدِم مربّع الحوار طرح الرسالة لإرسال الرسالة إلى باقي المستخدمين المستهدَفين الذين لم يكونوا جزءًا من التجربة.
    • بالنسبة إلى تجربة الإعداد عن بُعد، اختَر صيغة لتحديد قيم مَعلمات "الإعداد عن بُعد" المطلوب تعديلها. تتم إضافة معايير الاستهداف المحدّدة عند إنشاء التجربة كشرط جديد في النموذج، وذلك لضمان عدم تأثير عملية الطرح إلا في المستخدمين المستهدَفين من خلال التجربة. بعد النقر على مراجعة في صفحة "الإعداد عن بُعد" لمراجعة التغييرات، انقر على نشر التغييرات لإكمال عملية الطرح.
    • بالنسبة إلى تجربة المراسلة داخل التطبيق، استخدِم مربّع الحوار لتحديد الصيغة التي يجب طرحها كحملة "مراسلة داخل التطبيق" مستقلة. بعد اختيار جهة النشر، ستتم إعادة توجيهك إلى شاشة إنشاء FIAM لإجراء أي تغييرات (إذا لزم الأمر) قبل النشر.

توسيع التجربة

إذا تبيّن لك أنّ إحدى التجارب لا تجذب عددًا كافيًا من المستخدمين لإجراء اختبار A/B للإعلان عن قائد، يمكنك زيادة توزيع تجربتك للوصول إلى نسبة أكبر من قاعدة مستخدمي التطبيق.

  1. انقر على اختبار A/B في قسم التفاعل ضمن قائمة التنقّل في وحدة تحكُّم Firebase.
  2. اختَر التجربة قيد التنفيذ التي تريد تعديلها.
  3. في نظرة عامة على التجربة، انقر على قائمة السياقات ()، ثم انقر على تعديل التجربة قيد التنفيذ.
  4. ويعرض مربّع حوار الاستهداف خيارًا لزيادة النسبة المئوية للمستخدمين المشاركين في التجربة قيد التنفيذ. اختَر رقمًا أكبر من النسبة المئوية الحالية وانقر على نشر. سيتمّ توجيه التجربة إلى النسبة المئوية للمستخدِمين التي حدّدتها.

تكرار تجربة أو إيقافها

  1. انقر على اختبار A/B في قسم التفاعل ضمن قائمة التنقّل في وحدة تحكُّم Firebase.
  2. انقر على مكتملة أو قيد التشغيل، ومرِّر مؤشر الماوس فوق تجربتك، وانقر على قائمة السياقات ()، ثمّ انقر على تكرار التجربة أو إيقاف التجربة.

استهداف المستخدمين

يمكنك استهداف المستخدِمين لتضمينهم في تجربتك باستخدام معايير استهداف المستخدِمين التالية.

معيار الاستهداف العوامل القيم ملاحظة
الإصدار يحتوي على،
لا يحتوي على،
يتطابق تمامًا،
يحتوي على تعبير عادي
أدخِل قيمة لإصدار واحد أو أكثر من إصدارات التطبيق التي تريد تضمينها في التجربة.

عند استخدام أي من عوامل التشغيل تحتوي على أو لا يحتوي أو تتطابق تمامًا، يمكنك تقديم قائمة قيم مفصولة بفواصل.

عند استخدام عامل التشغيل يحتوي على تعبير عادي، يمكنك إنشاء تعبيرات عادية بتنسيق RE2. يمكن للتعبير العادي أن يطابق سلسلة الإصدار المستهدفة بالكامل أو جزء منها. يمكنك أيضًا استخدام علامتَي الارتساء ^ و$ لمطابقة بداية السلسلة المستهدفة أو نهايتها أو بكاملها.

جمهور المستخدمين أيّ منها،
تتضمّن واحدة على الأقل،
لا تتضمّن كلّها،
لا تتضمّن واحدة على الأقل من
اختَر شريحة جمهور واحدة أو أكثر في "إحصاءات Google" لاستهداف المستخدمين الذين قد يتم تضمينهم في تجربتك. قد تتطلّب بعض التجارب التي تستهدف شرائح جمهور "إحصاءات Google" بضعة أيام لتجميع البيانات لأنّها تخضع لوقت استجابة معالجة البيانات في "إحصاءات Google". من المرجح أن تواجه هذا التأخير مع المستخدمين الجدد، الذين يتم تسجيلهم عادةً في شرائح الجمهور المؤهَّلة بعد 24 إلى 48 ساعة من الإنشاء، أو لشرائح الجمهور التي تم إنشاؤها مؤخرًا.
خاصيّة المستخدم بالنسبة إلى النص:
يحتوي على،
لا يحتوي على،
يتطابق تمامًا،
يحتوي على تعبير عادي

بالنسبة إلى الأرقام:
<, ≤, =, ≥, >
يتمّ استخدام خاصيّة المستخدِم في "إحصاءات Google" لاختيار المستخدِمين الذين قد يتمّ تضمينهم في تجربة، مع مجموعة من الخيارات لتحديد قيم خصائص المستخدِمين.

في البرنامج، يمكنك ضبط قيم السلسلة فقط لخصائص المستخدمين. بالنسبة إلى الشروط التي تستخدم عوامل التشغيل الرقمية، تحوّل خدمة "الإعداد عن بُعد" قيمة خاصيّة المستخدم المقابلة إلى عدد صحيح/عدد عائم.
عند استخدام عامل التشغيل يحتوي على تعبير عادي، يمكنك إنشاء تعبيرات عادية بتنسيق RE2. يمكن للتعبير العادي أن يطابق سلسلة الإصدار المستهدفة بالكامل أو جزء منها. يمكنك أيضًا استخدام علامتَي الارتساء ^ و$ لمطابقة بداية السلسلة المستهدفة أو نهايتها أو بكاملها.
البلد/المنطقة لا ينطبق تم استخدام بلد أو منطقة واحدة أو أكثر لاختيار المستخدمين الذين قد يتم تضمينهم في التجربة.  
اللغات لا ينطبق تم استخدام لغة واحدة أو أكثر من اللغات المحلية لاختيار المستخدمين الذين قد يتم تضمينهم في التجربة.  
أول فتح أكثر من
أقل من
بين
يمكنك استهداف المستخدمين استنادًا إلى المرة الأولى التي فتحوا فيها تطبيقك، ويتم تحديده بالأيام.
آخر تفاعل مع التطبيق أكثر من
أقل من
بين
يمكنك استهداف المستخدمين استنادًا إلى آخر مرة تفاعلوا فيها مع تطبيقك، ويتم تحديدها بالأيام.

مقاييس اختبار A/B

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

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

  • إجمالي الأرباح المقدّرة لمعرفة مدى الاختلاف بين السعرين المتغيرين معًا للشراء داخل التطبيق وأرباح الإعلانات
  • الاحتفاظ بالمستخدمين (يوم واحد)، الاحتفاظ بالمستخدمين (من 2 إلى 3 أيام)، الاحتفاظ بالمستخدمين (من 4 إلى 7 أيام) لتتبُّع معدل الاحتفاظ بالمستخدمين يوميًا/أسبوعيًا

تقدم الجداول التالية تفاصيل عن كيفية حساب مقاييس الأهداف والمقاييس الأخرى.

مقاييس الأهداف

المقياس الوصف
المستخدمون الذين لم يواجههم أي تعطُّل النسبة المئوية للمستخدمين الذين لم تواجههم أي أخطاء في تطبيقك ورصدتها حزمة تطوير البرامج (SDK) لمنصّة Firebase Crashlytics أثناء التجربة.
الأرباح المقدّرة الناتجة عن الإعلانات أرباح الإعلانات المقدّرة.
إجمالي الأرباح المقدَّرة القيمة المجمّعة لعملية الشراء وأرباح الإعلانات المقدّرة.
الأرباح من عمليات الشراء القيمة المُجمَّعة لكل فعاليات purchase وin_app_purchase.
الاحتفاظ بالبيانات (يوم واحد) يشير ذلك إلى عدد المستخدمين الذين يعودون إلى تطبيقك يوميًا.
الاحتفاظ بالاشتراكات (من يومَين إلى 3 أيام) يشير ذلك إلى عدد المستخدمين الذين يعودون إلى تطبيقك في غضون يومَين إلى 3 أيام.
الاحتفاظ بالاشتراكات (من 4 إلى 7 أيام) يشير ذلك إلى عدد المستخدمين الذين يعودون إلى تطبيقك في غضون 4 إلى 7 أيام.
الاحتفاظ بالاشتراكات (من 8 إلى 14 يومًا) يشير ذلك إلى عدد المستخدمين الذين يعودون إلى تطبيقك في غضون 8 إلى 14 يومًا.
الاحتفاظ بالاشتراكات (أكثر من 15 يومًا) عدد المستخدمين الذين يعودون إلى تطبيقك بعد 15 يومًا أو أكثر من استخدامهم له في المرة الأخيرة.
first_open يشير ذلك المصطلح إلى حدث في "إحصاءات Google" يتم تشغيله عندما يفتح المستخدِم تطبيقًا لأول مرة بعد تثبيته أو إعادة تثبيته. تُستخدَم كجزء من مسار الإحالة الناجحة.

المقاييس الأخرى

المقياس الوصف
notification_dismiss حدث في "إحصاءات Google" يتم تشغيله عند تجاهل إشعار مُرسَل من منشئ "الإشعارات" (في نظام التشغيل Android فقط).
notification_receive يشير ذلك المصطلح إلى حدث في "إحصاءات Google" يتم تشغيله عند تلقّي إشعار مُرسَل من منشئ "الإشعارات" أثناء تشغيل التطبيق في الخلفية (على نظام التشغيل Android فقط).
os_update حدث في "إحصاءات Google" يتتبّع وقت تحديث نظام تشغيل الجهاز إلى إصدار جديد.ولمزيد من المعلومات، يُرجى الاطّلاع على الأحداث المجمّعة تلقائيًا.
screen_view يشير ذلك المصطلح إلى حدث في "إحصاءات Google" يتتبّع الشاشات التي تتم مشاهدتها داخل تطبيقك. لمزيد من المعلومات، يُرجى الاطّلاع على تتبُّع مشاهدات الصفحة في التطبيق.
session_start حدث على "إحصاءات Google" يحتسب جلسات المستخدمين في تطبيقك. لمزيد من المعلومات، اطّلِع على الأحداث المجمّعة تلقائيًا.

تصدير بيانات BigQuery

بالإضافة إلى عرض بيانات تجربة اختبار A/B في وحدة تحكم Firebase، يمكنك فحص بيانات التجربة وتحليلها في BigQuery. لا يتضمّن اختبار A/B جدول BigQuery منفصلاً، ولكن يتم تخزين بيانات الاشتراكات التجريبية والخيارات في كل أحداث "إحصاءات Google" ضمن جداول أحداث "إحصاءات Google".

تكون خصائص المستخدمين التي تحتوي على معلومات عن التجربة بالشكل userProperty.key like "firebase_exp_%" أو userProperty.key = "firebase_exp_01" حيث يكون 01 هو رقم تعريف التجربة، وuserProperty.value.string_value تحتوي على الفهرس (المبني إلى الصفر) لصيغة التجربة.

يمكنك استخدام خصائص المستخدِمين هذه في التجربة لاستخراج بيانات التجربة. يتيح لك ذلك تقسيم نتائج التجربة بعدة طرق مختلفة والتحقق بشكل مستقل من نتائج اختبار A/B.

للبدء، أكمل ما يلي كما هو موضح في هذا الدليل:

  1. تفعيل ميزة تصدير بيانات BigQuery لخدمة "إحصاءات Google" في وحدة تحكُّم Firebase
  2. الوصول إلى بيانات "اختبار A/B" باستخدام BigQuery
  3. الاطّلاع على نماذج طلبات البحث

تفعيل ميزة BigQuery Export لخدمة "إحصاءات Google" في وحدة تحكُّم Firebase

إذا كنت مشتركًا في خطة Spark، يمكنك استخدام وضع الحماية في BigQuery للوصول إلى BigQuery بدون أي تكلفة، مع مراعاة حدود وضع الحماية. راجِع التسعير ووضع الحماية في BigQuery لمزيد من المعلومات.

أولاً، تأكَّد من تصدير بيانات "إحصاءات Google" إلى BigQuery:

  1. افتح علامة التبويب عمليات الدمج التي يمكنك الوصول إليها باستخدام > إعدادات المشروع في وحدة تحكُّم Firebase.
  2. إذا كنت تستخدم BigQuery مع خدمات Firebase الأخرى من قبل، انقر على إدارة. أو انقر على ربط.
  3. راجِع لمحة عن ربط Firebase بأداة BigQuery، ثمّ انقر على التالي.
  4. في قسم إعداد الدمج، فعِّل مفتاح تبديل إحصاءات Google.
  5. اختَر منطقة واختَر إعدادات التصدير.

  6. انقر على الربط بأداة BigQuery.

استنادًا إلى الطريقة التي اخترتها لتصدير البيانات، قد يستغرق توفُّر الجداول ما يصل إلى يوم. لمزيد من المعلومات حول تصدير بيانات المشروع إلى BigQuery، راجع تصدير بيانات المشروع إلى BigQuery.

الوصول إلى بيانات اختبار A/B في BigQuery

قبل إجراء طلب بحث عن بيانات لتجربة محدّدة، يجب الحصول على بعض أو كل ما يلي لاستخدامه في طلب البحث:

  • رقم تعريف التجربة: يمكنك الحصول على هذا الرقم من عنوان URL لصفحة نظرة عامة على التجربة. على سبيل المثال، إذا كان عنوان URL يظهر على النحو التالي https://console.firebase.google.com/project/my_firebase_project/config/experiment/results/25، يكون رقم تعريف التجربة هو 25.
  • رقم تعريف الموقع على "إحصاءات Google": هو رقم تعريف موقعك على "إحصاءات Google" المكوَّن من 9 أرقام. يمكنك العثور عليه في "إحصاءات Google"، ويظهر أيضًا في BigQuery عند توسيع اسم مشروعك لعرض اسم جدول أحداثك في "إحصاءات Google" (project_name.analytics_000000000.events).
  • تاريخ التجربة: لإنشاء طلب بحث أسرع وأكثر فعالية، من الممارسات الجيدة أن تقتصر طلبات البحث على أقسام جدول الأحداث اليومية في "إحصاءات Google" التي تحتوي على بيانات التجارب، وهي الجداول التي يتم تحديدها باللاحقة YYYYMMDD. لذلك، إذا تم تنفيذ تجربتك من 2 شباط (فبراير) 2024 إلى 2 مايو 2024، عليك تحديد _TABLE_SUFFIX between '20240202' AND '20240502'. للحصول على مثال، اطّلِع على المقالة اختيار قيم تجربة معيّنة.
  • أسماء الأحداث: عادةً ما تتوافق هذه الأسماء مع مقاييس الأهداف التي ضبطتها في التجربة. على سبيل المثال، أحداث in_app_purchase أو ad_impression أو user_retention.

بعد جمع المعلومات التي تحتاجها لإنشاء الاستعلام:

  1. افتح BigQuery في وحدة تحكّم Google Cloud.
  2. اختَر مشروعك، ثم اختَر إنشاء طلب بحث SQL.
  3. أضِف طلب البحث. للاطّلاع على أمثلة لطلبات البحث المطلوب تنفيذها، راجِع القسم الاطّلاع على أمثلة على طلبات البحث.
  4. انقر على تشغيل.

طلب بيانات التجربة باستخدام طلب البحث الذي تم إنشاؤه تلقائيًا في وحدة تحكُّم Firebase

إذا كنت تستخدم خطة Blaze، تقدِّم صفحة نظرة عامة على التجربة نموذج طلب بحث يعرض اسم التجربة والصيغ وأسماء الأحداث وعدد أحداث التجربة التي تشاهدها.

للحصول على طلب البحث الذي تم إنشاؤه تلقائيًا وتشغيله:

  1. من "وحدة تحكُّم Firebase"، افتح اختبار A/B واختَر تجربة "اختبار A/B" التي تريد إجراء طلب بحث عنها لفتح نظرة عامة على التجربة.
  2. من قائمة "الخيارات"، أسفل دمج BigQuery، اختر بيانات تجربة طلب البحث. يؤدي ذلك إلى فتح مشروعك في BigQuery ضمن وحدة التحكّم في Google Cloud Console، كما يوفّر استعلامًا أساسيًا يمكنك استخدامه للاستعلام عن بيانات تجربتك.

يوضّح المثال التالي طلب بحث تم إنشاؤه لتجربة تشمل ثلاثة صيغ (بما في ذلك الشكل الأساسي) باسم "تجربة ترحيبية في الشتاء". وتعرض اسم التجربة النشطة واسم الصيغة والحدث الفريد وعدد الأحداث لكل حدث. لاحظ أن أداة إنشاء الاستعلامات لا تحدد اسم مشروعك في اسم الجدول، حيث تفتح مباشرة داخل مشروعك.

  /*
    This query is auto-generated by Firebase A/B Testing for your
    experiment "Winter welcome experiment".
    It demonstrates how you can get event counts for all Analytics
    events logged by each variant of this experiment's population.
  */
  SELECT
    'Winter welcome experiment' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'Welcome message (1)'
      WHEN '2' THEN 'Welcome message (2)'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_000000000.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN '20240202' AND '20240502')
    AND userProperty.key = 'firebase_exp_25'
  GROUP BY
    experimentVariant, eventName

للاطّلاع على أمثلة إضافية على طلبات البحث، انتقِل إلى المقالة استكشاف أمثلة على طلبات البحث.

الاطّلاع على أمثلة طلبات البحث

تقدِّم الأقسام التالية أمثلة على طلبات البحث التي يمكنك استخدامها لاستخراج بيانات تجربة اختبار A/B من جداول أحداث "إحصاءات Google".

استخراج قيم الانحراف المعياري للشراء والتجربة من جميع التجارب

يمكنك استخدام بيانات نتائج التجربة للتحقّق من نتائج "اختبار A/B من Firebase" بشكل مستقل. تعمل عبارة BigQuery SQL التالية على استخراج صيغ التجربة وعدد المستخدمين الفريدين في كل صيغة وتجمع إجمالي الأرباح من حدثَي in_app_purchase وecommerce_purchase والانحرافات المعيارية لجميع التجارب ضمن النطاق الزمني المحدَّدين في تاريخَي البدء والانتهاء في _TABLE_SUFFIX. يمكنك استخدام البيانات التي حصلت عليها من هذا الاستعلام مع منشئ دلالة إحصائية لاختبارات T أحادية الطرف للتحقق من أن النتائج التي يوفرها Firebase تطابق تحليلك الخاص.

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

  /*
    This query returns all experiment variants, number of unique users,
    the average USD spent per user, and the standard deviation for all
    experiments within the date range specified for _TABLE_SUFFIX.
  */
  SELECT
    experimentNumber,
    experimentVariant,
    COUNT(*) AS unique_users,
    AVG(usd_value) AS usd_value_per_user,
    STDDEV(usd_value) AS std_dev
  FROM
    (
      SELECT
        userProperty.key AS experimentNumber,
        userProperty.value.string_value AS experimentVariant,
        user_pseudo_id,
        SUM(
          CASE
            WHEN event_name IN ('in_app_purchase', 'ecommerce_purchase')
              THEN event_value_in_usd
            ELSE 0
            END) AS usd_value
      FROM `PROJECT_NAME.analytics_ANALYTICS_ID.events_*`
      CROSS JOIN UNNEST(user_properties) AS userProperty
      WHERE
        userProperty.key LIKE 'firebase_exp_%'
        AND event_name IN ('in_app_purchase', 'ecommerce_purchase')
        AND (_TABLE_SUFFIX BETWEEN 'YYYYMMDD' AND 'YYYMMDD')
      GROUP BY 1, 2, 3
    )
  GROUP BY 1, 2
  ORDER BY 1, 2;

اختيار قيم تجربة معيّنة

يوضح المثال التالي طلب البحث كيفية الحصول على بيانات لتجربة معينة في BigQuery. يعرض نموذج طلب البحث هذا اسم التجربة وأسماء المتغيّرات (بما في ذلك خط الأساس) وأسماء الأحداث وأعداد الأحداث.

  SELECT
    'EXPERIMENT_NAME' AS experimentName,
    CASE userProperty.value.string_value
      WHEN '0' THEN 'Baseline'
      WHEN '1' THEN 'VARIANT_1_NAME'
      WHEN '2' THEN 'VARIANT_2_NAME'
      END AS experimentVariant,
    event_name AS eventName,
    COUNT(*) AS count
  FROM
    `analytics_ANALYTICS_PROPERTY.events_*`,
    UNNEST(user_properties) AS userProperty
  WHERE
    (_TABLE_SUFFIX BETWEEN 'YYYMMDD' AND 'YYYMMDD')
    AND userProperty.key = 'firebase_exp_EXPERIMENT_NUMBER'
  GROUP BY
    experimentVariant, eventName