adjust / react_native_sdk

This is the React Native SDK of
http://www.adjust.com
MIT License
125 stars 68 forks source link

Clarification on react-native-adjust on front end and Segment on the back end #172

Open grahamlyus opened 2 years ago

grahamlyus commented 2 years ago

Hi, we're using react-native-adjust in our app and Segment on our back end and it's unclear which values to pass to Segment's context.device properties: https://segment.com/docs/connections/destinations/catalog/adjust/#server.

We are not seeing consistent tracking for all devices. Your support team suggested raising an issue here.

Currently we're passing these values: type: ‘ios’ or ‘android’ id: we’re already using react-native-device-info getUniqueId (see comments below) advertisingId: we’re already using the id from @sparkfabrik/react-native-idfa-aaid getAdvertisingInfo

Maybe this method is only returning the required values some of the time?

react-native-device-info getUniqueId

This is a constant and may be referenced directly

Gets the device unique ID. On Android it is currently identical to getAndroidId() in this module. On iOS it uses the DeviceUID uid identifier. On Windows it uses Windows.Security.ExchangeActiveSyncProvisioning.EasClientDeviceInformation.id.

iOS: This is IDFV or a random string if IDFV is unavaliable. Once UID is generated it is stored in iOS Keychain and NSUserDefaults. So it would stay the same even if you delete the app or reset IDFV. You can carefully consider it a persistent, cross-install unique ID. It can be changed only in case someone manually override values in Keychain/NSUserDefaults or if Apple would change Keychain and NSUserDefaults implementations. Beware: The IDFV is calculated using your bundle identifier and thus will be different in app extensions. android: Prior to Oreo, this id (ANDROID_ID) will always be the same once you set up your phone.

should we swap this to react-native-adjust getGoogleAdId/getIdfa?

@sparkfabrik/react-native-idfa-aaid getAdvertisingInfo

The Advertising Identifier (IDFA on iOS, AAID on Android) is a device-specific, unique, resettable ID for advertising that allows developers and marketers to track activity for advertising purposes.

This npm module allows any mobile application built with React Native to access the Advertising ID, following the OS specific definition and user permissions.

The module output in the RN framework is the following:

interface AdvertisingInfoResponse { id: string; // the Advertising ID (or null if not defined/permitted) isAdTrackingLimited: boolean; // the user defined permission to track }

should we swap this to react-native-adjust getAdid?

uerceg commented 2 years ago

Hi @grahamlyus,

And thanks for the pretty detailed description. What I can say first is that first responders in our GitHub repos (engineers who are developing SDKs) are not really familiar with this topic that much (server side communication between Segment and Adjust, if I understand the linked documentation well). I will investigate this a bit further and keep you posted.