Test your integration
Use a development app and a test user before enabling live traffic. A successful SDK initialization only proves that the SDK started; it does not prove that rewards will reach your backend.
First-run checklist
- Check that your app's platform, package name, bundle ID, or website hostname matches its dashboard configuration.
- Open the offerwall from a signed-in test user. Verify the same user is identified after closing and reopening it.
- Confirm the empty state when no surveys are available. Do not show an enabled “Earn” button solely because initialization succeeded.
- Test with network unavailable and with an invalid token or UID. Show a recoverable error to the user; log only redacted diagnostics.
- Use the dashboard's Test Callback action and confirm your backend verifies its hash, stores the transaction, and credits once. Send the same test transaction again and confirm it does not credit twice.
- Check a narrow mobile viewport and a desktop viewport for clipped offerwall content or horizontal overflow.
For SDK-specific readiness and presentation methods, use the Android, iOS, Flutter, React Native, or Unity guide. For the web iframe, use the UID guide and UID troubleshooting.
Reward acceptance criteria
Credit a user only from a verified server-to-server callback. Validate the transaction hash using the secret configured for that callback, require a known user and transaction, and make the credit operation idempotent. Handle reversals according to your reward policy. App lifecycle events and browser redirects are useful for UI updates but are not proof of a verified reward.
Before launch
Confirm that your app or placement and callback are approved, the SDK version matches the release matrix, and the dashboard is set to live mode. Test one real end-to-end completion only in a permitted test environment. If you cannot produce a completion, record which earlier checks passed instead of claiming reward delivery works.