Skip to content
Docs

Mobile

Mobile apps

Register an app, choose attribution windows and options, connect partners, and send installs, sessions and in-app events.

Metrixed is also a mobile measurement platform. An app is the unit that installs and in-app events belong to. Installs are attributed to the same partners and offers as web traffic, so mobile and web share payouts, caps, fraud, reports and billing.

Creating an app

Apps in the admin portal, or POST /apps (apps reference). Required: name, platform (ios, android or web) and bundle_id (iOS bundle id, Android package, or web origin). The main settings:

SettingMeaning
offer_id, advertiser_idThe default offer installs are attributed under, and the advertiser who owns the app.
click_window_hoursHow long after a click an install can still be credited (1 to 2160).
view_window_hoursView-through window (0 to 168).
probabilistic_enabled, probabilistic_window_hours, probabilistic_ios_att_deniedIP and user agent fingerprint matching (up to 24 h). Off by default; never used for iOS devices that denied tracking unless you enable it explicitly.
click_injection_guardReject installs whose click came after the install began.
reinstall_exclusion_daysA device that reinstalls within this period is a reinstall, not a new install.
reattribution_enabled, reattribution_inactivity_days, reattribution_window_daysRe-attribute a returning user after inactivity.
reengagement_enabled, reengagement_window_daysCredit a re-engagement when an inactive installed user returns via a link.
require_signatureRequire HMAC-signed SDK requests (strongly recommended in production).
uninstall_tracking, uninstall_push_providerSilent-push uninstall measurement with fcm or apns.
validation_rulesPer-event rules: required parameters, revenue required, min/max value, allowed currencies.
san_config, preinstall_configSelf-attributing network claims and preload campaigns, mapped to partners and offers.

Connect ad networks and publishers with POST /apps/{id}/partners; their tracking links use the app style, https://<domain>/a/{app_hash}/{link_token}. GET /apps/{id}/sdk-config returns the values an integrator needs (app token, endpoints), and POST /apps/{id}/rotate-secret rotates the SDK signing secret; the previous secret keeps verifying during the rollout.

Sending data

SDKs call these endpoints on the ingest host, all with POST:

EndpointPurpose
/sdk/v1/install, /v1/installsFirst open: runs the install attribution ladder.
/sdk/v1/session, /v1/sessionsApp sessions (used for re-engagement and retention).
/sdk/v1/event, /v1/eventsIn-app events with optional revenue, dedupe id, callback and partner parameters.
/v1/ad_revenueAd impression revenue from mediation.
/v1/consentConsent changes (ATT, TCF, GPP, Google DMA, third-party sharing).
/v1/uninstallsUninstall signals from push receipts.
/v1/erasePrivacy erasure for a device ("forget me").
GET /sdk/v1/configPer-app config: platform, currency, deep-link switches, SKAN conversion-value schema, endpoints.
POST /sdk/v1/deeplinkDeferred deep-link lookup.

Requests carry the app token (X-Dt-App-Token header or app_token in the body). With require_signature they must also carry X-Dt-Timestamp and X-Dt-Signature, where the signature is the lowercase hex HMAC-SHA256 of timestamp + "." + exact request body keyed with the app's SDK secret. The timestamp must be within five minutes of the server clock. Conformance vectors for every SDK are in sdks/test-vectors/signing.json.

Server-to-server events without an SDK use the same endpoints with an app token, or POST /v1/events with an API key.

Device identifiers are hashed on arrival; raw ids are forwarded to partners only when the consent object allows it. sandbox environment traffic is flagged on every payload and excluded from billing.

Reports and devices

Mobile reports (installs, events, revenue, cohorts, retention) are under Insights, Mobile reports and /reports/mobile. Insights, Device inspector looks up a device id and shows its attribution, events and consent, with a "forget device" action (POST /mobile/devices/{id}/forget). Erase requests are tracked under /mobile/erase-requests.

Postbacks to partners

Installs and in-app events fire the partner's postbacks through the same dispatcher, retry ladder and logs as web conversions, so a network can receive install and event callbacks in its own format. See postbacks.