كيف تطلب من المستخدمين تقييم تطبيقك ؟
من أكثر الأسباب التي تؤدي الى زيادة معدل تقييم تطبيقك في متجر التطبيقات هو عن طريق سؤال المستخدم من داخل التطبيق !
هناك طرق كثيره ومكتبات متنوعه لفعل ذلك ووظيفتها تكمن في سؤال المستخدم ما اذا اعجبهم التطبيق ويريد كتابة مراجعة له ، فيتم تحويلهم الى متجر التطبيقات
ولكن اليوم سوف نتحدث عن 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
تظهر الرسالة
صورة الرسالة :
هذه من الأمثلة التي تستطيع الاستفادة منها
تستطيع تحسينها حسب احتياجك
اريد أن أوضح نقطة اخيره وهيا الـ 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 في نظامها
عرض المزيد.. جديد مقالاتي
لايوجد لديك حساب في عالم البرمجة؟
تحب تنضم لعالم البرمجة؟ وتنشئ عالمك الخاص، تنشر المقالات، الدورات، تشارك المبرمجين وتساعد الآخرين، اشترك الآن بخطوات يسيرة !