كيف تطلب من المستخدمين تقييم تطبيقك ؟

باسل بارقبهمنذ 7 سنوات

من أكثر الأسباب التي تؤدي الى زيادة معدل تقييم تطبيقك في متجر التطبيقات هو عن طريق سؤال المستخدم من داخل التطبيق !

 

هناك طرق كثيره ومكتبات متنوعه لفعل ذلك ووظيفتها تكمن في سؤال المستخدم ما اذا اعجبهم التطبيق ويريد كتابة مراجعة له ، فيتم تحويلهم الى متجر التطبيقات

 

ولكن اليوم سوف نتحدث عن API آبل اضافته في تحديث iOS 10.3

يطلق عليه SKStoreReviewController

 

الفكرة في هذا الـ API هو سؤال المستخدم من داخل التطبيق بدون الحاجة الى تحويلهم الى متجر التطبيقات !

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

 

وطبيعة الحال هناك عدة شروط :
 

  •      يجب الا يستخدم الـ API بداخل ViewDidLoad  أو ViewWillApper او غيرهم بدون وجود Logic ، فانت لا تريد أن يقيم المستخدم التطبيق بمجرد فتحه لأول مره وهو لم يستخدمه بعد !
  •     يجب ان لا يستخدم الـ API بداخل Button او يتطلب أي Action من المستخدم ، قد يسبب ذلك في رفض تطبيقك اذا وضعته بداخل Action !
  •    تذكر بأن كل شيء يتم تلقائيا اعتماداً على النظام ، من حيث ظهور رسالة طلب التقييم من عدمها ! لهذا السبب وجد الشرط السابق
  •    أهم شرط هو رسالة التقييم سوف تظهر فقط 3 مرات في السنه لكل مستخدم .
  •    اثناء فترة التطوير الرسالة سوف تظهر بشكل دائم
  •     عند ارسال تطبيقك كنسخه تجربيه باستخدام TestFlight الرسالة لن تظهر ! ، بمعنى أخرى سوف تظهر فقط عند نشر تطبيقك في متجر التطبيقات .

 

ومن النصائح اذا اردت تقييم إيجابي للتطبيقك ، اطلب ظهور رسالة التقييم اذا فعل المستخدم امراً إيجابياً !

ولا تقاطع المستخدم عند عمل مهمه معينه !! ، ولكن اسأله بعد الانتهاء من مهمة محددة

 

لذا من الأمثله :

  •  اذا التطبيق متجر الكتروني اطلب رسالة التقييم بعد إتمام الشراء.
  • اذا كان التطبيق لعبة ، اطلب رسالة التقييم بعد تحقيق سكور عالي في اللعبة أو بعد انتهاء من مرحلة او عدة مراحل في اللعبة .
  • اسأله بعدد عدد مرات معينه من استخدام التطبيق وليس من أول مره !
    بحيث تسأل المستخدم لتقييم تطبيقك في وقت يكون في مزاج جيد !

 

اذا كيف يتم استخدامه ؟

 

كما ذكرت سابقا الأمر بيد المطور

 

بصورة مختصرة :

 

الذي يتطلبه هو فقط استدعاء


import StoreKit

 

في داخل الـ ViewController الذي يريد ظهور الرسالة عليه

 

ومن ثم استخدام السطر التالي ، في أي مكان يرده المطور


SKStoreReviewController.requestReview()

 

بصورة افضل هو حساب عدد مرات فتح التطبيق وإظهار الرسالة بعد عدد مرات محدده

من دراسة قراءتها بأن افضل وقت هو بعد 5 مرات ويفضل بعد 10 مرات

ولكن ليس أقل من ذلك ، بهذا الوقت بعد 5 مرات او 10 مرات تكون متأكد بأن المستخدم يستخدم التطبيق باستمرار .

 

اذا كيف تحسب وقت استخدام المستخدم للتطبيق ؟

 

عن طريق الاستفادة من UserDefaults

 

اذا لا تعلم ماهو UserDefaults

فهو طريقة لحفظ البيانات بشكل دائم ويستخدم مع البيانات البسيطة

كحفظ رقم Integer مثلا
او حفظ حالة الـ Switch اذا مفعل او مغلق الخ
 

 

