Adjust integration
Connect Adjust to Tapper to detect invalid installs and in-app events across your mobile campaigns.
Connecting Adjust takes two steps - create the integration in Tapper, then point Adjust's Global Callback at your Tapper webhook URL. No SDK changes are required.
Create the integration in Tapper
Open your protected entity
In Tapper, open Setup > Mobile app > App protection. For a first app, open Setup > Ad accounts, click Add ad account, then Add mobile app.
Add the integration
Click Add integration, choose Adjust as the MMP type, and give it a name.
Choose a webhook secret (optional)
Tapper uses the Webhook Secret to verify that incoming callbacks are legitimate. Leave it blank and Tapper generates a strong one for you. It is shown once, right after you create the integration, so copy it then. If you choose your own, it needs at least 32 characters.
Lost the secret? Open the integration, type a new one (at least 32 characters) and click Update to replace it. The old secret stops working at once, and the secret is part of the Global Callback URL in Adjust, so then update that URL with the new secret. Until you do, Tapper refuses Adjust's callbacks.
Copy the webhook URL
After saving, Tapper generates your unique webhook URL. Copy it - you'll paste it into Adjust next.
The URL includes all necessary Adjust callback parameters automatically.
Configure in Adjust dashboard
Adjust supports a Global Callback that fires for every event (installs, sessions, in-app events). This is the recommended setup - one URL receives everything.
Open AppView
Go to AppView and select your app.
Go to All Settings → Callbacks
In the left sidebar, click All Settings, then open the Callbacks section.
Set the global callback URL
Paste your Tapper webhook URL into the Global Callback URL field and save.
The Global Callback only accepts a single URL. If you need to send to multiple endpoints, use per-event Single Activity callbacks and space-separate multiple URLs.
Leave the callback condition empty
When Adjust offers Add a condition, leave it empty. The global callback then keeps firing for every trigger Adjust measures, organic included.
A condition on {network_name} or {tracker_name} restricts the callback to that network, and until campaigns attributed to Tapper exist it matches nothing - Tapper would receive zero events and the integration would look broken while being merely filtered.
If the integration shows no events but test callbacks succeed, check this first.
Wiring Branch, AppsFlyer, Kochava or Singular as well? Widen each one to all events - see Mobile App Protection → Send All Events. Adjust is the exception: its global callback is already unscoped, so the empty condition above is all it needs.
What data is captured
Once connected, Tapper automatically receives the following from Adjust on every callback:
- Attribution: network, campaign, ad group, creative, tracker, match type.
- Activity type: install, session, or in-app event.
- Click-level identifiers: Adjust
click_id,label,reftag(used to map back to DSP clickids passed through in click tracker URLs). - Device info: IDFA (iOS), GAID (Android), Android ID, OAID, device model, OS, OS version, language, store.
- Geolocation: IP address, country.
- Timing: click time, install time, install begin time, event time.
- Revenue & cost: revenue amount and currency, cost model/value/currency.
- Rejection data: rejection reason and source (for invalid traffic feedback loops).
Google Ads and Meta Ads
Google Ads and Meta Ads are Self-Attributing Networks - they report attribution directly to Adjust via their own APIs rather than through MMP tracking links.
This means campaign, ad group, and creative data is always available in Adjust postbacks. However, click-level parameters like gclid or fbclid are not included.
To capture click-level data from Google or Meta, use Tapper's click tracker in your ad destination URLs.
IP allowlist (optional)
To add an extra layer of security, you can restrict Tapper's webhook endpoint to only accept requests from Adjust's servers. Set an IP Allowlist on the integration using Adjust's published IP ranges.
When enabled, Tapper will only process callbacks from your allowlisted IP addresses.