شما دو گزینه برای اختصاص دادن اولویت تحویل به پیام های پایین دستی در اندروید دارید: عادی و اولویت بالا. تحویل پیام های عادی و با اولویت بالا به این صورت عمل می کند:
اولویت عادی این اولویت پیشفرض برای پیامهای داده است. پیام های اولویت عادی بلافاصله زمانی که دستگاه در حالت خواب نیست تحویل داده می شود. هنگامی که دستگاه در حالت Doze است، ممکن است تحویل برای صرفه جویی در باتری تا زمانی که دستگاه از حالت Doze خارج شود به تاخیر بیفتد. برای پیامهایی که کمتر به زمان حساس هستند، مانند اعلانهای ایمیل جدید، همگامسازی رابط کاربری خود، یا همگامسازی دادههای برنامه در پسزمینه، اولویت تحویل عادی را انتخاب کنید.
هنگامی که یک پیام اولویت معمولی در Android دریافت میکنید که درخواست همگامسازی دادههای پسزمینه برای برنامه شما میکند، میتوانید یک کار را با WorkManager زمانبندی کنید تا وقتی شبکه در دسترس است، آن را مدیریت کند.
اولویت بالا FCM سعی میکند پیامهای با اولویت بالا را فوراً ارسال کند، و به FCM اجازه میدهد تا در صورت لزوم یک دستگاه خواب را بیدار کند و برخی پردازشهای محدود (از جمله دسترسی بسیار محدود به شبکه) را اجرا کند. پیامهای با اولویت بالا معمولاً باید منجر به تعامل کاربر با برنامه یا اعلانهای آن شود.
مدیریت پیام و اولویت بندی در اندروید
پیامهای با اولویت بالا در Android برای محتوای حساس به زمان و قابل مشاهده توسط کاربر هستند و باید منجر به اعلانهایی برای کاربر شوند. اگر FCM الگویی را تشخیص دهد که در آن پیامها به اعلانهای رو به رو کاربر منجر نمیشوند، پیامهای شما ممکن است در اولویت عادی قرار بگیرند یا به خدمات Google Play واگذار شوند .
FCM از 7 روز رفتار پیام برای تعیین اولویت بندی یا پراکسی پیام ها استفاده می کند. این تعیین را به طور مستقل برای هر نمونه از برنامه شما انجام می دهد. اگر در پاسخ به پیام های با اولویت بالا، اعلان ها به گونه ای نمایش داده شوند که برای کاربر قابل مشاهده باشد، پیام های با اولویت بالا در آینده شما تحت تأثیر قرار نمی گیرند.
تفویض اعلان با خدمات Google Play
پیامهای اعلان با اولویت بالا (نه پیامهای دادهای) که معیارهای خاصی را دارند، به جای اینکه اولویتبندی شوند، توسط سرویسهای Google Play پراکسی میشوند. این بدان معنی است که اعلان ها توسط سرویس های Google Play از طرف برنامه نمایش داده می شود، بدون نیاز به راه اندازی برنامه. این کار برای ارائه یک تجربه کلی بهتر کاربر در دستگاه های اندرویدی انجام می شود.
توجه داشته باشید که پیامهای اعلان پروکسی تغییراتی را در نحوه گزارش تحلیلهای مربوط به پیامهای دریافتی ایجاد میکنند:
- برای اینکه تجزیه و تحلیل برای اعلانهای پروکسی گزارش شود، برنامه شما باید از FCM SDK نسخه 24.0.0 یا بالاتر استفاده کند.
- ممکن است متوجه تاخیر یا کاهش تعداد پیامهای دریافتی در مقایسه با تعداد قبل از معرفی اعلانهای پروکسی شوید. این به این دلیل است که تجزیه و تحلیل برای اعلانهای پروکسی تنها زمانی گزارش میشود که برنامه شما شروع به کار کند، و اگر اعلان منجر به باز شدن برنامه نشود، ممکن است اصلا گزارش نشود.
پروکسی کردن پیامهای اعلان به این روش، رفتار پیشفرض برنامههایی است که از Android Q+ و خدمات Google Play نسخه 19054000 یا بالاتر استفاده میکنند. پیامهایی که از طریق HTTP v1 API ارسال میشوند، پروکسی هستند، اما پیامهایی که از طریق کنسول Firebase یا APIهای قدیمی ارسال میشوند ، پروکسی نمیشوند . توجه داشته باشید که این ویژگی در حال حاضر در نسخه بتا است و ممکن است تغییر کند.
اگرچه اکیداً توصیه میکنیم که تفویض اختیار را برای مزایای آن برای باتری و حافظه دستگاه فعال کنید، میتوانید به هر یک از روشهای زیر از این رفتار انصراف دهید:
- بر اساس سطح برنامه: در مانیفست برنامه خود، دستورالعمل
<meta-data android:name= "delivery_metrics_exported_to_big_query_enabled" android:value="false"/>
را اضافه کنید. - بر اساس نمونه برنامه: برای نمونه برنامه، بسته به مورد استفاده خاص،
fun setNotificationDelegationEnabled(disable: Boolean): Task<Void!>
در جریان رابط کاربری برنامه خود تنظیم کنید. - بر اساس هر پیام: کلید
proxy
را در شیءAndroidNotification
برای درخواست ارسال رویDENY
تنظیم کنید.
اندازه گیری اولویت بندی پیام در اندروید
پیام های فردی هنگام تحویل، میتوانید با مقایسه اولویت تحویلشده آن، از getPriority() با اولویت اصلیاش، از getOriginalPriority() تعیین کنید که آیا یک پیام فردی اولویتبندی شده است یا خیر.
همه پیام ها API FCM Aggregate Delivery Data میتواند گزارش دهد که چند درصد از همه پیامهای شما به Android در اولویت قرار دارند. برخی از پیامها ممکن است از گزارشهای دادههای انبوه حذف شوند، اما به طور کلی باید دیدی کلی از نرخهای اولویتبندی پیام ارائه دهند. برای اطلاعات بیشتر و کد نمونه برای پرس و جو از API، به مقاله ما در مورد داده های تحویل انبوه مراجعه کنید. همچنین می توان آن را از کاوشگر API کاوش کرد.
اعلان های پروکسی اعلانهای پروکسی در معیارهای فعلی تحویل FCM یا GA محاسبه نمیشوند، بنابراین ممکن است تا 15 درصد کاهش در معیارهای تحویل اعلان را تجربه کنید. برای گزارش پیامهای پروکسی، از API FCM Aggregate Delivery Data استفاده کنید.
ProxyNotificationInsightPercents
درصد اعلانهای پراکسی شده با موفقیت و همچنین جزئیات پیامهایی را که نمیتوان با موفقیت پروکسی کرد، گزارش میکند.
عیب یابی
مطمئن شوید که نمونه برنامه شما اعلانها را فعال کرده باشد. اگر کاربر مجوز اعلان برنامه شما را غیرفعال کرده باشد، هیچ یک از اعلانهای شما پست نمیشود، در نتیجه پیامهای شما از اولویت برخوردار میشوند. قبل از ارسال پیام های با اولویت بالا به یک نمونه برنامه، باید بررسی کنید که اعلان ها فعال هستند .
قبل از ارسال اعلان با خانه تماس نگیرید. از آنجایی که بخش کوچکی از جمعیت تلفن همراه اندروید در شبکههای با تأخیر بالا هستند، قبل از نمایش اعلان، از باز کردن اتصال به سرورهای خود اجتناب کنید. تماس مجدد با سرور قبل از پایان زمان پردازش مجاز ممکن است برای کاربران در شبکههای با تأخیر بالا خطرناک باشد. در عوض، محتوای اعلان را در پیام FCM قرار دهید و بلافاصله آن را نمایش دهید. اگر نیاز به همگامسازی برای محتوای درونبرنامه اضافی در Android دارید، میتوانید با WorkManager یک کار را برای مدیریت آن در پسزمینه برنامهریزی کنید.