It also makes rewards easy to size. If you know a player has plenty of headroom, you can confidently issue larger rewards for completing tasks, while players with a lower limit get smaller ones. This is one pattern rather than a requirement, but it keeps rewards self-balancing against revenue.
Raise the limit, not the balance
This keeps your reward economy backed by real revenue while keeping the player-facing earning experience tied to play, not ads.
Prerequisite: link the two IDs
Every approach below joins an MMP event to a ZBD player, so the two systems have to know about each other’s identifiers. Do it in both directions — it’s cheap, and it means the mapping works whichever ID ends up on the postback.1. Give ZBD your player ID
Pass your own internal player identifier when you initialize the SDK, or set it later withSetUserId:
2. Give your MMP the ZBD player ID
Read the ZBD-side identifier withUtils.GetUserId() and set it on your MMP’s SDK as a customer/user identifier or custom property, so it comes back on their postbacks:
Utils.GetUserId() returns an empty string until the SDK has registered the player, so call it after Init succeeds rather than at startup. Check the exact field name against your MMP’s own documentation — the concept is the same everywhere, but the method isn’t.Choose your integration
Three ways to get monetization data to ZBD, depending on what you have to build with:- Your backend (recommended)
- MMP posts to ZBD
- Periodic file upload
The most capable option, and the only one that gives you full control over which events count and how much they’re worth.
1
Your MMP sends a postback
When a player monetizes — a rewarded ad view, a completed IAP — your MMP fires a server-to-server postback to your backend with the player identifier and the revenue amount.
2
Resolve the MMP user to a ZBD player
Look up the SDK user from the identifier in the postback, using the internal player ID you set at
Init.Example: MMP user 1234 maps to ZBD player 1234, who just monetized $1.00 from a rewarded ad.3
Decide how much of that revenue to grant
Pick a share of the revenue to convert into withdrawal headroom — 10–20% is the usual starting range. So $1.00 monetized at 10% → $0.10 of withdrawal limit.
4
Convert to your reward currency
Withdrawal limits are denominated in your reward currency, so convert the dollar figure using your app’s configured point value. There’s no live conversion endpoint yet, but the value is stable enough to hardcode.For example, at a point value of $0.001, $0.10 becomes 100 points.
The point value is configured per app — confirm yours with your ZBD Customer Success Manager rather than assuming a rate. See Reward Economics.
5
Increase the withdrawal limit
Call the withdrawal limit endpoint with the converted amount. See Withdrawal Limits (Server) for the full request.
Sizing rewards to available headroom
Once limits track revenue, you can check a player’s state before issuing a reward and scale it to what they can actually withdraw. Read it wherever you send rewards from:- From your game (client)
- From your server
Most games send rewards client-side, so check the player’s state with See Player Balance & Limits for the full call, including maintenance handling.
GetBalance in Unity: