Why we do network integration differently
Head of Communications
Posted Mar 3, 2015
One metric that many people use to evaluate attribution platforms is the number of integrated partners. While we cite 500 such, I’ve always found that term a little… problematic. We don’t need to integrate partners in the first place. Why is that?
Three key goals that we wanted to achieve:
- Make it easy for clients to control what data is shared - and don’t share anything by default.
- Remove the hassle for clients to implement and troubleshoot network integration.
- Keep our network partners happy by making it fast, smart, and easy to use.
The point of an integrated partner, in terms of attribution, is to be able to swiftly and easily provide conversion data for your other marketing partners. This means, in most cases, that you can forgo integrating a network SDK into your app, and can start running campaigns immediately.
In order to send a network conversion data, you need an API endpoint where you can send data on incoming conversions of your app. This is normally a simple API URL, that you could ping with a few URL parameters. Most of our clients are intensely familiar with sending data via URL parameters, as that’s how you can unlock extensive featuresets in adjust trackers.
The temptation therefore is to write up a piece of server code that is prepared to assemble the required data and start pinging this URL automatically. The way you configure it is either by selecting the partner you are looking for in a dashboard list, or typing in the callback manually in your dashboard. Then the server has a database entry telling it to call a particular URL whenever certain parameters are registered.
The road that we’ve decided to go is a little bit different.
The sheer majority of our network integrations - which number over five hundred - are dynamic. No server modules, no dashboard lists, no text field inputs for the callbacks. Instead, we transmit the callback data like we would transmit any other data - via URL parameters.
When you create a new source in the adjust interface, you get a very simple, short, and pretty tracker URL, looking something like this:
Then you can add a host of various parameters to change the behaviour of these tracking links. Among these are the callback parameters, that instruct our servers to call an API URL when certain things happen. These are uniquely associated with the user who clicked on the URL, and we can then dynamically identify the correct callback URLs whenever we see that user:
Of course, this association is based on an intricate system of temporary hashes, so as to maintain user privacy and integrity.
This system only calls the callback when an attributed, associated user has performed, in this example, an install. A lot of partners are also able to leverage in-app events for their optimization. In this case:
Same logic, but this time, we add something to identify the event - a unique event token. If “abc123” were mapped to a purchase event, the API URL would be called for every purchase. If it was a registration, it’d be fired for every new user, and so on. The key thing about these tokens is that they’re only known to you, the user, and only available to the network partners you want to share it with.
So… what’s the upside?
It might be a little harder to understand when you first look at it, but there are a few concrete advantages:
- Clients can outsource the integration to their providers. No longer do they need to troubleshoot why and where they put in the wrong ID. adjust and your network partners work together - after all, they know these systems intimately, especially as many of our partners have worked with us for years.
- Networks can now better control and configure their API endpoints. Need to make a change? They can do it all integrally, without having to call our engineering teams and make sure all their partners are up to date.
- Much faster turnaround - queueing a fixed, module-based integration in the system requires manpower to set up. With the adjust system, anybody who needs to can get the integration up and running. Our known record so far for a brand new partner? 30 minutes.
- You retain complete control - don’t want your network partners to see anything but installs? Want to share with them purchase events in particular, but not registrations? Just give them the right keys, and off they go.
There are also server-to-server integrations with adjust, as well as SDK-to-SDK integrations - where we can see more extensive uses for the additional data it may provide.
We’ll talk a little this week about that and other partner integrations, to help our clients and friends understand how and why we do things the way we do. Check out our landing page on the topic, and follow us on Facebook or Twitter to be notified of the upcoming materials.