What is a token drop?
Token drop is a situation or case where the MoEngage Platform does not have push tokens for all the users of your application.
Say your application is installed by 100 new users every day but there are tokens for only 60 users on the MoEngage Platform, this is regarded as a token drop.
Why is it important to fix it?
To send out a push notification to your end-users push token is required, without a token push cannot be sent. Hence to keep your users engaged it is very important to fix the token drop.
Why does token drop occur?
Token drop can happen because of various reasons:
- Poor/No Internet connectivity which results in Firebase SDK not generating the token.
- Play services version mismatch, play services version on the device isn't compatible with the Firebase version used in the application
- Application has some internal check/flag based on which they decide whether to pass the token to the MoEngage SDK and during the token generation that flag is disabled hence token isn't passed to MoEngage SDK.
- Integration Error, push token is not being passed to the MoEngage SDK.
How to fix it?
- If the token is not available on App-Open, deploy a retry mechanism where the application periodically attempts to generate a token till a token is successfully generated.
- If you have any check before passing the token to MoEngage SDK please remove it or keep the flag enabled by default to ensure tokens are passed on the first app open itself.
- Revisit the Push Notification to check if the implementation for the passing token is properly done.
Suggestions for retry Mechanism
We recommend the application attempts to generate a push token on every App-Open and pass it to the MoEngage SDK. In case the app does not get the token from the Firebase API for any reason, the should attempt to register for push again periodically till the registration is successful or till the application is foreground.
You can refer to this library as an example of how to set up a retry mechanism. Alternatively, you can use this library instead of setting the mechanism yourself.