Tapper
Search docs...
⌘K
SupportDashboard

Branch Integration

Connect Branch to Tapper to detect fraudulent installs and in-app events across your mobile campaigns.


Connecting Branch takes two steps — create the integration in Tapper, then enable Tapper as an ad partner in Branch and paste in the two values Tapper gives you. No SDK changes are required.

Create the Integration in Tapper

1
Open Your Protection Script

Go to Mobile App Protection and open the protection script for your app.

2
Add MMP Integration

Click Add MMP Integration, choose Branch as the MMP type, and give it a name.

3
Set a Webhook Secret (Recommended)

Enter a random string as the Webhook Secret. Tapper will use this to verify that incoming callbacks are legitimate.

4
Copy the Webhook URL

After saving, copy your Tapper webhook URL. You'll paste it into Branch next.


Configure in Branch Dashboard

Tapper is a listed Branch ad partner, so there is nothing to build by hand — enable Tapper, give it the two values below, and widen the postbacks.

REQUIRED — tick All Events on every Tapper postback, and leave any condition or filter empty. Left scoped to attributed traffic only, a postback fires solely for events already attributed to Tapper, so a brand-new integration receives zero events until Tapper-attributed campaigns exist; it will look broken while being merely filtered.

If the integration shows no events but test postbacks succeed, check this setting first.

1
Enable Tapper as an Ad Partner

In your Branch dashboard, open Ads PartnersPartner Management, search for Tapper, and enable it.

2
Enter Your Integration ID and Webhook Secret

Tapper's form in Branch asks for two values, and both are shown on the integration page in Tapper:

Branch fieldWhere to get it
Integration IDThe numeric Integration ID on your Tapper MMP integration.
Webhook SecretThe Webhook Secret on the same page — reveal it with the eye icon, then copy.
3
Send All Events, Not Only Attributed (REQUIRED)

Tick All Events on every Tapper postback, and leave any condition or filter empty.

This is the single most common reason a Branch integration looks dead. Scoped to attributed-only, a brand-new integration receives zero events forever — there are no Tapper-attributed campaigns yet for the filter to match.

4
Save

Save the partner configuration. Events appear in Tapper within minutes.

Branch sends one postback per event, so enable every event you want analysed — installs, reinstalls, opens, and any commerce or custom events your app fires.


What Data Is Captured

Once connected, Tapper automatically receives the following from Branch on every postback:

  • Attribution — network, campaign, ad group, creative, and ad IDs (from last_attributed_touch_data).
  • Activity type — install, reinstall, app open, or in-app event.
  • Device info — IDFA (iOS), GAID (Android), IDFV, device model, OS, OS version, app version (from user_data).
  • Geolocation — IP address, country (from user_data).
  • Revenue — amount and currency (from event_data).
  • Click-level identifiers — any DSP clickids stored under last_attributed_touch_data (e.g. ~feature, ~channel, ~tags, ~click_id) are captured in the raw payload and available for downstream matching.

When configuring the webhook in Branch, make sure to include User Data, Last Attributed Touch Data, and Event Data in the payload. These are the three blocks Tapper parses.


Organic vs Paid

Tapper automatically distinguishes organic and paid activity based on the attribution data Branch provides:

  • If an ad network is attributed → paid.
  • If no ad network is attributed → organic.

Event Naming

Branch uses different casing conventions for event names:

  • System events — lowercase: install, reinstall, open.
  • Standard commerce events — uppercase: PURCHASE, SUBSCRIBE, ADD_TO_CART.
  • Custom events — whatever name your app uses.