A Snapchat ad can earn the tap, open the app, and still waste the user's intent. The usual failure is not the creative; it is a broken route between the ad, the app store, the first app open, and the screen the campaign promised. If you are evaluating Branch Snap for that route, you need to understand which URL goes in each field and which system gets attribution credit.
"Branch Snap" is shorthand for Branch's partner integration with Snap. It is not a separate Branch product. The integration connects Snap's self-attributed campaign data with Branch measurement, while deep links route installed users and a website fallback preserves the deferred journey for users who still need to install.
This guide covers the current Branch experience, not the legacy Ads interface. It explains the working link architecture, the setup sequence, a test plan, reporting limitations, and the point at which a lighter deep-linking platform may be a better fit.
What Branch Snap actually means
Branch describes Snap as a self-attributing network, or SAN. Snap decides whether its ads receive credit and returns attribution data to Branch through an API; this differs from a traditional network that depends on the mobile measurement partner to make the attribution decision. The current integration supports install and post-install event attribution, cost ingestion, click-through and view-through attribution, and SKAdNetwork measurement on iOS, according to the current Branch Snap setup guide.
The term covers two jobs that are easy to confuse:
- Experience routing: send a user who already has the app to the intended screen, or send a new user through a web fallback and installation path without losing the destination.
- Measurement: connect the install, app open, purchase, or other event to the Snap campaign and expose the result in reporting.
A successful deep link does not prove attribution is correct. An attributed install does not prove the user reached the right screen. Your acceptance test needs to verify both.
The four systems in the path
| System | Primary responsibility | What to verify |
|---|---|---|
| Snap Ads Manager | Campaign, ad, Snap App ID, native deep-link field, fallback | Correct app and destination are selected |
| Branch | Partner connection, event mapping, measurement, deferred-link fallback | Snap account, App IDs, windows, and events match |
| Your mobile app | URI handling, SDK initialization, screen routing | Cold start and warm start reach the intended screen |
| App Store or Play Store | Install step for new users | Campaign context is recovered on first open |
Snap's developer documentation defines a Snap App ID as the identifier that maps your iOS or Android app to app-install marketing and re-engagement through the Deep Link ad format. It is also where an advertiser can select an MMP for event sharing. Treat that ID as infrastructure, not as an arbitrary label: the wrong app mapping can make an otherwise correct campaign impossible to reconcile.
How Branch Snap deep linking works
For paid Snap campaigns, the most important constraint is in the destination field. Branch's current documentation says Snap accepts a native URI scheme in the DEEPLINK URI field but does not support iOS Universal Links, Android App Links, or MMP redirect links there. Snap's own deep-link specifications describe deep-link attachments as a way to re-engage existing app users.
That produces two routes.
Installed user: direct native route
An installed user taps the ad. Snap invokes a URI such as:
yourapp://product/sku-123?source=snap&campaign=summer_launchThe operating system hands the URI to your app. Your router reads the path and parameters, checks that the destination is allowed, and opens the matching screen. Branch and Snap handle measurement separately from that routing action.
Use an allowlist for routes and parameters. An advertising deep link is external input; it should never be allowed to open arbitrary internal screens, trigger a purchase, or bypass authentication.
New user: website fallback and deferred route
If the app is not installed, the URI cannot open it. Branch recommends setting Snap's FALLBACK TYPE to Web Site and putting a Branch Link in the fallback field. That link can direct the user to the appropriate store and preserve the deferred deep-link context for the first app open. Choosing App Install as the fallback sends the user to the store without the Branch Link, so Branch warns that deferred deep linking will not work (Branch Snap troubleshooting).
This distinction corrects a common but outdated setup pattern: do not paste a Branch redirect link into Snap's native deep-link field and expect it to behave like a general campaign URL. Use the native URI for the installed-user path and the web fallback for the install path.
If you need a deeper view of what must survive the store handoff, read Deeplinkly's deferred deep link implementation guide.
Branch Snap setup: a production checklist
The current Branch workflow is short in the dashboard, but the production work spans account access, app routing, event semantics, privacy, and test data. Complete the steps in this order so a dashboard toggle does not hide an application-level failure.
1. Prepare the app and ownership details
Before connecting the partner, confirm:
- Your Branch SDK is initialized in the iOS and Android apps early enough to capture first-open data.
- The app can parse the native URI scheme you will use in Snap.
- Every advertised destination has a safe fallback screen.
- The correct iOS App Store ID and Android package name are attached to the Snap App ID.
- The person authenticating Branch has access to every Snap ad account that needs to be connected.
- Your legal and privacy owners have approved the events and fields you intend to share.
Branch notes that one Branch user authenticates the Snap integration and must have access to all connected accounts. Snap also expects separate platform identifiers; verify them rather than reusing a value because the app names look identical.
2. Connect Snap in the current Branch experience
In Branch, open Configuration → Ad Partners → Snap, choose Connect with Snap, authenticate, and enter the iOS and Android Snap App IDs in Account Settings. Save the connection, then confirm the expected accounts are visible.
Avoid following screenshots from the legacy Branch Ads experience. Branch labels its older Snap overview for deprecation and directs teams to the new ad-partner workflow. If your dashboard navigation differs from an old tutorial, the tutorial may be the problem.
3. Build the native deep-link destination
Define a small routing contract before campaign creation. For example:
| Field | Example | Rule |
|---|---|---|
| Scheme | yourapp:// | Register it on both platforms |
| Route | product/sku-123 | Allowlist supported destinations |
| Source | source=snap | Use a stable value, not a display name |
| Campaign key | campaign=summer_launch | Keep reporting names consistent |
| Fallback | Product web page | Must still be useful if routing fails |
Paste the assembled native URI into Snap's DEEPLINK URI field for a Drive Traffic to App campaign. Then choose Web Site as the fallback type and enter the Branch Link intended for deferred routing.
If a Branch Link also appears elsewhere in the app campaign, Branch recommends adding %24deeplink_no_attribution=true so that link does not claim attribution over Snap's SAN claim while still performing its routing job. Record this as a campaign-template rule; relying on a marketer to remember an encoded parameter invites inconsistent data.
4. Map only decision-worthy events
Start with events that answer budget questions: install, app open, registration, trial start, purchase, subscription, or another value event central to your product. The Branch integration maps standard events to Snap equivalents—for example, INSTALL to APP_INSTALL, PURCHASE to PURCHASE, and COMPLETE_REGISTRATION to SIGN_UP. Branch also documents five custom event slots.
Do not send every available event just because the dashboard permits it. Decide which event is the optimization goal, which events diagnose the funnel, whether revenue and currency are required, and who owns naming changes. Event drift creates a reporting break that often looks like a campaign-performance change.
5. Align attribution windows and time zones
Branch's published default windows include seven days for click-to-install and one day for impression-to-install, but Branch also says Snap windows vary by advertiser. Use the values in your own Snap account as the source of truth and match the Branch configuration to them.
Time zones matter as much as windows. Snap Ads Manager's time zone is fixed when the ad account is created, while Branch can be adjusted. If one platform closes a reporting day several hours before the other, daily totals will differ even when cumulative totals converge.
Document all of the following in the campaign QA ticket:
- Snap account time zone
- Branch app time zone
- Click-through install window
- View-through install window
- Re-engagement window
- Date convention used by exported reports
6. Configure iOS privacy measurement deliberately
Branch's current Snap integration supports SKAdNetwork and Snap Advanced Conversions. Branch describes Advanced Conversions as an iOS privacy-focused option that helps model conversions for users who opted out of App Tracking Transparency; Advanced Matching can optionally pass hashed identifiers when your implementation and consent basis support it.
Do not treat these as substitutes for deep linking. Privacy-preserving attribution measures outcomes, while the URI and deferred-link flow control the user's destination. Apple's AdAttributionKit overview likewise separates privacy-preserving campaign measurement from individual cross-app tracking and builds on SKAdNetwork's model.
Before enabling optional hashed-data sharing, review data collection, consent, retention, and deletion requirements with the appropriate owners. A technically available field is not automatically a field you should transmit.

