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:

EnvironmentWhen to use
ZTAppEnvironment.PRODUCTION (default)Production and release builds
ZTAppEnvironment.SANDBOXDevelopment 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

  1. google-services.json is placed at app/google-services.json.
  2. Firebase Cloud Messaging dependency is added.
  3. ZTPushService is registered in AndroidManifest.xml (or your custom push service forwards tokens).
  4. For Android 13+, the POST_NOTIFICATIONS runtime permission is granted.
  5. Google Play Services is installed on the test device.

Sending a test push from ZMP

  1. In ZMP, navigate to Settings > Integrations > Keys.
  2. Select your Android app and click Test.
  3. Enter the BSIN of your test device (retrieve via ZetaClient.user.getCachedBsin()).
  4. 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_clicked event appears in ZMP reporting.
  • Check the notification channel: verify it matches the ZTNotificationChannel configuration.

Verifying notification channels

Use ADB to inspect registered notification channels:

adb shell dumpsys notification | grep -A 5 "your.package.name"

Testing in-app messages

  1. Create a test campaign in ZMP with channel "Mobile InApp Push".
  2. Target a segment that includes your test device's BSIN.
  3. Activate the campaign.
  4. Open the app and wait for the in-app message to appear.
  5. Verify lifecycle callbacks fire in your ZTInAppMessageLifeCycle implementation.

Testing app inbox

  1. Send an inbox message through a ZMP campaign.
  2. Call ZetaClient.inbox methods and verify messages appear in callbacks.
  3. Test mark-as-read, mark-as-deleted, and CTA click tracking.

Debug checklist

CheckHow to verify
SDK initializesLogcat shows initialization success
BSIN is assignedgetCachedBsin() returns a non-null value
Events reach ZMPSend a custom event, check ZMP event logs
Push token registeredLogcat shows FCM token forwarded to backend
Push receivedNotification appears on device
Delivery trackeddelivered event in ZMP reporting
Click trackedmessage_clicked event in ZMP reporting
Deep link worksTap notification, verify correct activity launches
In-app displaysMessage appears in foreground
Inbox populatedCallbacks return messages
Opt-out worksAfter opt-out, no events sent, local data cleared
Offline queueingDisable 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