Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 29 additions & 31 deletions data/attribution.mdx
Original file line number Diff line number Diff line change
@@ -1,53 +1,50 @@
---
title: 'Attribution'
icon: magnifying-glass-chart
description: 'Learn why onchain attribution matters for sustainable growth and how Formo attributes conversions from first click to wallet transaction.'
iconType: solid
title: "How attribution works"
icon: "magnifying-glass-chart"
description: "Learn why onchain attribution matters for sustainable growth and how Formo attributes conversions from first click to wallet transaction."

Check warning on line 4 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L4

Use 'formo' instead of 'Formo'.
iconType: "solid"
---

### Overview

User acquisition is one of the biggest problems in crypto.
For an app to succeed, it must have **sustainable unit economics** when it comes to user acquisition.
The lifetime revenue of a user (LTV) should be greater than the cost to acquire them (CAC) at a healthy multiple.
User acquisition is one of the biggest problems in crypto. For an app to succeed, it must have **sustainable unit economics** when it comes to user acquisition. The lifetime revenue of a user (LTV) should be greater than the cost to acquire them (CAC) at a healthy multiple.

<Frame>
<img src="/images/intro0.png" alt="Formo" />
![Formo](/images/intro0.png)
</Frame>

Without accurate attribution, you are lost in the dark forest.
Attribution helps answer:
- Where did users come from?
Without accurate attribution, you are lost in the dark forest. Attribution helps answer:

- Where did users come from?
- What meaningful activity did users perform on my app?
- How well are users monetizing? How much revenue did I make? (ARPU, LTV)
- How long are users sticking around? (Retention, Churn)
- Is my ROI for an acquisition channel positive? (LTV > CAC)
- Is my ROI for an acquisition channel positive? (LTV \> CAC)

### Example

Attribution in web3 is *complex*.
Attribution in web3 is _complex_.

Consider the following example user journey for a DEX called FooSwap with many touchpoints:

Check warning on line 28 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L28

Did you really mean 'touchpoints'?

- A user sees a tweet thread about an app on X (*"referrer"*) clicks on a referral link
- The user visits the app's website (fooswap.com)
- A user sees a tweet thread about an app on X (_"referrer"_) clicks on a referral link
- The user visits the app's website (fooswap.com)
- The user visits the app (app.fooswap.com)
- The user connects their wallet on the app
- The user signs a token approval message
- The user starts a swap transaction but the wallet has insufficient gas
- The user abandons their transaction (*"dropoff"*)
- The user revisits the app from another channel on Farcaster (*"referrer"*)
- The user completes a swap transaction (*"conversion"*) emitting an onchain event
- The user abandons their transaction (_"dropoff"_)

Check warning on line 36 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L36

Did you really mean 'dropoff'?
- The user revisits the app from another channel on Farcaster (_"referrer"_)
- The user completes a swap transaction (_"conversion"_) emitting an onchain event

As you've seen in the above example, not everything you care about is onchain. In this example, two touchpoints contribute to the successful conversion: X and Farcaster. Using an [attribution model](/data/attribution#attribution-models), we can determine which touchpoint to credit for the conversion:

Check warning on line 40 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L40

Did you really mean 'touchpoints'?

Check warning on line 40 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L40

Did you really mean 'touchpoint'?

- Using the first-touch model, the complete conversion is attributed to X and the referral
- Using the last-touch model, the complete conversion is attributed to Farcaster

### How attribution works in Formo

Check warning on line 45 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L45

Use 'formo' instead of 'Formo'.

To understand the full user journey, **we must navigate two different worlds: offchain and onchain.**
It's imperative to trace the event sequence from initial engagement offchain to conversion onchain.
To understand the full user journey, **we must navigate two different worlds: offchain and onchain.** It's imperative to trace the event sequence from initial engagement offchain to conversion onchain.

Here's a high-level overview of how it works:

