Blog

Latest news and updates from the PlayFab developers

by Paul Gilmore 2017-09-25

Push Notifications

We are releasing a major update to Push Notifications.

Android:
The PlayFab Android plugin, which has always been a required element to using push notifications with PlayFab, is deprecated and should no longer be used. The best option for push notifications on Android is to just use the platform-native Android FCM plugin from Google.

iOS:
For this release, iOS push notifications are slightly improved, specifically, the "Package" field will no longer deliver messy json blobs to the client. Otherwise, there's no change, the message is the only field delivered. We will continue to improve iOS, with the goal to support badges and sounds. We anticipate these new iOS options to be supported before the end of October. [UPDATE]Success! Badges and Sounds work on iOS!

How it works:
Upto now, our server only delivered to the "default" field on the player device. For advanced features, we would deliver a json blob in that default string, meaning you needed our custom plugin to decipher the message into additional features. We never built a custom plugin for iOS, so only the message field worked. We can now deliver additional fields, according to the proper message format expected by that platform. For Android/FCM, this means that customData arrives in the Data handler, and notifications display properly as notifications.

Upgrading Android:
The upgrade process is mostly client-side. Remove the PlayFab push code/plugin from your project, install FCM, and update your client push setup and callbacks to the FCM equivalents. Once you are ready to release the update, there will be a button in Game Manager to switch an old title to the new push format. This transition is 1-way, once you upgrade, you can't go back.

Titles that add push notifications after this update will automatically use the new format, and will not have the option for the old format.

Improvements:

Our forums are littered with posts from those who have issues with our current plugin (waving pitchforks and torches). Almost all of those issues should immediately be resolved with this release:

  • FCM supports all Android API levels
  • FCM is more stable and has fewer bugs than our plugin
  • FCM is easier to install and update, and requires less setup
  • FCM will be more compatible with other 3rd party plugins, and comes with its own resolver for dealing with plugin conflicts
  • iOS always had a native option, but we hope to support more of those capabilities very soon
  • iOS devices which were formerly receiving raw JSON will immediately start receiving normal messages, with no change to the app or the device
  • There are other platform features we can add support for now, which weren't possible before, such as TTL and other flags (These are not present yet, but much more possible than before)

Impact:

  • In aproximately 6 months, we will force-upgrade everybody to the new format
  • Our documentation still mentions the old plugin, and will be updated over the coming week
    • Mostly finished
  • After a title has been upgraded to the new push format, Android apps that continue to use our deprecated plugin will experience a degradation of service. The advanced features (icon, sound, title, customData), will no longer be parsed correctly by those devices, and they will only display the basic message.
  • We will be deleting all downloads for our old push plugins, and once you upgrade your title to the new format, the upgrade cannot be undone
  • The ScheduleDate parameter is not part of the FCM standard, and is not supported natively. You will need to write new client-side code to interpret this field, and perform the correct action.
  • FCM and our plugins are not at all similar. Upgrading from our plugin to FCM will be a bit of work, but you can find the Unity FCM documentation here, and the Android Studio documentation here
  • iOS improvements are still in-progress [Update] Done!


Discuss on our forums!