Search specific term/phrase surrounded by double quotes. e.g. “deep linking”
Exclude records that contain a specific term prefixed with a minus. e.g. Android -Firebase

What is a Self Attributing Network?


Self Attributing Networks - commonly referred to as SANs - are unique in that they have infrastructure to track users & conversions at both the web & app level, so they can attribute downstream user behavior that occurs within their own ecosystem.

As such, SAN attribution is completed independently from a third party attribution provider - like Branch - which receives attribution confirmation directly from the SAN itself.

How It Works

1. User interacts with a SAN mobile ad -> is taken into your app -> completes an in-app event.; e.g. a purchase.
2. The SAN records and ingests the click/impression information associated with the in-app event.
3. Simultaneously, the Branch SDK records the in-app event which is sent to the Branch servers.
4. Branch sends device-level event data to the SAN via API to potentially be claimed by the SAN.
5. If the SAN has touch data that corresponds to the device-level event data, the SAN sends Branch said touch data to use for attribution.
6. Branch joins the SAN touch data with the event data on a per device basis after which the SAN attribution data is aggregated and displayed in your Branch dashboard.

In summary, Branch tracks app conversion events and sends them to the SANs enabled in your dashboard in bulk; the Ad Networks then claim the conversions they want to take credit for.

Branch adds value here by de-duplicating the attribution data across Ad Networks by cross-referencing event data across networks, giving credit based on event timestamps. For example, if Twitter and Facebook were claiming the same event, we’d credit the Ad Network with the last timestamp.

As SANs only have visibility into their own platform, conversion counts tend to be higher in their own reporting UI which is why 3rd party attribution providers like Branch exist.

Attribution Data Sent Between Branch <> SANs

Branch Data -> SANs

SAN Data -> Branch

SAN Cost Data

The following SANs also provide an endpoint for the retrieval of cost data:

  • Apple Search Ads
  • Facebook
  • Google Ads
  • Snap
  • Tiktok

For those SANs that send cost data, Branch provides the following metrics:

Analytics TagDescriptionUsed for
CostTotal cost (spend) for those dimensions (analytics tags, user data, time range), regardless of cost modelUnderstanding the total amount spent
eCPIcost / installsNormalizing spend per install, to understand the average price of an install across networks or over time
eCPCcost / clicksNormalizing spend per click, to understand the average price of an click across networks or over time
eCPMcost / (impressions / 1000)Normalizing spend per thousand impressions, to understand the average price of 1000 impressions across networks or over time
eCPAcost / purchases [includes web and app purchases]Normalizing spend per purchase, to understand the average price of a purchase across networks or over time
Return On Investment (ROI)(revenue-cost / cost) * 100Deriving return on investment, to understand the percentage "profit" made on ad spend
Return On Ad Spend (ROAS)(revenue / cost) * 100Deriving return on investment by understanding the percentage revenue multiple for a given unit of spend

NOTE: All cost data is ingested in local currency and then translated to USD on the dashboard using the exchange rate for that currency on the day the data is stored. In effect, this means the dashboard shows the amount that campaign cost converted to USD at the time it ran.

Using Branch Links

For those Self Attributing Networks that allow the use of 3rd party links in APP AD CAMPAIGNS, the Branch link you provide can only be used for deep linking and not for attribution.

To ensure this, add $deeplink_no_attribution=true as a query parameter to the ad link you have created. Not doing so will cause any conversions resulting from said link to not be attributed.

For non-app ad campaigns - i.e. WEB CAMPAIGNS - you do not need to modify the Branch-generated link.

Agency-Managed SAN Campaigns

Only agencies managing advertising campaigns on behalf of a client must append their Agency ID to the campaign name when creating advertising campaigns for Self-Attributing Networks (SANs).


Agency ID Required

Failure to append the campaign name with the Agency ID will result in any subsequent conversion not being properly attributed to the responsible agency.

Finding Your Agency ID

You can find your Agency ID under Account Settings in the Agency view.

Creating Your Agency Tag

Your agency tag must adhere to the following format:


Example Campaign with Agency tag


You can append the Agency Tag to either the beginning or the end of the campaign name.

NOTE: The ~campaign value displayed in exports/analytics will not include the agency_id. If you set up a campaign called test_campaign_agency_1234 for a SAN, the ~campaign value will be test campaign for any installs that came from that campaign.

Viewing SAN Data via Branch

Each SAN has its own requirements on how their attribution data can be handled by a third party. To learn the specifics for each SAN, please refer to the following: