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

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

لإجراء اختبار A/B لمتغيرات الميزات ذات الخط الأساسي، قم بما يلي:

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

قم بإنشاء تجربة

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

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

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

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

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

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

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

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

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

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

  9. (اختياري) أدخل اسمًا لكل متغير في تجربتك لاستبدال الأسماء Variant A و Variant B وما إلى ذلك.

  10. حدد مقياس هدف لتجربتك لاستخدامه عند تقييم متغيرات التجربة بالإضافة إلى أي مقاييس إضافية مرغوبة من القائمة المنسدلة. تتضمن هذه المقاييس الأهداف المضمنة (التفاعل، والمشتريات، والإيرادات، والاحتفاظ، وما إلى ذلك)، وأحداث تحويل Analytics، وأحداث Analytics الأخرى.

  11. اختر خيارات لرسالتك:

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

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

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

بالنسبة لكل عملية تثبيت لـ Firebase، يمكنك استرداد رمز تسجيل FCM المرتبط به. يمكنك استخدام هذا الرمز المميز لاختبار متغيرات تجربة محددة على جهاز اختبار مثبت عليه تطبيقك. للتحقق من صحة تجربتك على جهاز اختبار، قم بما يلي:

  1. احصل على رمز تسجيل FCM كما يلي:

    سويفت

    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)"
      }
    }
    

    ج موضوعية

    [[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()
    })

    سي ++

    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. أدخل رمز FCM لجهاز الاختبار واختر متغير التجربة لإرساله إلى جهاز الاختبار هذا.
  5. قم بتشغيل التطبيق وتأكد من استلام المتغير المحدد على جهاز الاختبار.

إدارة تجربتك

سواء قمت بإنشاء تجربة باستخدام Remote Config، أو مؤلف الإشعارات، أو Firebase In-App Messaging، يمكنك بعد ذلك التحقق من صحة تجربتك وبدء تشغيلها، ومراقبة تجربتك أثناء تشغيلها، وزيادة عدد المستخدمين المضمنين في تجربتك قيد التشغيل.

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

ابدأ التجربة

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

مراقبة التجربة

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

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

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

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

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

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

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

قم بتوسيع تجربة

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

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

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

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

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

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

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

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

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

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

للأرقام:
<، ≥، =، ≥، >
يتم استخدام خاصية مستخدم Analytics لتحديد المستخدمين الذين قد يتم تضمينهم في التجربة، مع مجموعة من الخيارات لتحديد قيم خصائص المستخدم.

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

مقاييس اختبار أ/ب

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

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

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

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

مقاييس الهدف

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

مقاييس أخرى

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

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

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

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

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

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

  1. تمكين تصدير BigQuery لبرنامج Google Analytics في وحدة تحكم Firebase
  2. الوصول إلى بيانات اختبار A/B باستخدام BigQuery
  3. استكشاف أمثلة الاستعلامات

تمكين تصدير BigQuery لبرنامج Google Analytics في وحدة تحكم Firebase

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

أولاً، تأكد من أنك تقوم بتصدير بيانات Analytics إلى BigQuery:

  1. افتح علامة التبويب عمليات التكامل ، والتي يمكنك الوصول إليها باستخدام > إعدادات المشروع في وحدة تحكم Firebase .
  2. إذا كنت تستخدم BigQuery بالفعل مع خدمات Firebase الأخرى، فانقر على "إدارة" . بخلاف ذلك، انقر فوق الارتباط .
  3. قم بمراجعة حول ربط Firebase بـ BigQuery ، ثم انقر فوق "التالي" .
  4. في قسم تكوين التكامل ، قم بتمكين تبديل Google Analytics .
  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 Analytics : هذا هو معرف خاصية Google Analytics المكون من 9 أرقام. يمكنك العثور على هذا في Google Analytics؛ ويظهر أيضًا في BigQuery عند توسيع اسم مشروعك لإظهار اسم جدول أحداث Google Analytics ( project_name.analytics_000000000.events ).
  • تاريخ التجربة: لإنشاء استعلام أسرع وأكثر كفاءة، من الممارسات الجيدة قصر طلبات البحث على أقسام جدول الأحداث اليومية في Google Analytics التي تحتوي على بيانات تجربتك، وهي الجداول المحددة بلاحقة 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 ويوفر استعلامًا أساسيًا يمكنك استخدامه للاستعلام عن بيانات تجربتك.

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

  /*
    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 Analytics.

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

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

لمزيد من المعلومات حول كيفية قيام اختبار A/B بحساب الاستدلال، راجع تفسير نتائج الاختبار .

  /*
    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