Tapstream's attribution engine produces conversions by associating two timelines.
The second timeline, the event timeline, is identified by a random number that the Tapstream SDK creates and stores in your app the first time it runs. This timeline is updated whenever the end-user triggers an in-app Tapstream event, like an open, purchase, or custom event.
When the two timelines are associated, the first click in the click timeline gets credit for each event in the event timeline.
Tapstream associates these timelines through a proprietary device identification algorithm. The algorithm uses available hardware IDs, as well as other unique and non-unique device information. Depending on the availability of hardware IDs, Tapstream's algorithm produces results that are between 95% and 100% accurate.
The association is permanent, which makes repeated tests on the same device non-trivial. If the end-user erases their cookies (and therefore the click timeline ID), or deletes the app (and therefore the event timeline ID), the surviving timeline will be orphaned and not be allowed to re-associate.
Tapstream provides a live view of your incoming data. Click on the Live tab in your dashboard to see your test clicks and events being processed in real time.
To simulate conversion, take the following steps:
Step 1: Create a test campaign
Follow the campaign creation documentation to create a new Custom campaign. Call it something obvious, like Test Campaign. Its destination can be any valid URL. Save the campaign and note the campaign link.
For the purposes of this documentation, the example campaign link
http://taps.io/simulate/ will be used. Do not use this URL in your own test.
Step 2: Prepare your device
For your test to succeed, your device must be "clean". That means it needs a fresh cookie container, and a fresh app install.
Delete any previous instances of the app from your device or simulator. (Restarting the simulator, or resetting its content and settings, is not sufficient.) Then, erase the cookies from your device's web browser.
Step 3: Set up your live tab to observe your test
Go to the Live tab in your Tapstream dashboard. Apply an IP filter to match your test environment's public-facing IP address. This will make it easier for you to observe your test.
Step 4: Trigger the campaign click
On your device's browser, in a new Private Browsing or Incognito tab, open your test campaign URL with the following format. Remember to replace the URL path (the
simulate part) with your own:
__tstest=1 query string key-value pair tells Tapstream to ignore previous click sessions, reducing the chance of errors during testing. Do not use this key-value pair in production.
In your dashboard's Live tab, you will see a campaign click.
Note that you can expand each node to see all of the information that Tapstream recorded about it, including custom parameters.
Step 5: Trigger the app event
Now, run your Tapstream-enabled app on your test device. The Tapstream SDK will automatically fire an app install event when you run the app for the first time.
In your dashboard's Live tab, you will see an app event.
Step 6: Verify the conversion
In your dashboard's Live tab, click on either the hit session ID or the event session ID. This will drill in to a per-user view of the session. If your test succeeded, you will see a conversion indicator between the hit nodes and event nodes.
In your dashboard's Campaigns tab, you will now see a click and an install for your test campaign.
If you're having difficulty simulating conversions, please investigate the following common causes:
- Using the Tapstream dashboard, check the install count on your test campaign link. If the install count is not incrementing, that means no Tapstream conversion has been created, which means your app will not receive attribution information.
- Make sure your dashboard's date range is set to include today's date
- Make sure you're initializing the Tapstream SDK as early as possible in your app's flow.
- Ensure that your device has been completely wiped of cookies between each attempt, and that you're using a Private Browsing or Incognito tab to perform the attempt
- Ensure that your app is removed from your device between each attempt. Destroying and re-running simulator instances is not sufficient; you must manually delete the app from the simulator between attempts.
- If you're using hard-coded hardware IDs to perform the simulation, ensure that the hardware IDs match the expected format of real hardware IDs of that type. For instance, if you use any string that is not a valid UUID for testing with an iOS IDFA, the test may fail.