Attribution
How AttributeHQ determines where your app installs come from.
The Attribution Waterfall
When a user installs your app, the SDK sends device information to the AttributeHQ server. The server runs a waterfall — a prioritized sequence of matching methods — to find the ad click that led to the install.
Install received
↓
1. Install Referrer match? (Android only, 100% confidence)
↓ No
2. Device ID match? (IDFA/GAID, 95-100% confidence)
↓ No
3. Fingerprint match? (IP+UA, 60%+ confidence required)
↓ No
4. Organic (no matching click)Matching Methods
1. Install Referrer (Android, Deterministic)
Confidence: 100%
The Google Play Install Referrer API passes the original click URL parameters directly to the app on first launch. This is the most reliable attribution method because:
- It’s not affected by Limit Ad Tracking settings
- The data comes directly from Google Play
- It contains the exact click parameters (campaign, media source, etc.)
Only available on Android via Google Play.
2. Device ID (IDFA/GAID, Deterministic)
Confidence: 95-100%
Matches the device’s advertising identifier from the install against identifiers stored from ad clicks:
- iOS: IDFA (Identifier for Advertisers) — requires ATT permission on iOS 14+
- Android: GAID (Google Advertising ID)
High confidence because it’s a direct device match. The 5% gap from 100% accounts for rare edge cases (shared devices, GAID reset between click and install).
3. Fingerprint (IP + User-Agent, Probabilistic)
Confidence: 60-80%
When device IDs are unavailable (user denied tracking, or web platform), the server generates a fingerprint from:
| Component | Weight | Description |
|---|---|---|
| IP address | 40% | Last octet anonymized for privacy |
| User-Agent | 30% | Normalized (browser versions removed) |
| Screen resolution | 10% | e.g., “1080x1920” |
| Timezone | 10% | e.g., “Africa/Lagos” |
| Language | 10% | e.g., “en-NG” |
The fingerprint from the install is compared against fingerprints from stored clicks. A minimum 60% confidence is required for a match.
4. Organic
No matching click found within the attribution window. The install is classified as organic (user found the app on their own).
Attribution Window
The server looks for matching clicks within a 7-day window. Clicks older than 7 days are ignored.
- Click records are stored in DynamoDB with a 7-day TTL
- Expired clicks are automatically cleaned up
Click-to-Install Time (CTIT) Validation
Installs that occur within 10 seconds of a click are flagged as potentially fraudulent (click injection) and rejected from attribution. This is a basic fraud protection measure.
Multi-Touch Attribution
By default, AttributeHQ uses last-touch attribution — the most recent click gets 100% credit. Three additional models are available:
| Model | Description |
|---|---|
| Last-touch (default) | 100% credit to the final click before install |
| First-touch | 100% credit to the first click in the journey |
| Linear | Equal credit split across all clicks |
| Time-decay | More credit to recent clicks, exponential decay |
Multi-touch models are calculated at query time (not at attribution time) and available via the analytics API:
GET /api/v1/analytics/attribution?model=linearHow Clicks Are Tracked
Ad clicks are tracked via the click endpoint:
https://api.attributehq.com/v1/clicks?app_id={id}&c={campaign}&pid={source}When a click arrives:
- Device fingerprint generated from IP + User-Agent
- Click stored to DynamoDB with TTL
- User redirected to app store
- Click archived to S3 data lake
Confidence Scores
| Match Type | Confidence | Meaning |
|---|---|---|
| Install Referrer | 100% | Exact match via Google Play |
| Device ID (exact) | 100% | Same IDFA/GAID on click and install |
| Device ID (probable) | 95% | Device ID match with minor differences |
| Fingerprint (strong) | 75-80% | All fingerprint components match |
| Fingerprint (moderate) | 60-74% | Most components match |
| Below threshold | — | Below 60% → classified as organic |