Testing and QA
Verify your Zeta Android SDK integration before shipping to production.
This guide provides a step-by-step checklist for verifying SDK initialization, push notifications, in-app messages, app inbox, and contact management before release.
On this page
- Environment setup
- Verifying SDK initialization
- Testing push notifications
- Testing in-app messages
- Testing app inbox
- Debug checklist
- Common issues
Environment setup
The appEnvironment parameter in ZTConfig determines the push notification environment:
| Environment | When to use |
|---|---|
ZTAppEnvironment.PRODUCTION (default) | Production and release builds |
ZTAppEnvironment.SANDBOX | Development and staging builds |
Ensure your google-services.json matches the Firebase project configured in your ZMP app registration.
Verifying SDK initialization
Enable verbose logging before initialization:
ZTLogger.setLevel(ZTLogLevel.VERBOSE)
ZTLogger.setLevel(ZTLogLevel.VERBOSE);
After calling ZetaClient.initialize(), check Logcat (filter by ZetaCore or your app's tag) for:
- A successful initialization log entry
- A BSIN assignment or retrieval
- Network requests to the Zeta backend
You can also verify initialization using ADB:
adb logcat -s ZetaCore
Testing push notifications
Pre-flight checklist
google-services.jsonis placed atapp/google-services.json.- Firebase Cloud Messaging dependency is added.
ZTPushServiceis registered inAndroidManifest.xml(or your custom push service forwards tokens).- For Android 13+, the
POST_NOTIFICATIONSruntime permission is granted. - Google Play Services is installed on the test device.
Sending a test push from ZMP
- In ZMP, navigate to Settings > Integrations > Keys.
- Select your Android app and click Test.
- Enter the BSIN of your test device (retrieve via
ZetaClient.user.getCachedBsin()). - Click Test Integration.
Sending a test push via FCM directly
You can also send a test message directly through the Firebase Console to verify FCM connectivity independently of ZMP.
Verifying delivery and click tracking
- Check Logcat for delivery receipt logs.
- Tap the notification and verify that a
message_clickedevent appears in ZMP reporting. - Check the notification channel: verify it matches the
ZTNotificationChannelconfiguration.
Verifying notification channels
Use ADB to inspect registered notification channels:
adb shell dumpsys notification | grep -A 5 "your.package.name"
Testing in-app messages
- Create a test campaign in ZMP with channel "Mobile InApp Push".
- Target a segment that includes your test device's BSIN.
- Activate the campaign.
- Open the app and wait for the in-app message to appear.
- Verify lifecycle callbacks fire in your
ZTInAppMessageLifeCycleimplementation.
Testing app inbox
- Send an inbox message through a ZMP campaign.
- Call
ZetaClient.inboxmethods and verify messages appear in callbacks. - Test mark-as-read, mark-as-deleted, and CTA click tracking.
Debug checklist
| Check | How to verify |
|---|---|
| SDK initializes | Logcat shows initialization success |
| BSIN is assigned | getCachedBsin() returns a non-null value |
| Events reach ZMP | Send a custom event, check ZMP event logs |
| Push token registered | Logcat shows FCM token forwarded to backend |
| Push received | Notification appears on device |
| Delivery tracked | delivered event in ZMP reporting |
| Click tracked | message_clicked event in ZMP reporting |
| Deep link works | Tap notification, verify correct activity launches |
| In-app displays | Message appears in foreground |
| Inbox populated | Callbacks return messages |
| Opt-out works | After opt-out, no events sent, local data cleared |
| Offline queueing | Disable network, send events, re-enable, verify delivery |
Common issues
Push notifications not received on emulator.
FCM can deliver to emulators with Google Play Services, but behavior is inconsistent. Use a physical device for reliable testing.
Notification not showing on Android 13+.
The POST_NOTIFICATIONS permission must be granted at runtime. Check that your app requests it and the user has approved.
Wrong notification channel.
If ZTNotificationConfig is not set before the first notification arrives, the SDK creates a default channel. Ensure you call ZTPush.initConfig() in Application.onCreate().
Events not appearing in ZMP.
Verify optIn is true and clientSecret is set. Check Logcat for network errors. The SDK queues events locally and retries, so a brief network outage should not cause data loss.
See also
- Push Troubleshooting — FCM error handling and common push issues.
- Logging — configuring SDK log output.
