Setting Up Attribution for Agencies and SANs

Apple Ads — important note: Apple Ads is supported for agency attribution, but works differently from other SANs. Because Apple does not provide campaign name in its attribution claim or response, user-level attribution by agency is not available for Apple Ads. Agency attribution for Apple Ads is supported in aggregated reporting only, based on matching the agency naming convention in cost data. See the FAQ below for more details.

Singular is adding support for agency attribution on Self-Attributing Networks (SANs) such as Meta, Google Ads, and TikTok. This article explains how the feature works and what you need to do to prepare.

Overview

SANs present two challenges that make standard agency attribution impossible:

  • SANs do not use tracking links, so there is no way to append an agency identifier at the click level.
  • SANs only allow one partner configuration per appsite. Supporting multiple agency configurations the traditional way leads to duplicate data.

The new feature solves both problems by reading the campaign name to determine agency attribution. If a campaign name follows the correct naming convention — which includes the agency ID — Singular will attribute that user-level event to the correct partner and agency automatically, with no tracking link required

Once the feature is live, agency attribution for SANs will be reflected in:

  • User-level data (export logs and user-level schemas)
  • Aggregated reporting

Campaign Naming Convention

For Singular to attribute a SAN campaign to an agency, the campaign name must follow this exact format:

agencyid_{agencyid}_{campaignname}

For example:

agencyid_adhe2_campaign name Tier 1 ROAS 

Important: If the agency ID is present in the campaign name but not in the exact format above — including the agencyid_ prefix and underscore separators — it will not count toward attribution. Partial or incorrectly formatted values are ignored.

The campaign name portion (everything after the second underscore) can be any string you choose. Only the prefix and structure are required.

How to Set Up Campaign Names

Step 1: Find your agency ID

Agencies can navigate to their Profile Page; advertiser can find agency id's under the Agencies tab in User & Agencies section. Alternatively agency ids can always be found in Manage Links - they are populated in the agency id macro.

singular_agencies_anonymized_1.png

Step 2: Update existing campaign names

For all active SANs campaigns running on behalf of advertisers, update the campaign name in the ad network's platform to match the required format. You can do this now — you do not need to wait for the feature to go live. The naming change has no effect until launch and will not impact active campaigns.

Step 3: Apply the convention to new campaigns

Going forward, use the correct naming format for all new SAN campaigns from the start. Any campaign that does not follow the convention will not be attributed to your agency.

What's Included at Launch

Status Networks / Data
Supported — user-level & aggregated
  • Meta
  • Google Ads
  • TikTok
  • Snapchat
  • Twitter / X
  • Amazon
  • UberAds
  • Roku
  • Yahoo Japan
  • User-level export logs
  • User-level schemas
  • Aggregated reporting
Supported — aggregated only
  • Apple Ads (agency attribution based on cost data matching; user-level data not available — see FAQ)

Frequently Asked Questions

Can I start updating campaign names before the feature goes live?
#

Yes — and we recommend it. The naming change has no effect until the feature launches, so updating now will not disrupt active campaigns and ensures you're ready on day one.

What happens if the format is slightly wrong?
#

The campaign will not be attributed to your agency. The format must be exactly agencyid_{agencyid}_{campaignname}, including the agencyid_ prefix and both underscore separators. There is no partial match.

Can the campaign name portion be anything?
#

Yes. Everything after the second underscore is your campaign name and can be any string you choose.

Why don't I see agency data in export logs or in my user-level schema for Apple Ads?
#

Apple Ads does not include the campaign name in its attribution claim or response. Because Singular's agency attribution for SANs works by reading the campaign name from the attribution response, this method is not available for Apple Ads.

Agency attribution for Apple Ads is therefore supported in aggregated reporting only, where Singular matches the agency naming convention against cost data received from Apple. User-level export logs and user-level schemas will not reflect agency attribution for Apple Ads installs or events.