Tracking Request Flow

Prev Next

This page describes how the Mapp Intelligence iOS SDK collects tracking events in your app, buffers them locally, and delivers them to the Mapp Intelligence servers. Use it as a mental model when you debug delivery, configure batch support, or reason about data freshness.

1. Data collection

Your app calls one of the SDK's track… methods (page, action, media, form, exception, URL). The SDK builds a request from the supplied parameters together with the default parameters it adds automatically.

  • Tracking API: events are captured through the SDK's typed event objects (MIPageViewEvent, MIActionEvent, MIMediaEvent, …) or via the legacy query parameter calls.

  • Local buffering: every captured request is stored in the SDK's local SQLite database before any network call. Nothing is lost when the app is backgrounded or the device goes offline.

2. Data delivery

Buffered requests are sent to Mapp Intelligence at regular intervals, depending on your configuration.

  • Scheduled intervals: the SDK sends data every requestInterval seconds (default 15 minutes, minimum ~5 seconds, maximum 60 minutes). See Configure Global Tracking.

  • App lifecycle triggers: the SDK additionally flushes the queue on app open and app close.

  • Background sending: when enableBackgroundSendout = true (and Apple has approved background usage for your app), the SDK can also deliver while the app is in the background.

  • Network awareness: if the device is offline, requests stay in the local database. The SDK retries automatically once a connection is available.

  • Batch support: when batchSupportEnabled = true, requests are grouped into batches of up to batchSupportSize (default 5000, max 10000) before delivery. See Send Tracking Data in Batches.

3. Data evaluation

Once received by Mapp's servers, requests are validated, filtered (see Character Limits and Data Types), and processed.

  • Live Analytics: if your account has access, recent data is visible in near real time for validation and quick reporting.

  • Standard reporting delay: standard reports are typically updated every 60 minutes. If you do not see data immediately, allow time for processing.

If your integration appears correct but no data shows up, walk through No Tracking Data Visible.

Related: Configure Global Tracking, Send Tracking Data in Batches, No Tracking Data Visible.