rn-linkrunner 3.1.1 → 3.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LinkrunnerSDK.podspec +1 -1
- package/android/build.gradle +1 -1
- package/android/src/main/java/io/linkrunner/LinkrunnerModule.kt +3 -40
- package/android/src/main/java/io/linkrunner/utils/ModelConverter.kt +3 -0
- package/ios/LinkrunnerSDK.swift +3 -0
- package/ios/Podfile +1 -1
- package/lib/typescript/types.d.ts +4 -0
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/types.ts +4 -0
package/LinkrunnerSDK.podspec
CHANGED
package/android/build.gradle
CHANGED
|
@@ -116,7 +116,7 @@ dependencies {
|
|
|
116
116
|
implementation 'com.facebook.react:react-android:0.80.0'
|
|
117
117
|
|
|
118
118
|
// Linkrunner SDK
|
|
119
|
-
implementation "io.linkrunner:android-sdk:4.
|
|
119
|
+
implementation "io.linkrunner:android-sdk:4.2.0"
|
|
120
120
|
|
|
121
121
|
// Kotlin standard libraries - use stable versions
|
|
122
122
|
implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlinVersion"
|
|
@@ -40,7 +40,7 @@ class LinkrunnerModule(private val reactContext: ReactApplicationContext) : Reac
|
|
|
40
40
|
val keyId = options?.getString("keyId")
|
|
41
41
|
val debug = options?.getBoolean("debug") ?: false
|
|
42
42
|
|
|
43
|
-
val packageVersion = options?.getString("packageVersion") ?: "3.
|
|
43
|
+
val packageVersion = options?.getString("packageVersion") ?: "3.2.1" // React Native package version
|
|
44
44
|
|
|
45
45
|
if (token.isEmpty()) {
|
|
46
46
|
promise.reject("INIT_ERROR", "Token is required")
|
|
@@ -302,45 +302,8 @@ class LinkrunnerModule(private val reactContext: ReactApplicationContext) : Reac
|
|
|
302
302
|
if (result.isSuccess) {
|
|
303
303
|
val attributionData = result.getOrNull()
|
|
304
304
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
if (attributionData != null) {
|
|
309
|
-
// Add the deeplink if it exists
|
|
310
|
-
attributionData.deeplink?.let { deeplink ->
|
|
311
|
-
response.putString("deeplink", deeplink)
|
|
312
|
-
}
|
|
313
|
-
|
|
314
|
-
// Convert campaign data to a WritableMap if it exists
|
|
315
|
-
attributionData.campaignData?.let { campaignData ->
|
|
316
|
-
val campaignDataMap = Arguments.createMap()
|
|
317
|
-
campaignDataMap.putString("id", campaignData.id)
|
|
318
|
-
campaignDataMap.putString("name", campaignData.name)
|
|
319
|
-
|
|
320
|
-
campaignData.adNetwork?.let { adNetwork ->
|
|
321
|
-
campaignDataMap.putString("adNetwork", adNetwork)
|
|
322
|
-
}
|
|
323
|
-
|
|
324
|
-
campaignDataMap.putString("type", campaignData.type)
|
|
325
|
-
campaignDataMap.putString("installedAt", campaignData.installedAt)
|
|
326
|
-
|
|
327
|
-
campaignData.storeClickAt?.let { storeClickAt ->
|
|
328
|
-
campaignDataMap.putString("storeClickAt", storeClickAt)
|
|
329
|
-
}
|
|
330
|
-
|
|
331
|
-
campaignDataMap.putString("groupName", campaignData.groupName)
|
|
332
|
-
campaignDataMap.putString("assetName", campaignData.assetName)
|
|
333
|
-
campaignDataMap.putString("assetGroupName", campaignData.assetGroupName)
|
|
334
|
-
campaignDataMap.putString("adNetworkCampaignId", campaignData.adNetworkCampaignId)
|
|
335
|
-
campaignDataMap.putString("adSetId", campaignData.adSetId)
|
|
336
|
-
campaignDataMap.putString("adSetName", campaignData.adSetName)
|
|
337
|
-
campaignDataMap.putString("adCreativeId", campaignData.adCreativeId)
|
|
338
|
-
campaignDataMap.putString("adCreativeName", campaignData.adCreativeName)
|
|
339
|
-
|
|
340
|
-
response.putMap("campaignData", campaignDataMap)
|
|
341
|
-
}
|
|
342
|
-
}
|
|
343
|
-
|
|
305
|
+
val response = ModelConverter.fromAttributionData(attributionData)
|
|
306
|
+
|
|
344
307
|
response.putString("status", "success")
|
|
345
308
|
response.putString("message", "Attribution data retrieved successfully")
|
|
346
309
|
|
|
@@ -163,6 +163,9 @@ object ModelConverter {
|
|
|
163
163
|
data.deeplink?.let { deeplink ->
|
|
164
164
|
map.putString("deeplink", deeplink)
|
|
165
165
|
}
|
|
166
|
+
|
|
167
|
+
map.putString("gaid", data.gaid)
|
|
168
|
+
map.putString("idfa", data.idfa)
|
|
166
169
|
|
|
167
170
|
// Convert campaign data to a WritableMap if it exists
|
|
168
171
|
data.campaignData?.let { campaignData ->
|
package/ios/LinkrunnerSDK.swift
CHANGED
|
@@ -229,6 +229,9 @@ class LinkrunnerSDK: NSObject {
|
|
|
229
229
|
response["deeplink"] = deeplink
|
|
230
230
|
}
|
|
231
231
|
|
|
232
|
+
response["gaid"] = attributionData.gaid ?? NSNull()
|
|
233
|
+
response["idfa"] = attributionData.idfa ?? NSNull()
|
|
234
|
+
|
|
232
235
|
if let campaignData = attributionData.campaignData {
|
|
233
236
|
let dateFormatter = ISO8601DateFormatter()
|
|
234
237
|
dateFormatter.formatOptions = [.withInternetDateTime]
|
package/ios/Podfile
CHANGED
|
@@ -46,6 +46,10 @@ export interface CampaignData {
|
|
|
46
46
|
export interface AttributionData {
|
|
47
47
|
deeplink?: string;
|
|
48
48
|
campaignData?: CampaignData;
|
|
49
|
+
/** Android only. */
|
|
50
|
+
gaid?: string | null;
|
|
51
|
+
/** iOS only, null when ATT is not authorized. */
|
|
52
|
+
idfa?: string | null;
|
|
49
53
|
}
|
|
50
54
|
export interface DeeplinkData {
|
|
51
55
|
deeplink?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,QAAQ;IACvB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,eAAe;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,MAAM,WAAW,eAAe;IAE9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,oBAAoB;IACpB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,iDAAiD;IACjD,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,OAAO,CAAC;IACtB,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;;;;GAMG;AACH,MAAM,MAAM,aAAa,GAAG,SAAS,GAAG,QAAQ,GAAG,SAAS,CAAC;AAE7D;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,2GAA2G;IAC3G,KAAK,CAAC,EAAE,aAAa,CAAC;IACtB,sHAAsH;IACtH,sBAAsB,CAAC,EAAE,aAAa,CAAC;IACvC,4GAA4G;IAC5G,+BAA+B,CAAC,EAAE,aAAa,CAAC;CACjD"}
|
package/package.json
CHANGED
package/src/types.ts
CHANGED
|
@@ -51,6 +51,10 @@ export interface AttributionData {
|
|
|
51
51
|
// Direct fields
|
|
52
52
|
deeplink?: string;
|
|
53
53
|
campaignData?: CampaignData;
|
|
54
|
+
/** Android only. */
|
|
55
|
+
gaid?: string | null;
|
|
56
|
+
/** iOS only, null when ATT is not authorized. */
|
|
57
|
+
idfa?: string | null;
|
|
54
58
|
}
|
|
55
59
|
|
|
56
60
|
export interface DeeplinkData {
|