Understand which marketing channels actually drive onchain conversions, not just clicks. This guide shows you how to set up attribution tracking, compare models, and optimize your marketing spend.Documentation Index
Fetch the complete documentation index at: https://docs.formo.so/llms.txt
Use this file to discover all available pages before exploring further.
What you’ll learn
- Set up UTM tracking for all marketing channels
- Understand first-touch vs. last-touch attribution
- Measure true ROI by channel (to the transaction level)
- Optimize budget allocation based on conversion data
Part 1: The Attribution Challenge in Crypto
Why traditional attribution fails
Traditional analytics measure clicks and visits. For crypto apps, this misses what matters:| What traditional tools measure | What actually matters |
|---|---|
| Page views | Wallet connects |
| Time on site | Transactions completed |
| Form submissions | Volume/revenue generated |
| Bounce rate | User quality (net worth, labels) |
The crypto user journey
A typical onchain user touches multiple channels:- Discovery: Sees your tweet, ad, or mention
- Research: Reads about you on Discord, docs, or DeFiLlama
- First visit: Lands on your site (often without converting)
- Return visit: Comes back from a different source
- Conversion: Connects wallet and transacts
Part 2: How to Set Up UTM Tracking
UTM parameter basics
UTM parameters let you track where users come from:| Parameter | Purpose | Examples |
|---|---|---|
utm_source | The platform | twitter, discord, newsletter, defillama |
utm_medium | The channel type | social, email, paid, referral |
utm_campaign | The campaign name | launch_2024, airdrop_promo, partnership_xyz |
utm_content | The creative variant | banner_a, thread_1, video_ad |
utm_term | Keywords (for paid) | defi, swap, yield |
Where to add UTMs
Add UTM parameters to every link you control: Social media:UTM naming conventions
Use consistent naming to make analysis easier:| Bad | Good |
|---|---|
twitter, Twitter, tw | Always twitter |
paid ad, paid_ad, paidAd | Always paid |
Launch, launch2024, jan-launch | launch_2024_jan |
- Lowercase only
- Underscores for spaces
- Include date/month for campaigns:
campaign_name_mmyy
Part 3: How to Set Up Referral Tracking
Referral programs are a powerful growth channel for crypto apps. Formo automatically captures referral codes alongside UTM parameters.Referral code basics
Add aref parameter to your referral links:
ref parameter, Formo captures it and associates it with the user’s session. You can then attribute wallet connects and transactions back to the referrer.
Where to add referral codes
User-generated referral links:Referral naming conventions
| Bad | Good |
|---|---|
Mixed case (Alice, alice, ALICE) | Always lowercase (alice) |
Spaces or special characters (my ref) | Underscores only (my_ref) |
Generic names (partner1) | Descriptive names (uniswap_collab) |
Analyze referral performance
Use Ask AI or the Explorer to query referral data:“Show me wallet connects and transactions grouped by ref parameter for the last 30 days”
Part 4: Understand Attribution Models
Formo supports multiple attribution models. Each gives credit differently.First-touch attribution
How it works: 100% credit to the first channel that introduced the user. Best for: Understanding discovery channels. Example:- User finds you via Twitter (first touch)
- Returns via Discord link
- Converts via direct visit
Last-touch attribution
How it works: 100% credit to the last channel before conversion. Best for: Understanding what drives final conversions. Example:- User finds you via Twitter
- Returns via Discord link
- Converts via direct visit (last touch)
Linear attribution
How it works: Credit split equally across all touchpoints. Best for: Valuing the entire journey. Example:- User finds you via Twitter
- Returns via Discord link
- Converts via direct visit
Which model to use?
| Goal | Model | Why |
|---|---|---|
| Grow awareness | First-touch | Shows which channels introduce new users |
| Optimize conversions | Last-touch | Shows what pushes users to convert |
| Balanced view | Linear | Values the full journey |
Part 5: How to Analyze Attribution in Formo
View attribution in Overview
Key metrics by source
For each traffic source, track:| Metric | What it tells you |
|---|---|
| Visitors | Reach/awareness |
| Wallet connects | Engagement quality |
| Transactions | Conversion performance |
| Volume | Revenue contribution |
| Connect rate | Visitor → Wallet conversion |
| Transaction rate | Wallet → Transaction conversion |
Calculate true ROI
For paid campaigns, calculate cost per conversion:| Channel | Spend | Transactions | Cost/Transaction |
|---|---|---|---|
| Influencer | $5,000 | 100 | $50 |
| Discord Ads | $2,000 | 80 | $25 |
| Twitter Ads | $3,000 | 150 | $20 |
Part 6: How to Create Attribution Reports
Using Ask AI for attribution analysis
Get quick attribution insights with Ask AI (click Ask AI in the sidebar): Channel comparison:“Compare wallet connects by utm_source for the last 30 days”Campaign performance:
“Show me transactions and volume by utm_campaign this month”First vs last touch:
“What are the top 5 first-touch sources for users who transacted?”ROI analysis:
“Which utm_source has the highest transaction volume per visitor?”
Build an attribution dashboard
Create a dedicated attribution dashboard:| Chart | Query |
|---|---|
| Visitors by Source | Daily visitors grouped by utm_source |
| Conversion by Source | Transaction rate by first-touch source |
| Revenue by Campaign | Volume grouped by utm_campaign |
| Source Trend | Weekly wallet connects by top 5 sources |
Attribution funnel
Create funnels filtered by source:Part 7: How to Optimize Your Marketing
Identify your best channels
From your attribution data, categorize channels: High-volume, high-conversion:- Scale these immediately
- Allocate more budget
- Test similar channels
- Improve landing pages
- Refine targeting
- Test different messaging
- Increase investment
- Find ways to scale
- Understand what makes them work
- Reduce or cut spend
- Test improvements before continuing
- Consider audience mismatch
Optimize by user quality
Don’t just measure conversions. Measure user quality:- Filter users by UTM source
- Compare average net worth by source
- Compare retention by source
- Compare volume per user by source
Twitter drives more users, but Discord users have 3x higher average net worth and 2x better retention.
Multi-touch optimization
If using linear attribution:- Identify common multi-touch paths
- Ensure each touchpoint is optimized
- Don’t cut channels that assist conversions
Part 8: Advanced Attribution Tactics
Cross-channel attribution
Track users across marketing channels:- Use consistent UTM naming
- Track first-touch and last-touch separately
- Analyze common paths with Flows
Cohort-based attribution
Compare user quality by acquisition cohort:- Create segments by first-touch source
- Measure retention for each segment
- Calculate LTV by acquisition source
| Source | 30-day Retention | Avg LTV |
|---|---|---|
| 15% | $50 | |
| Discord | 25% | $120 |
| DeFiLlama | 35% | $200 |
Attribution checklist
- UTM parameters on all social links
- UTM parameters on all email links
- UTM parameters on all partner links
- UTM parameters on all paid ads
- Referral codes on all partner and influencer links
- Consistent naming conventions
- Attribution dashboard created
- Weekly review of channel performance
Summary
You’ve learned how to:- Set up UTM tracking across all marketing channels
- Set up referral tracking with ref codes
- Understand attribution models and when to use each
- Analyze attribution in Formo with Overview
- Calculate true ROI including conversion and user quality
- Optimize budget allocation based on data
Next Steps
- Key Metrics: Deep dive on traffic analysis.
- Build Funnels: Build conversion funnels by source.
- Segment Wallets: Target high-value user segments.
- Attribution Methodology: Technical attribution details.
FAQ
Does Formo capture UTM parameters automatically?
Does Formo capture UTM parameters automatically?
Yes. When a user lands on your app with UTM parameters in the URL, Formo captures them automatically and associates them with the user’s session and wallet.
What happens if a user visits from multiple sources before converting?
What happens if a user visits from multiple sources before converting?
Formo records both first-touch and last-touch attribution. You can view either model in the Overview page to understand the full user journey.
Can I use both UTM parameters and ref codes on the same link?
Can I use both UTM parameters and ref codes on the same link?
Yes. Combine them for full attribution:
?ref=alice&utm_source=twitter&utm_medium=social. Both are captured independently.