Skip to content
Documentation

Documentation

Testing a mobile integration

Prove that a click becomes an attributed sale, on a real device, before an ad ever runs.

What you are proving

One afternoon, one device, four facts:

  1. A tap on a link becomes an install row carrying that link's campaign.
  2. The install is signed and reports the SDK version you shipped.
  3. A test purchase becomes a conversion within seconds of the store's notification.
  4. That conversion is attributed to the campaign from step 1, and flagged as a test.

Every one of these can be checked on the app's Overview tab. Nothing here needs an engineer on our side.

The device rule

The same applies, less strictly, to iOS: a first install on a device is the clean case.

Also: a build installed with adb, Android Studio, Xcode or react-native run-android carries no referrer at all. It proves the SDK sends, and nothing about attribution. The attribution test needs an install from the store.

Android, step by step

  1. Upload the build to an internal testing track and add the tester's Google account. The tester must open the opt-in link and accept, and that account must be the *active* one in the Play Store app.
  2. Add the same account as a licence tester (Play Console → Setup → Licence testing). Purchases then show *"Test card, always approves"* and charge nothing. This setting is account-wide.
  3. Create a tracking link on the app's Install links tab, pointing at the Play listing. Add campaign parameters when you use it: ?utm_source=facebook&utm_campaign=my_test. One link serves every campaign.
  4. On the device: make sure the app is not installed. Open the link (send it by chat, tap it on the phone). It must land in the Play Store app, not a web page; a browser that falls back to play.google.com produces a web install with no referrer.
  5. Install from that Play page and open the app. Within seconds the Overview tab shows an install with the referrer containing rsclid=… and your utm_campaign, signed = true, and the expected sdk_version.
  6. Make a purchase. Within seconds of Play's notification a conversion appears: is_test = true, attributed to your campaign. If it is a subscription, leave it running: licence-tester plans renew every few minutes, and each renewal must book as its own conversion. That is the failure that looks fine on day one.

iOS, step by step

  1. Ship a TestFlight build, or run a development build with a Sandbox Apple ID signed in under Settings → App Store → Sandbox Account.
  2. Create a tracking link on the Install links tab, pointing at the App Store listing. iOS has no install referrer: a first install attributes deterministically only from an Apple Ads campaign (Apple Search Ads attribution), and from other channels only through the opt-in deferred match on the Attribution tab. What the link proves deterministically on iOS is re-engagement: a tap that opens the already-installed app through a universal link.
  3. Open the app once. The Overview tab shows an install with signed = true.
  4. Make a sandbox purchase. App Store Server Notifications fire for sandbox purchases too; the conversion arrives flagged as a test and carries the buyer via appAccountToken. Sandbox subscriptions renew on an accelerated clock, so renewals can be checked the same afternoon.

Reading the result

You seeIt means
Install with rsclid in the referrer, campaign filled inAttribution is wired end to end. This is the goal.
Install with utm_source=google-play&utm_medium=organicInstalled from the store, but not from your link. The tester searched for the app instead of tapping.
Install with utm_source=(not set)A reinstall on a device that had the app before, or an install from the Play *website*. See the device rule above.
Install with an empty referrerInstalled with adb or from the IDE. Not a store install.
signed = falseThe app secret did not reach the build. Each SDK page's secret section says why.
Conversion booked, UNATTRIBUTEDThe buyer field was not set on the purchase, or the install itself was unattributed (see above). The revenue is real; the link to the campaign is missing.
Purchase made, no conversion at allThe store's notification never arrived or could not be resolved. Google Play revenue and App Store revenue each end with a checklist.