Expand Down Expand Up @@ -96,28 +93,29 @@
deactivate Formo
```

Formo solves two core functions: attribution and identity.

Check warning on line 96 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L96

Use 'formo' instead of 'Formo'.
- **Attribution** refers to [event-based analytics](/data/events/overview) about where, how, and when users interact with links, sites, and apps (touchpoint trackers, UTM & referral parameters, events, ingestion).

- **Attribution** refers to [event-based analytics](/data/events/overview) about where, how, and when users interact with links, sites, and apps (touchpoint trackers, UTM & referral parameters, events, ingestion).

Check warning on line 98 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L98

Did you really mean 'touchpoint'?
- **Identity** refers to the resolution of user activity into a single [unified profile](/features/wallet-intelligence/wallet-profiles) (sessions, demographics, wallets, onchain data).

Spend less time building analytics and leave the complex data engineering to us.

### Attribution models

Formo helps you understand the impact of touchpoints in each user journey using single-touch attribution, crediting either the first or the last touchpoint within the lookback window.

Check warning on line 105 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L105

Use 'formo' instead of 'Formo'.

Check warning on line 105 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L105

Did you really mean 'touchpoints'?

Check warning on line 105 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L105

Did you really mean 'touchpoint'?

Check warning on line 105 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L105

Did you really mean 'lookback'?

| Model | Description |
| :---------- | :--------------------------------------------------------------------------------------------------------- |
| First Touch | Gives 100% credit to the first touchpoint within the attribution lookback window |
| Last Touch | Gives 100% credit to the last touchpoint within the attribution lookback window |
| Model | Description |
| :-- | :-- |
| First Touch | Gives 100% credit to the first touchpoint within the attribution lookback window |

Check warning on line 109 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L109

Did you really mean 'touchpoint'?

Check warning on line 109 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L109

Did you really mean 'lookback'?
| Last Touch | Gives 100% credit to the last touchpoint within the attribution lookback window |

Check warning on line 110 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L110

Did you really mean 'touchpoint'?

Check warning on line 110 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L110

Did you really mean 'lookback'?

> Looking for more attribution models? [Let us know](mailto:support@formo.so).

### Glossary

| Term | Definition |
| :--------------------- | :----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| User journey | Consists of touchpoints and the conversion event. It is possible for a conversion event to have no corresponding touchpoints (eg. utm parameters). In this case we consider it a 'direct' conversion |
| Conversion | The primary event you're interested in attributing. Typically a volume or revenue generating conversion event such as "Mint" or "Swap" or "Stake". |
| Touchpoint | Actions (events) a user's taken or exposed to along the journey before doing the conversion event. [Eg. does event A → B → C → D (conversion event) in a 7 day period; For a lookback window of 7 days, A, B, C are all considered touchpoints] |
| Lookback window | The time window where a user's events with this attribution property are counted towards the calculation. The window ends when the conversion metric happens. |
| Term | Definition |
| :-- | :-- |
| User journey | Consists of touchpoints and the conversion event. It is possible for a conversion event to have no corresponding touchpoints (eg. utm parameters). In this case we consider it a 'direct' conversion |

Check warning on line 118 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L118

Did you really mean 'touchpoints'?

Check warning on line 118 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L118

Did you really mean 'touchpoints'?

Check warning on line 118 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L118

Did you really mean 'eg'?

Check warning on line 118 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L118

Did you really mean 'utm'?
| Conversion | The primary event you're interested in attributing. Typically a volume or revenue generating conversion event such as "Mint" or "Swap" or "Stake". |
| Touchpoint | Actions (events) a user's taken or exposed to along the journey before doing the conversion event. \[Eg. does event A → B → C → D (conversion event) in a 7 day period; For a lookback window of 7 days, A, B, C are all considered touchpoints\] |

Check warning on line 120 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L120

Did you really mean 'Touchpoint'?

Check warning on line 120 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L120

Did you really mean 'lookback'?

Check warning on line 120 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L120

Did you really mean 'touchpoints'?
| Lookback window | The time window where a user's events with this attribution property are counted towards the calculation. The window ends when the conversion metric happens. |

Check warning on line 121 in data/attribution.mdx

View check run for this annotation

Mintlify / Mintlify Validation (formo) - vale-spellcheck

data/attribution.mdx#L121

Did you really mean 'Lookback'?