Test Branch Snap before spending
A browser-only link check is not enough. Test from a real Snap placement or a controlled ad preview when possible, because in-app browsers and paid-media fields may behave differently from a pasted URL.
Run this matrix on physical iOS and Android devices:
| State | Expected experience | Expected measurement |
|---|---|---|
| App installed, closed | Cold open to target screen | Re-engagement/open visible |
| App installed, backgrounded | Warm open to target screen | Event recorded once |
| App not installed | Website fallback, store, install, target screen | Install and first-open attribution |
| User logged out | Safe auth gate, then intended destination | No routing bypass |
| Invalid or expired content | Useful fallback screen | Failure logged, no crash |
| Tracking permission denied on iOS | Correct user route | Privacy-appropriate aggregate/modelled result |
For every case, capture the ad ID, campaign and ad-squad IDs, test-device platform, click time, install/open time, destination received by the app, Branch event timestamp, and Snap report timestamp. Branch recommends using Liveview to confirm events in real time, then checking Branch analysis and Snap Ads Manager for attribution.
Test a negative control too. Open the app organically without clicking the test ad and confirm it is not attributed to the campaign. This catches stale deferred parameters and overly broad attribution rules.
Fix routing and reporting discrepancies
Start by classifying the symptom. Mixing route failures and attribution discrepancies leads teams to change the wrong configuration.
The user reaches the wrong screen
Check the native URI first: scheme registration, path parsing, cold-start handler, warm-start handler, URL decoding, and authentication handoff. Then confirm the Branch Link is in the website fallback rather than Snap's native deep-link field. If only new users fail, focus on the fallback and first-open SDK callback.
Snap shows conversions but Branch does not
Verify the partner connection, Snap App IDs, SDK event firing, and event mapping. Confirm that the same app and environment are being tested; sandbox events sent to a production mapping—or the reverse—can create a silent gap.
Branch and Snap totals differ by day
Compare attribution windows, account time zones, and date semantics. Branch explains that Snap attributes by click date while Branch reports by conversion date in some comparisons, so delayed conversions can move between daily buckets even when totals later align.
Raw exports are missing campaign details
Branch documents Snap restrictions on log-level view-through conversion data. Fields such as ad account, campaign dimensions, and deep-link URI may be removed from raw exports, webhooks, integrations, and postbacks, while aggregate reporting remains available. Design reconciliation around the data you are permitted to receive; do not build a pipeline that assumes every view-through event has user-level campaign fields.
If you are comparing MMPs, note that the architecture is provider-specific. The AppsFlyer MMP setup for Snapchat also uses a native deep-link URI and separately configures attribution and re-engagement, but its parameters, privacy controls, reports, and deferred-link APIs are not interchangeable with Branch deep links.
When Branch Snap is the right choice—and when it is not
Branch is a strong fit when you need Snap SAN measurement, cost ingestion, supported event mapping, SKAN integration, and deep linking in the same enterprise workflow. It is also easier to justify when your team already uses Branch across several paid channels and has operational ownership for event governance and reconciliation.
It may be more than you need when the immediate problem is routing campaign traffic to the right in-app content, preserving context through install, and measuring a simpler set of acquisition events. Deeplinkly is a developer-first option for deep links, deferred deep links, branded domains, and campaign attribution, with published per-install pricing and privacy-ready measurement that does not rely on device fingerprinting. If direct Snap SAN claims, cost ingestion, or platform-specific advanced conversion features are requirements, verify those capabilities explicitly before choosing or migrating any provider.
Use a requirements table rather than a generic feature count:
| Requirement | Question to ask |
|---|---|
| Paid Snap SAN attribution | Is the provider currently supported for the required Snap workflow? |
| Installed-user routing | Can the app safely handle native URI destinations? |
| Deferred deep linking | Does context survive store install and first open on both platforms? |
| Privacy measurement | Which iOS frameworks and consent states are supported? |
| Raw data | Which fields are available for click-through and view-through conversions? |
| Cost and reporting | Are cost ingestion and reconciliation included in your plan? |
| Operations | Can marketers manage campaigns without breaking the routing contract? |
For a broader framework, see attribution modeling for mobile apps.
Frequently asked questions
What is Branch Snap?
Branch Snap is an informal name for Branch's Snap partner integration. It combines Snap self-attributed campaign data with Branch reporting and supports app-install and post-install event measurement, while native and deferred deep links handle the user journey.
What does “added by deep link” on Snapchat mean?
In a consumer Snapchat context, “added by deep link” generally means an external link opened a Snapchat destination or add flow. That message is separate from Branch's advertising integration and does not indicate that a Branch MMP attributed an app install.
How do I get a URL link for a Snapchat app campaign?
For the installed-user destination, create a native app URI that your application can parse and place it in Snap's deep-link field. For new users, configure a website fallback and use the appropriate deferred deep link there so the install path can retain the intended destination.
Can I paste a Branch Link directly into Snap’s deep-link field?
Not for the current paid-media flow described by Branch. Use your app's native URI scheme in the deep-link field; put the Branch Link in the website fallback for users who need to install the app.
Why do Branch and Snap report different install totals?
Common causes include different attribution windows, different time zones, click-date versus conversion-date reporting, event-mapping errors, and view-through data restrictions. Compare configuration and cumulative totals before treating a daily difference as lost attribution.
Is Branch the same as an AppsFlyer MMP integration for Snapchat?
No. Both can connect Snapchat measurement with app events, but their SDKs, parameters, dashboards, privacy settings, deferred-link flows, and commercial terms differ. Rebuild and retest the integration when changing MMPs rather than translating settings one-for-one.
Choose the route before you choose the tool
Branch Snap works when three contracts agree: Snap's campaign configuration, Branch's measurement setup, and your app's routing behavior. Define the native destination, website fallback, attribution windows, events, and privacy rules first; then test installed and new-user paths independently.
If your requirements include full Snap SAN measurement, validate the current partner workflow and data limitations with Branch and Snap. If your priority is simpler deep and deferred linking with clear campaign attribution, compare providers against the routing and measurement checklist above, then run the same device-level acceptance test before committing spend.