Skip to main content
This guide shows you how to verify your Permutive Android SDK integration is working correctly by checking debug logs.
Prerequisites:
  • SDK installed and initialized
  • adb (Android Debug Bridge) installed on your computer
  • Device configured for developer mode

Enable Debug Logging

Debug logging is disabled by default. Enable it using one of these methods:

What to Verify

1

SDK Startup

When the SDK starts successfully, you should see:
D/Permutive(15399): Starting Permutive v1.10.0
D/Permutive(15399): Fetched configuration information
This confirms SDK initialized successfully and credentials are correct.
If you see an error:
D/Permutive(15124): Error fetching configuration - please check that your workspace id & API key is correct
Check your Workspace ID, API Key, and ensure Android is enabled for your workspace.
2

Identity Tracking

When identity is set, you should see:
D/Permutive(15859): Identified user with aliases: aaid, default
Common aliases:
  • aaid - Android Advertising ID (if using AaidAliasProvider)
  • default - Default anonymous ID
  • user_id - Custom user ID
  • email_sha256 - Hashed email
3

Event Tracking

When events are tracked and accepted:
D/Permutive(15859): Published events with names (Pageview, SegmentEntry) (Accepted: 4 / 4)
All events accepted = Your integration is working correctly!
If events are rejected, you’ll see schema validation errors with details about what needs to be fixed.
4

Ad Targeting (if applicable)

When ads request targeting data:
D/Permutive: Permutive segments appended to Google Ad request: seg_123, seg_456, seg_789
This confirms cohort IDs are being added to ad requests.

PageTracker Lifecycle

If you’re using the PageTracker API, verify this sequence in logs:
Page started (id: abc123):
title: Article Title
url: https://example.com/article
referrer: https://example.com/home
properties: {article_id=12345, category=technology}
Logged when pageTracker = permutive.trackPage(...) is called.
Page paused (id: abc123)
Logged when pageTracker.pause() is called (typically in onPause()).
Page resumed (id: abc123)
Logged when pageTracker.resume() is called (typically in onResume()).
Page stopped (id: abc123)
Logged when pageTracker.close() is called (typically in onDestroy()).
Page percentage viewed updated (id: abc123) to 75%
Logged when pageTracker.updatePercentageViewed() is called.

Schema Validation Errors

If events are rejected due to schema violations:
D/Permutive(16644): Error publishing event with name "Pageview":
D/Permutive(16644): Code: 1007
D/Permutive(16644): Status: BadRequest
D/Permutive(16644): Cause: Schema validation failed with reason(s):
  [#: extraneous key [publishingDate] is not permitted]
  [#/article/categories: expected type: JSONArray, found: String]
How to fix:
  1. Unknown property - Remove property or add it to your schema in the dashboard
  2. Type mismatch - Fix the property type in your code:
// Wrong - String instead of Array
EventProperties.from("categories" to "Technology")

// Correct - Array type
EventProperties.from("categories" to listOf("Technology", "Mobile"))
Events with schema violations are rejected by servers and will not be processed. Always fix schema issues before releasing your app.

Common Verification Issues

Solutions:
  1. Verify logging is enabled: adb shell setprop log.tag.Permutive VERBOSE
  2. Check adb is connected: adb devices
  3. Restart logcat: adb logcat -c then adb logcat -s Permutive
  4. Verify SDK is initialized
Causes:
  1. Dashboard requires time to process events (5-10 minutes)
  2. Event filtering in dashboard
  3. Date/time range in dashboard
Solutions:
  1. Wait 10 minutes and refresh dashboard
  2. Check dashboard filters
  3. Verify date/time range includes now
Causes:
  1. Clearing app data between sessions
  2. Not setting identity on initialization
  3. Using test/emulator that resets
Solutions:
  1. Don’t clear app data during testing
  2. Set identity or use AAID provider at initialization
  3. Test on physical device

Verification Checklist

Use this checklist to verify your integration:

Basic Setup

  • SDK starts successfully (“Starting Permutive v1.10.0”)
  • Configuration fetched without errors
  • Workspace ID and API Key are correct

Identity

  • Identity log appears on first launch
  • Correct aliases are shown
  • Identity persists across app restarts

Event Tracking

  • Events are being published
  • All events show “Accepted” (not rejected)
  • No schema validation errors
  • Correct event names (case-sensitive)

PageTracker (if using)

  • “Page started” log appears
  • “Page paused” when activity pauses
  • “Page resumed” when activity resumes
  • “Page stopped” when activity destroyed

Ad Targeting (if using)

  • Segments appended to ad requests
  • Targeting log appears when ads load

Dashboard

  • Events appearing in dashboard (may take a few minutes)
  • User cohorts showing (after qualifying events)

Next Steps

Once verification is complete:
  1. Remove debug logging from production builds
  2. Test all user flows that include tracking
  3. Verify dashboard data after 24 hours of live usage
  4. Monitor for errors in production logs