Analytics
Installing the SDK is enough to start collecting link data. Clicks, installs, and attribution are tracked without any extra calls. You read the results in the Dashboard views Overview, Links, Events, and Smart banners, and you can add history from another attribution provider in Imports.
Automatic tracking
Section titled “Automatic tracking”The click and install flow produces these metrics on its own:
- Clicks — counted from recorded click beacons.
- Installs via link — installs attributed to a matched click.
- Fallbacks — clicks that ended on non-mobile fallback flow.
- Organic vs Non-Organic installs — based on whether install was matched to a click.
Dashboard views
Section titled “Dashboard views”Overview, Links, and Events share the same filters, that is selected app, platform, and date range, so numbers stay comparable when you move between them. Smart banners shares the app and the date range. Imports lists import jobs, filtered by app and status.
Analytics can also be delivered to your own endpoint on a schedule. See Webhooks.
Overview
Section titled “Overview”Overview summarizes performance on one page. It shows four things:
- link trend
- organic vs non-organic install attribution
- top event distribution
- retention comparison
For an app with imported installs, Overview also shows an Imported installs card. See Imports.
For cohort and N-day methodology, see Retention.
Link-level diagnostics: day-by-day link stats, plus a breakdown by path and query parameter. Use it to compare campaign routes and see where clicks and matches come from.
A filter bar narrows which clicks are counted, by Path, Param name, Param value, or Param key = value. Each filter uses is, is not, contains, or starts with. With is not, the matching clicks are dropped, and clicks that do not carry the parameter are kept. For the matching rules, see Filtering link analytics.
Smart banner taps are recorded like any other click. They carry utm_source=smart_banner, a utm_campaign of your choosing, and a dtb parameter identifying the banner, so all three appear in the parameter breakdown.
The same figures are available over HTTP, with pagination and filtering, through Export Analytics.
For the redirect and matching behavior behind these metrics, see Click Handling & Redirect Flow.
Events
Section titled “Events”SDK event activity in the selected window:
- total event count
- timeline trends per event name
- drill-down tables for event totals and individual occurrences
Smart banners
Section titled “Smart banners”Results of your smart banners for the selected app and date range:
- Smart banner funnel — Impressions, Taps, Installs from banner, and Already installed opens, with the tap and install rates, and a funnel from Banner shown to Tapped to Opened the app.
- Performance by configuration — impressions, taps, and tap rate by Source, Layout, Country, Language, or Desktop mode.
- Impressions & taps over time — daily impressions and taps.
- Per banner — impressions, taps, tap rate, and installs for each banner.
The view has no platform filter, because impressions are recorded per banner and day without a platform. It counts whole UTC days, from the start of the first day to the end of the last, so its taps can exceed the banner clicks on Links for the same range. Deleted banners are not counted. Available on Starter and above.
Imports
Section titled “Imports”Imports adds install and in-app event history exported from AppsFlyer to an app’s analytics. It carries a Beta badge and is available on every plan. Only an Owner or Admin can open it, and the sidebar does not show it to a Member.
-
Click New import, then pick the app and the report, Installs or In-app events.
-
Confirm the timezone the file was exported in.
AppsFlyer puts it in the export filename. Detour reads the filename and warns when it does not match the report or the timezone you chose. A wrong timezone shifts every timestamp.
-
Choose the CSV file and click Create import & start upload.
Split a large export into shorter date ranges. Rows that are already imported are dropped as duplicates, so the ranges can overlap.
-
Review the rows and click Approve & import.
The review shows how many rows are imported, left out, or skipped, and the Errors CSV lists the rows left out or skipped. Nothing reaches analytics before you approve. Cancel import discards the job instead.
Undo import on a finished import removes exactly the rows it added. An undo is final. To import the file again, upload it again.
Imported data appears in the other views:
-
Installs — Overview shows an Imported installs card.
The card breaks the installs in the date range down by Network, Campaign, Country, and other attribution fields. It also splits them into After a click, After an impression, and Organic. Only an install after a click also counts in Clicks and Installs via link, on the Link stats card, on Links, and in link exports. Every imported install counts in organic vs non-organic installs, where an install after an impression is non-organic. An imported install without a link path drops out of Links while a filter is active.
-
In-app events — the event views and event exports include them.
Each imported event name starts with
af_, so it stays separate from the events the SDK logs.
Imported data never counts toward your monthly click limit. Detour does not match imported devices to the devices that the SDK reports, so a device that appears in both for the same period is counted twice in device counts.
Organic vs non-organic
Section titled “Organic vs non-organic”Every install is labeled by where it came from, which is what makes campaign effectiveness measurable:
- Non-organic — the install was attributed to a specific click on a Detour link.
- Organic — no prior link interaction was detected.
Manual event tracking
Section titled “Manual event tracking”Automatic tracking covers the link funnel. To track later actions, for example sign-ups or purchases, log events yourself through the SDK’s analytics API.
If you are still setting up the integration, start with Getting Started with Detour.
import { DetourAnalytics, DetourEventNames } from "@swmansion/react-native-detour";
DetourAnalytics.logEvent(DetourEventNames.Login);DetourAnalytics.logEvent(DetourEventNames.Purchase, { value: 9.99, currency: "USD" });DetourAnalytics.logRetention("day_7_return");import Detour
DetourAnalytics.logEvent(.addToCart, data: ["sku": "abc"])DetourAnalytics.logEvent("purchase", data: ["value": 9.99, "currency": "USD"])DetourAnalytics.logRetention("day_7_return")import com.swmansion.detour.analytics.DetourAnalyticsimport com.swmansion.detour.analytics.DetourEventNames
DetourAnalytics.logEvent(DetourEventNames.Login)DetourAnalytics.logEvent(DetourEventNames.Purchase, mapOf("value" to 9.99))DetourAnalytics.logRetention("day_7_return")import 'package:detour_flutter_plugin/detour_flutter_plugin.dart';
final detour = DetourService();await detour.start( const DetourConfig( apiKey: "<REPLACE_WITH_YOUR_API_KEY>", appID: "<REPLACE_WITH_APP_ID_FROM_PLATFORM>", ),);
await detour.logEvent(DetourEventName.login);await detour.logEvent(DetourEventName.purchase, data: {"value": 9.99});await detour.logRetention("day_7_return");Retention
Section titled “Retention”Detour retention is event-based. It is calculated from SDK calls to logRetention("<event_name>"), grouped by retention event name.
Data model
Section titled “Data model”- Retention events are stored in analytics as a dedicated retention stream.
- They are tied to event name, device, time, and platform.
- Retention data is not mixed into regular event charts like Top Events and Events timeline.
Cohorts and N-day logic
Section titled “Cohorts and N-day logic”- A cohort is the group of devices that triggered a given retention event for the first time in the selected date range.
Day 0is the first occurrence day, and later points (Day 1,Day 2, …) show return behavior on following days.- Retention is tracked up to 30 days (
Day 0toDay 30). - Future dates are excluded to avoid artificial 0% drops on incomplete days.
- Platform filtering works the same way as in other analytics views.
Metrics
Section titled “Metrics”Retention reporting shows:
- how many cohort devices returned on a given day,
- how large the original cohort was,
- and the resulting retention percentage.
When multiple cohorts are combined on one chart line, Detour uses weighted aggregation so larger cohorts have proportionally higher impact.