Attribution Unity

How to Set Up Install Attribution for Unity Games

Most game studios know how many installs they're getting. Very few know where those installs come from. Here's a practical guide to install attribution -- what it is, why it matters, and how to set it up without an enterprise MMP contract.

~7 min read

What is install attribution?

Install attribution answers one question: where did this install come from?

When someone installs your game, attribution tells you whether they came from a Facebook ad, a Google Play search, a friend's referral link, a cross-promotion in your other game, or just found you organically. Without it, you're spending money on user acquisition with no way to know what's working.

Think of it as Google Analytics for installs. Except instead of tracking pageviews, you're tracking the full journey from ad click (or link tap) to app install to first purchase.

Why most Unity studios don't have it

Attribution has historically been an enterprise problem with enterprise pricing. The traditional approach looks like this:

  1. Sign a contract with an MMP (Mobile Measurement Partner) like AppsFlyer or Adjust
  2. Integrate their SDK into your Unity project
  3. Configure postback URLs for every ad network you use
  4. Pay per attributed install, often with minimums in the thousands per month

For a studio with 2 games and a modest ad budget, this is overkill. You end up paying more for measurement than you spend on some of your ad campaigns. So most indie and mid-size studios just... don't do attribution. They look at install counts in the Play Console, compare them loosely to ad spend, and hope for the best.

This is a problem because without attribution, you can't answer basic questions:

  • Which ad campaigns are profitable and which are burning money?
  • Are your referral links actually driving installs?
  • When you cross-promote Game B inside Game A, does anyone install?
  • What's your blended ROAS across all channels?
  • Which installs turn into paying players?

How install attribution works (the basics)

Attribution works by matching an action before the install (a click) with the install event itself. The flow looks like this:

  1. User clicks a tracked link -- This could be an ad, a referral link, a cross-promo banner, or any URL with tracking parameters.
  2. Click is recorded -- The attribution system logs the click with a timestamp, device identifiers (where available), and campaign metadata.
  3. User installs the app -- When the app first opens, the SDK checks in with the attribution server.
  4. Match is made -- The system matches the install to the earlier click using device IDs, Google's install referrer, Apple's SKAN framework, or probabilistic fingerprinting.
  5. Attribution is recorded -- The install is credited to the right campaign, channel, or referral source.

Android attribution

On Android, attribution is relatively straightforward. Google Play provides an install referrer API that passes campaign parameters from the click through to the app at install time. This is deterministic -- it's a direct match, not a guess. When you use tracked links (like BoostLinks), the referrer data is passed automatically.

iOS attribution (SKAN)

iOS is more complex. Apple's SKAdNetwork (SKAN) framework provides privacy-preserving attribution. Instead of passing user-level data, SKAN sends anonymized postbacks to ad networks with conversion values. This gives you campaign-level attribution without exposing individual user data.

SKAN has limitations -- delayed reporting (24-48 hours), limited conversion value bits, and no real-time data. But it's what Apple provides, and any attribution solution you use needs to support it.

What you need for attribution in a Unity game

Here's the practical checklist:

1. An attribution SDK

You need something in your Unity project that reports install events to an attribution server. This SDK does two things: sends the install event with device context, and (on Android) reads the install referrer.

2. Tracked links for every channel

Every touchpoint that could drive an install needs a tracked link with campaign parameters. This includes:

  • Ad campaigns -- Each ad set or creative should have its own tracked link so you can measure performance at the campaign level.
  • Referral links -- Player invite links that credit the referring player when a friend installs.
  • Cross-promotion -- Links in Game A that promote Game B, with attribution to measure conversion.
  • Social/organic -- Links shared on social media, Discord, Reddit, etc.

3. Postback configuration for ad networks

When an install is attributed to an ad campaign, the attribution system sends a postback (server-to-server callback) to the ad network. This is how Facebook, Google Ads, Unity Ads, and others optimize their algorithms -- they need to know which impressions led to installs. Without postbacks configured, your ad networks are flying blind.

4. Revenue events

Attribution is only half the picture if you stop at installs. The real question is: which channels bring paying players? Configure your SDK to report IAP events with revenue amounts. This lets you calculate LTV (lifetime value) and ROAS (return on ad spend) per channel -- the metrics that actually determine whether a campaign is profitable.

Setting it up with BoostOps

Here's how attribution works in BoostOps, step by step:

Step 1: Create your app in BoostOps

Sign up (free tier includes 2,001 attributed installs/month) and add your game. Connect your app store accounts so BoostOps can pull install and revenue data.

Step 2: Integrate the Unity SDK

Add the BoostOps Unity SDK to your project. The SDK handles install reporting, referrer reading (Android), and SKAN registration (iOS). Integration is a few lines of code in your initialization script.

Step 3: Create tracked links

Create BoostLinks for each campaign, referral flow, or cross-promotion. Each link gets its own campaign parameters and analytics. You can create them in the dashboard or programmatically via the REST API.

Step 4: Configure ad network postbacks

In the BoostOps dashboard, set up postback URLs for each ad network you use. BoostOps supports Apple Search Ads, Google Ads, Facebook Ads, Unity Ads, and others. This is a one-time configuration per network.

Step 5: Start measuring

Once installs start flowing, you'll see attribution data in the dashboard: installs by channel, organic vs. paid split, campaign-level performance, and (once revenue events are configured) LTV and ROAS by source.

What to measure once you have attribution

With attribution running, focus on these metrics:

  • Cost per install (CPI) by channel -- How much are you paying for each install from Facebook vs. Google vs. Unity Ads? Are any channels dramatically more expensive?
  • Organic vs. paid ratio -- A healthy game has a significant organic install base. If 95% of your installs are paid, your organic discoverability needs work.
  • ROAS by campaign -- Return on ad spend. If you spend $100 on a Facebook campaign and the attributed installs generate $150 in IAP revenue, your ROAS is 1.5x. Anything below 1.0x is losing money.
  • LTV by source -- Lifetime value of players from each channel. A channel with expensive installs might still be profitable if those players spend more over time.
  • Referral conversion rate -- What percentage of referral link clicks convert to installs? If it's low, your referral flow or incentive might need work.
  • Cross-promo effectiveness -- When you promote Game B to Game A's players, what's the install rate and how does LTV compare to paid installs?

Common mistakes

  • Not tracking organic installs -- Attribution isn't just for paid campaigns. Tag your organic touchpoints (website, social links, app store listing) so you know the full picture.
  • Looking at installs instead of revenue -- A campaign that drives 10,000 installs at $0.10 CPI sounds great until you realize none of those users ever spend money. Always tie attribution to revenue.
  • Ignoring iOS SKAN limitations -- SKAN data is delayed and aggregated. Don't expect real-time iOS attribution. Plan your campaign optimization cycles around 48-72 hour windows.
  • Too many campaigns, not enough data -- Attribution is only useful with enough volume to be statistically meaningful. Running 20 micro-campaigns with 50 installs each tells you nothing. Consolidate and test.
  • Not measuring cross-promotion -- If you have multiple games, cross-promo is the cheapest user acquisition channel you have. But without attribution, you have no idea if it's working. Track it.

Getting started

Attribution doesn't have to be an enterprise project. If you're a Unity studio spending money on user acquisition -- even a modest amount -- you need to know what's working. The free tier on BoostOps covers 2,001 attributed installs per month, which is enough to get real data on your campaigns without committing to an MMP contract.

Create a free account, integrate the SDK, create your first tracked link, and start seeing where your players actually come from. It takes about 30 minutes from signup to first attributed install.

Start tracking where your installs come from

Free tier, no credit card, no MMP contract. 2,001 attributed installs/month included.