وبالتالي الفكرة هيا بوضع عدد محدد كمتغير وفي هذا المثال سوف نضع المدة 4

لأننا نريد أن تظهر رسالة التقييم بعد خامس مره ، ولأنه العد يبدأ من 0

فالرقم 4 = خامس مره

0 , 1 , 2 , 3 , 4

 

ونضع متغير اخر يحسب عدد مرات فتح التطبيق (ViewController)

ومن ثم نعمل مقارنه اذا وصلت عدد المرات الى 5 مرات تظهر الرسالة

اذا لم يوصل نزود قيمة المتغير ونحفظه في UserDefaults

 

 

 

الكود يصبح بالشكل التالي :


 


import UIKit

import StoreKit


class ViewController: UIViewController {

    let minimumRunCount = 4

    let userDefaultsKey = "minimumRunCountUserDefaultsKey"

    override func viewDidLoad() {

        super.viewDidLoad()

        if ShowStoreReview() {

            SKStoreReviewController.requestReview()

        }

    }

  
    func ShowStoreReview() -> Bool {

        let count = UserDefaults.standard.integer(forKey: userDefaultsKey)

        if count >= minimumRunCount {

            return true

        } else {

           
            UserDefaults.standard.set((count + 1), forKey: userDefaultsKey)

        }

        return false

    }


}

 

اذا كما ذكرنا سابقا

 

في البداية عرفنا الحد الادنى قبل ظهور الرسالة في  minimumRunCount  

عرفنا الـ Key للـ userDefault

يمكنك كتابة أي شي تريده

 

بالنسبة الى UserDefaults.standard.integer

القيمة سوف تكون 0 بشكل تلقائي عند استخدامه

وهذا ما نريده

لذا قيمة count سوف تكون 0  في اول مره

 

ومن ثم عملنا مقارنة اذا كانت قيمة count اكبر او يساوي قيمة minimumRunCount  

تظهر ترجع قيمة true وبالتالي تظهر الرسالة

 

اذا لم تكون تساوي او اكبر من قيمة  minimumRunCount  

 

نزود واحد على قيمة count ونحفظها في userDefault

 

لذا في المره الثانية يفتح فيها التطبيق تكون قيمة count بـ 1

عوضاً عن 0

 

وهكذا

 

وعندما توصل لقيمة 4

تظهر الرسالة

 

صورة الرسالة :

 

596d0bc972118_ScreenShot2017-07-17at9_07_08PM.thumb.png.4758534361e71277cfef16b04e1cf757.png

 

هذه من الأمثلة التي تستطيع الاستفادة منها

تستطيع تحسينها حسب احتياجك

 

اريد أن أوضح نقطة اخيره وهيا الـ SKStoreReviewController

فقط يظهر لمستخدم نظام 10.3 فأعلى

 

لذا تستطيع إضافة السطر التالي في ViewDidLoad

 


 


        if #available(iOS 10.3, *) {

            SKStoreReviewController.requestReview()

           

        } else {

 وهنا ضع الطريقة القديمة لتحويله الى متجر التطبيقات//

        }

 

فيصبح الكود  ViewDidLoad النهائي بالشكل التالي :


 


    override func viewDidLoad() {

        super.viewDidLoad()

        if ShowStoreReview() {

            if #available(iOS 10.3, *) {

                SKStoreReviewController.requestReview()             

            } else {

            }

        }

    }

 

 

واخيراً اريد أن اذكر بأن هناك مطور جرب استخدام SKStoreReviewController

في تطبيقه ، وادى ذلك الي حصوله على 200 تقييم في خلال 8 أيام !

 

لذا ينصح بشده باستخدام SKStoreReviewController في تطبيقاتكم

 

فهناك عدد كبير من التطبيقات في المتجر لا تملك أي تقييم !

 

لذلك آبل إضافة هذا الـ API في نظامها

 

 

كلمات دليلية:
3
إعجاب
5140
مشاهدات
0
مشاركة
1
متابع
متميز
محتوى رهيب

التعليقات (2)

Yuosaf31:

الله يوفقكم صراحة مقالة مُفيدة

ksaapk:

شكرا واتمنى زيارة موقع كوبون للإطلاع على الجديد

لايوجد لديك حساب في عالم البرمجة؟

تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !