Skip to main content
Appbrew builds Shopify mobile apps from config. @linkrunner/appbrew plugs Linkrunner into that system as an analytics tracker, so installs, events, revenue, identity, deep links and uninstalls are attributed without per-event code. The package is an adapter over the React Native SDK. rn-linkrunner does the work; @linkrunner/appbrew translates Appbrew’s events and lifecycle into SDK calls.

Requirements

  • An Appbrew app built on the @gauntlet/* packages
  • @linkrunner/appbrew 0.2.0 or higher and rn-linkrunner 3.1.0 or higher
  • iOS 15.0 or higher, Android minSdk 24
  • A Linkrunner project token from Project Settings

1. Install

The package declares requiresNativeBuild: true. Adding or updating it needs a new binary build and a store release.

2. Register the tracker

In src/app/App.tsx, alongside Appbrew’s own trackers:
Do not put the token in code. It arrives at runtime from the Appbrew dashboard.
Sample apps register trackers inside if (!__DEV__). Move this line outside that guard to test in a debug build, or pass { token, debug: true } to the constructor for local runs only.

3. Configure in the Appbrew dashboard

The Appbrew team enters the settings per store. They reach the app as config.integrations.linkrunner, and the tracker reads them on every launch. Only token is required.

4. Native setup

Exclude the SDK’s preferences from auto-backup in AndroidManifest.xml, or a reinstall reads as an existing install:
Both resource files ship inside rn-linkrunner. Permissions and the Play Install Referrer dependency are merged automatically.
Deep links need your Linkrunner domain in the iOS Associated Domains entitlement and an Android intent filter with autoVerify. Follow Deep Linking Setup.

What the tracker does on its own

Map your events to standard commerce events in Dashboard → Meta Ads → Event Mapping (add_to_cartAddToCart, view_itemViewContent, payment type DEFAULTPurchase). Without the mapping, events are stored but never sync to Meta.

Using the attribution API

Everything above is automatic. Use these calls when your app needs the campaign context itself. Each is exported from @linkrunner/appbrew and waits for the tracker to initialise.

Getting attribution data

Read the campaign that drove the install and the deferred deep link. Use it for referral codes or campaign-specific onboarding.
Returns undefined when no token is configured or the install has no attribution. One native call per launch, shared with deferred routing. Google Ads attribution needs consent before init. Without a consent management platform, set the three consent settings in the Appbrew dashboard. With one, call setConsent from its callback and again whenever the choice changes:
Leave a signal out rather than sending unknown as a denial. See Google Integrated Conversion Measurement. The tracker reports every link that arrives through React Native’s Linking. Push taps do not: Appbrew’s push module navigates from the notification payload directly. Report those so a push campaign shows as a re-engagement:

Extra user fields

id defaults to the current customer, or the device id for guests:
The same five calls exist as methods on the LinkrunnerTrackerV2 instance.

Testing

  1. Build with debug: true and look for Linkrunner initialised successfully in the console.
  2. Open Events Settings. The install and events appear as you use the app.
  3. Place an order and confirm one payment appears. Relaunch and confirm it is not duplicated.
  4. Install through a campaign link on a fresh device and confirm getAttributionData() returns the deeplink.
See Integration Testing for the full checklist.

Troubleshooting

Need help? Contact support@linkrunner.io