Skip to main content
device_data is the object you send on init, attribution-data, and signup. It carries the signals Linkrunner uses to match an install to a click. Most fields are simple lookups. Three need Google Play libraries and do the heavy lifting for attribution. The full client collects all of these for you. This page explains each one so you can trust, trim, or rebuild that collection.

Dependencies

Going SDK-less does not remove these libraries. They are how Android exposes the advertising ID and the install referrer, so you need them no matter how you call Linkrunner.

Permissions and queries

What to send

If you send only the basics and skip gaid, install_ref, and meta_install_ref, install registration still works, but paid attribution for Google and Meta will be weak or missing.

Advertising ID (GAID)

The Google Advertising ID is the primary signal for Google Ads and device matching. Read it off the main thread.
It returns null when the user has limited ad tracking. If your app targets children, do not collect the GAID and remove the AD_ID permission. See the SDK guidance on AAID.

Google Play Install Referrer

The install referrer is the single most valuable attribution signal on Android. It carries the gclid, fbclid, utm_* parameters, and the Meta encrypted referrer from the Play Store click that led to the install.
The install referrer is available right after install. Read it once on first launch, send it with init, and cache it. The Play Store keeps it only briefly, so do not delay the first read.

Meta Install Referrer

For Meta (Facebook and Instagram) attribution, query the Meta install referrer from the installed Meta app. It needs your Facebook App ID in the manifest and the <queries> block above.
See Meta Install Referrer for how Linkrunner uses this signal.

Everything else

These are plain system lookups. The full client includes them.
  • device_id: Settings.Secure.getString(contentResolver, Settings.Secure.ANDROID_ID)
  • device_ip: first non-loopback IPv4 from NetworkInterface.getNetworkInterfaces()
  • user_agent: WebSettings.getDefaultUserAgent(context)
  • manufacturer, brand, device_name, system_version: Build.MANUFACTURER, Build.BRAND, Build.MODEL, Build.VERSION.RELEASE
  • App info: PackageManager.getPackageInfo for app_version and build_number, context.packageName for bundle_id
Need help? Contact support@linkrunner.io