Nakama Validator
Introduction
The Nakama Validator is used when your game relies on Nakama as an authoritative backend for validating in-app purchases.
The Nakama validator will be removed in the future, with validation being moved to the Adjust Validator as the sole Validator.
Setup
Based on the game status, the requirements differ:
If the game is hosted on Lion Studios’ Google Play / App Store accounts, contact your Product Manager so that the Product Manager can collaborate with the QA team to retrieve the credentials and complete the game setup.
If the game is hosted on your own Google Play / App Store account, You can follow the steps below for the respective platforms.
Google Play Setup - Service Account’s Client Email & Private Key
AppleStore Setup - Shared Secret
Deliver these keys to your Product Manager so that they can complete the setup.
What the Nakama Validator Does
When the Nakama Validator is enabled:
Every purchase is logged as an
inapp_purchaseevent to Lion Analytics.Receipt validation is delegated to your Nakama backend.
Nakama determines whether the receipt is valid, invalid, or rejected.
Only if the receipt is validated successfully:
A native
iap_purchaseevent is fired to Adjust.
If the receipt is invalid, duplicated, or fails validation:
No revenue event is sent to Adjust.
The purchase is still recorded internally with a corresponding
ValidationStatus.
The validation result is returned to the client and recorded with the purchase event.
This ensures that purchase trust and enforcement are controlled entirely by your backend logic.
Validation Outcomes
Depending on the validation result returned by Nakama, the following behaviour applies:
Valid receipt
inapp_purchaseevent is logged withValidationStatus = SuccessAdjust receives the
iap_purchaserevenue eventThe purchase is treated as trusted by the system
Invalid or fraudulent receipt
inapp_purchaseevent is logged withValidationStatus = FailureThe purchase is flagged as invalid or fraudulent
Validation error
inapp_purchaseevent is logged withValidationStatus = ErrorIndicates a failure communicating with Nakama or an unexpected server error
These outcomes allow internal analytics to retain full visibility while enforcing backend-driven validation rules.
Last updated
Was this helpful?