What you’ll learn
- Understand what Formo and its SDK capture automatically
- Track referrers, referral codes, ads, UTM campaigns, and builder codes
- Understand first-touch vs. last-touch attribution
- Measure performance by source through wallet connects and transactions
- 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: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 Formo Captures Attribution Sources
The Formo SDK captures attribution context from landing URLs, browser referrers, and onchain transaction data. You do not need UTMs for every attribution method:Mobile deep links and install referrers
The React Native SDK parses UTM parameters and referral codes from deep and universal links. On Android, the optional Google Play Install Referrer integration connects the website or campaign that led to an install with the first app launch. Apple does not expose an equivalent install-referrer API, so iOS supports deep-link attribution but not SDK-only install attribution. See Deep link attribution and Web-to-mobile attribution.Part 3: How to Set Up UTM Tracking
UTM parameter basics
UTM parameters let you track where users come from:Where to add UTMs
Add UTM parameters to every link you control: Social media:You can use this free UTM link generator to generate UTM links.
UTM naming conventions
Use consistent naming to make analysis easier:- Lowercase only
- Underscores for spaces
- Include date/month for campaigns:
campaign_name_mmyy
Part 4: How to Set Up Referral Tracking
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 trace connect sessions, events, and users back to specific referral codes.
The Web SDK also recognizes referral, refcode, af, and referrer by default. If your program uses another convention, configure custom query parameter names or a URL path pattern; see Web SDK referrals.
Where to add referral codes
User-generated referral links:Referral naming conventions
Analyze referral performance
The Overview page has a dedicated referral chart, and the Users page and Wallet Profiles show you which referral code acquired each user. 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 5: Referrer Attribution
Formo automatically records the referring site when the browser sends it. Referrers are useful for links you do not control—such as editorial coverage, search results, community posts, or directory listings—where no UTM or referral code was added. By default, browsers may send only the referring origin. To capture the specific referring page URL, configure your site’sReferrer-Policy header. See Referrer URL tracking for the recommended setup and privacy tradeoffs.
Same-domain referrers are removed before channel classification so internal navigation does not appear as a new acquisition source. See Referrers for counting details.
Part 6: Ad Attribution
Ad platforms append click IDs to landing URLs. The Formo SDK captures supported IDs automatically and attributes the session and user to the acquiring network—even when an in-app browser does not provide a referrer. Keep auto-tagging enabled in your ad platforms. Add UTMs when you also want campaign, creative, or keyword detail; the click ID identifies the network while UTMs provide your naming taxonomy. Formo supports Google, Meta, Microsoft, TikTok, X, LinkedIn, and Reddit click IDs, plus paidutm_medium values without a known click ID. See Ad attribution for the complete parameter list, attribution behavior, and dashboard surfaces.
Part 7: Builder Code Attribution
Builder codes attribute EVM transactions directly to the app that built them by appending an ERC-8021 code to transaction calldata. Unlike referrers, referral codes, ads, and UTMs, builder codes describe transaction-level onchain provenance rather than the user’s landing source. Use builder codes when your app constructs transactions and you want durable attribution that survives wallets, RPC providers, and aggregators. Formo detects supported codes from transaction data and makes them available as breakdowns for wallets, transactions, volume, and revenue.Part 8: 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)
Which model to use?
Part 9: How to Analyze Attribution in Formo
View attribution in Overview
Go to Overview in the Formo Dashboard
Find the Channels, Referrers, Referrals, Ads, and UTM tabs
Select different units (users, volume, revenue)
utm_medium, and ad-platform click IDs. See the full channel classification table for how each of the 13 channels is detected.
Key metrics by source
For each acquisition source, the Channels, Referrers, Referrals, Ads, and UTM tabs show raw counts. Builder codes are available as a breakdown for onchain metrics:Create custom attribution charts
Beyond the built-in tabs, build custom charts to track attribution over time. Use Ask AI for quick answers, or the SQL editor for full control. See Charts for the full guide to creating, organizing, and sharing charts. Ask AI examples:“Compare wallet connects by utm_source for the last 30 days”
“Show me transactions and volume by utm_campaign this month”
“What are the top 5 first-touch sources for users who transacted?”
“Compare transactions by ad network and referral code”
“Which referrer or builder code generated the most transaction volume?”Attribution chart ideas:
Go to Dashboards, click Add Chart, and select the Funnel chart type
Add steps: Visit → Connect → Transaction
Add a breakdown dimension: Referrer, Referral, Ads, UTM Source/Medium/Campaign/Content/Term, Builder Codes, Device, Country, Browser, or OS
Compare conversion rates across each value
Calculate true ROI
For paid campaigns, calculate cost per conversion:Part 10: 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 referrer, referral code, ad network, or 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.
Assisted journey analysis
- Identify common multi-touch paths
- Ensure each touchpoint is optimized
- Don’t cut discovery channels just because another source received last-touch credit
Part 11: Advanced Attribution Tactics
Cross-channel attribution
Track users across marketing channels:- Use consistent UTM naming
- Track first-touch and last-touch separately
- Compare referral, referrer, ad, and UTM properties together
- 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
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
- Ad-platform auto-tagging enabled
-
Referrer-Policyconfigured if full referring URLs are needed - Builder codes added to app-built EVM transactions
- Deep-link capture reviewed for mobile apps
- Google Play Install Referrer module installed if Android install attribution is needed
- Consistent naming conventions
- Attribution dashboard created
- Weekly review of channel performance
Summary
You’ve learned how to:- Use automatic attribution capture from the web and mobile SDKs and Formo’s onchain data
- Set up controlled links with referral codes and UTM parameters
- Measure referrers and ad networks without relying on UTMs alone
- Attribute onchain activity with builder codes
- Compare first-touch and last-touch models across users and sessions
- Analyze and optimize sources through conversions, volume, revenue, and user quality
FAQ
Does Formo capture attribution parameters automatically?
Does Formo capture attribution parameters automatically?
What happens if a user visits from multiple sources before converting?
What happens if a user visits from multiple sources before converting?
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?
?ref=alice&utm_source=twitter&utm_medium=social. Both are captured independently.