Advanced link redirection
Tapstream campaigns can redirect users based on their device type, a split test between multiple treatments, or both simultaneously. These features are available on any Tapstream campaign.
You can access this functionality by pressing the Advanced button when creating or editing a Tapstream campaign.
Destinations can be static (like https://tapstream.com
), or dynamic (like https://tapstream.com/foo=
).
The destination definition that a user was sent to will appear in your performance reports, allowing you to see per-destination traffic.
Device-aware redirection
Tapstream will recognize device types and redirect them to device-specific destinations that you define. To define device-specific destinations, take the following steps when creating or editing a Tapstream campaign:
- Press Create New Destination
- Enter a destination name (like "Google Play Store")
- Enter a device-specific destination, like
https://play.google.com/store/apps/details?id=com.google.android.gm
- Select your target platform from the "Device" dropdown, like "Android"
Your campaign must include a fallback URL targeting the "Any" device type. This will be used for devices that do not match the definitions you create.
Device type | Definition |
---|---|
Any | Any device. Every campaign must include at least one destination of this type, which acts as a fallback. |
Android | Any Android device. |
Android - Intent URL | Any Android device that already has your app. Must follow Google's Intent URL spec. |
iOS - iPad | Any iPad. |
iOS - iPad Registered URL | Any iPad that already has your app. Must be an iOS deep link. |
iOS - iPhone/iPod Touch | Any iPhone or iPod Touch. |
iOS - iPhone/iPod Touch Registered URL | Any iPhone or iPod Touch that already has your app. Must be an iOS deep link. |
Windows Phone | Any Windows Phone device. |
Mac OS X | Any Mac OS X device. |
Windows 8 | Any Windows 8 device. |
Kindle Fire | Any Kindle Fire device. |
Kindle Fire - Intent URL | Any Kindle Fire device that already has your app. Must follow Google's Intent URL spec. |
Facebook Preview crawler | The Facebook preview crawler. Useful for altering the appearance of news posts that contain Tapstream links. |
Twitter Preview crawler | The Twitter preview crawler. Useful for altering the appearance of tweets that contain Tapstream links. |
Split testing
If you define more than one destination per device type (including the "Any" device type), Tapstream will perform a split test between the destinations you define. The chance of selection of each split test treatment will be weighted by its "Weight" field, visible when editing or creating destinations.
Users will only be eligible to be sent to treatments that match their device type. For instance, if you define two iPhone destinations, and one Android destination, iPhone users will randomly receive one of the two iPhone treatments. Android users passing through your campaign link will be redirected exclusively to the Android destination.
Dynamic redirection
Tapstream destination URL definitions optionally accept macros that resolve to the values of keys on the inbound link's query string.
This is useful for translating dynamic destinations for product listings, profile IDs, and so on in to deep links and other device-specific destinations. It requires no setup in advance, and works with all Tapstream campaigns.
When defining your campaign's destination URLs, you can specify that macros should either URL-encode or URL-decode the associated values. Macros are invoked as follows:
{ some_key:"some_default" }
, which will resolve to the URL-encoded value of thesome_key
query-string key, or, if the value for that key is absent, the URL-encoded version of the stringsome_default
{{ some_key:"some_default" }}
, which will resolve to the URL-decoded value of thesome_key
query-string key, or, if the value for that key is absent, the stringsome_default
exactly as provided.
For example, consider the Tapstream campaign link http://taps.io/example/
, with a destination URL of exactly the following:
{{ url:"https://tapstream.com" }}/{{ foo:"baz" }}
Inbound clicks will then redirect as follows:
Inbound click URL | Will be redirected to |
---|---|
http://taps.io/example |
https://tapstream.com/baz |
http://taps.io/example?url=https%3A%2F%2Fgoogle.com |
http://google.com/baz |
http://taps.io/example?url=https%3A%2F%2Fgoogle.com&foo=qux |
http://google.com/qux |
Note that in reports, the destination URL definition (that is, {{ url:"https://tapstream.com" }}/{{ foo:"baz" }}
, from the example) will be used, not the actual macro-replaced destination that the user was redirected to.