Blueprint: AppMetrica Push
Category AdBot|AppMetrica Push. Below: permission, three basic graphs (startup, cold start, foreground), node reference, and test checklist.
Request Post Notifications Permission (Android 13+)
Callable node Request Post Notifications Permission shows the system dialog for android.permission.POST_NOTIFICATIONS on API 33+. On Android 12L (API 32) and below it does nothing (notifications are allowed by default unless the user disabled them in settings).
Ask before the first push
Call after Activate AppMetrica and before Activate AppMetrica Push, ideally after your consent UI.
// Game Instance - Event Init:
Activate AppMetrica
Request Post Notifications Permission
Activate AppMetrica Push (Async)
Push Activated -> Bind Push Payload Received (Async)
Details: Push setup - POST_NOTIFICATIONS.
Notifications when the app is not loaded
Yes — users can receive notifications in the Android shade while Unreal is not running (app killed or only in the OS background). FCM/HMS and AppMetrica Push handle delivery in native Android; Blueprint is not required for the tray icon itself.
Blueprint is needed to register the device (first launch), request POST_NOTIFICATIONS on Android 13+, and to read the payload inside the game (while UE runs or after the user taps a notification).
| Situation | Who shows the notification | Blueprint |
| App killed or in background | Android + AppMetrica Push | Not required for showing in the tray |
| UE is running | Same; payload to game code | Bind Push Payload Received |
| User tapped notification (cold start) | Launches game; intent carries payload | Was App Launched From Push, Get Last Push Payload |
Blueprint does not run custom game logic if the app stays killed and the user never opens the notification. For background work without opening the game you need native Android services (not included in AdBot).
Blueprint nodes (category AdBot|AppMetrica Push)
| Node | Type | When to use |
| Is AppMetrica Push Enabled | Pure | Branch if push was compiled into the APK (Project Settings) |
| Activate AppMetrica Push | Callable / Async | Register FCM/HMS token (once per install/session) |
| Is AppMetrica Push Activated | Pure | Check after async activation |
| Request Post Notifications Permission | Callable | Android 13+ system dialog |
| Bind Push Payload Received | Async | While UE runs; fires on each push with payload |
| Was App Launched From Push | Pure | Cold start after user tapped notification |
| Get Last Push Payload | Pure | Read payload from last intent (AppMetricaPush.EXTRA_PAYLOAD) |
| Get Push Launch Action | Pure | Intent action (deeplink) |
| Clear Last Push Payload | Callable | After handling cold-start payload |
| Configure Push Notification Channel | Callable | Optional; before first notification is shown |
Also use AdBot|AppMetrica → Activate AppMetrica before push (or enable Init AppMetrica at Startup).
Graph 1 — Game Instance startup (required minimum)
Place on your Game Instance blueprint: Event Init. Order matters on Android 13+.
// Game Instance - Event Init
Event Init
|
+-- Activate AppMetrica // skip if Init AppMetrica at Startup = ON
|
+-- Request Post Notifications Permission // Android 13+; after GDPR if needed
|
+-- Activate AppMetrica Push (Async)
|-- Then --------------> (optional log)
|-- Push Activated ----> Bind Push Payload Received (Async)
| Push Payload Received (String) --> Handle Push In Game
+-- Failed --------------> Print String / Log (check AdBotPush in logcat)
|
+-- Handle Cold Start From Push // Graph 2 - same Init
Startup without Blueprint
Enable Init AppMetrica Push at Startup in Project Settings to call AppMetricaPush.activate from GameActivity.onCreate. You still should call Request Post Notifications Permission and Bind Push Payload Received from Blueprint after the engine starts.
Graph 2 — Cold start (app was killed, user tapped notification)
On cold start the plugin reads the launch Intent in Java and stores the payload before Blueprint runs. Use this in the same Event Init (custom function recommended).
// Function: Handle Cold Start From Push (call from Event Init)
Was App Launched From Push?
|-- False --> (done)
+-- True --> Payload = Get Last Push Payload
Action = Get Push Launch Action // optional deeplink
--> Open level / parse JSON / show UI
--> Clear Last Push Payload
Bind Push Payload Received may also fire on cold start (JNI from onCreate), but always handle cold start with Was App Launched From Push + Get Last Push Payload so you do not miss the payload if binding runs late.
Graph 3 — While the game is already running
After Graph 1, every new push while UE is active arrives on the async node:
Bind Push Payload Received (Async)
Push Payload Received (Payload: String)
--> Branch / Parse JSON / Custom Event
--> e.g. show in-game mail, apply bonus, open shop tab
If the activity was already open, Android may deliver a new intent via onNewIntent; the plugin forwards it the same way.
Recommended Project Settings
- Enable AppMetrica Push = ON → rebuild APK
- AppMetrica API Key filled
- FCM:
google-services.json in Build/Android/ or manual Firebase fields + JSON in AppMetrica cabinet
- Optional: Init AppMetrica at Startup + Init AppMetrica Push at Startup to reduce Blueprint calls
Test checklist
- Package APK with push enabled; install on device.
- Launch game once; wait for
AdBotPush: AppMetrica Push activated in logcat.
- Grant notification permission on Android 13+.
- Force-stop the app; send a test push from AppMetrica → notification should appear in the tray.
- Tap the notification → game opens; Graph 2 should read the payload.
- With game in foreground, send another push → Graph 3 Push Payload Received should fire.