Skip to content

Commit 5f96e17

Browse files
authored
docs: add cross-platform integration snippets (#1030)
Adding missing code snippets to the examples for third-party integrations (urgent requirement for two onboarding customers).
1 parent fd597af commit 5f96e17

File tree

94 files changed

+1130
-8
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1130
-8
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import com.adjust.sdk.Adjust
2+
import com.adjust.sdk.AdjustConfig
3+
import com.revenuecat.purchases.Purchases
4+
5+
Purchases.configure(this, "public_sdk_key")
6+
7+
// Automatically collect the $gpsAdId and $ip values
8+
Purchases.sharedInstance.collectDeviceIdentifiers()
9+
10+
// Set the Adjust Id on app launch if it exists
11+
Adjust.getAdid()?.let {
12+
Purchases.sharedInstance.setAdjustID(it)
13+
}
14+
15+
// IMPORTANT: Set the Adjust Id when it becomes available, if it didn't exist on app launch
16+
val config = AdjustConfig(this, "yourAppToken", AdjustConfig.ENVIRONMENT_SANDBOX)
17+
config.onAttributionChangedListener = { attribution ->
18+
Purchases.sharedInstance.collectDeviceIdentifiers()
19+
Purchases.sharedInstance.setAdjustID(attribution.adid)
20+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
import Purchases from 'react-native-purchases';
2+
import { Adjust } from 'react-native-adjust';
3+
4+
Purchases.configure({ apiKey: 'public_sdk_key' });
5+
Purchases.collectDeviceIdentifiers();
6+
7+
Adjust.getAdid().then(adid => {
8+
if (adid) {
9+
Purchases.setAdjustID(adid);
10+
}
11+
});
12+
13+
Adjust.addAttributionChangedListener(attribution => {
14+
Purchases.collectDeviceIdentifiers();
15+
Purchases.setAdjustID(attribution.adid);
16+
});
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
import 'package:adjust_sdk/adjust.dart';
2+
import 'package:purchases_flutter/purchases_flutter.dart';
3+
4+
Future<void> init() async {
5+
await Purchases.configure(PurchasesConfiguration('public_sdk_key'));
6+
await Purchases.collectDeviceIdentifiers();
7+
8+
final adid = await Adjust.getAdid();
9+
if (adid != null) {
10+
await Purchases.setAdjustID(adid);
11+
}
12+
13+
Adjust.addAttributionChangedListener((attribution) {
14+
Purchases.collectDeviceIdentifiers();
15+
Purchases.setAdjustID(attribution.adid);
16+
});
17+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import Purchases from 'react-native-purchases';
2+
import { requestTrackingPermission } from 'react-native-tracking-transparency';
3+
4+
async function setupAppleSearchAds() {
5+
await Purchases.configure({ apiKey: 'public_sdk_key' });
6+
const status = await requestTrackingPermission();
7+
if (status === 'authorized') {
8+
await Purchases.enableAdServicesAttributionTokenCollection();
9+
}
10+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
import 'package:purchases_flutter/purchases_flutter.dart';
2+
import 'package:app_tracking_transparency/app_tracking_transparency.dart';
3+
4+
Future<void> setupAppleSearchAds() async {
5+
await Purchases.configure(PurchasesConfiguration('public_sdk_key'));
6+
final status = await AppTrackingTransparency.requestTrackingAuthorization();
7+
if (status == TrackingStatus.authorized) {
8+
await Purchases.enableAdServicesAttributionTokenCollection();
9+
}
10+
}
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
import Purchases from 'react-native-purchases';
2+
import appsFlyer from 'react-native-appsflyer';
3+
4+
async function initRevenueCatAndAppsFlyer() {
5+
// 1. Configure RevenueCat first
6+
await Purchases.configure({ apiKey: 'public_sdk_key' });
7+
8+
// 2. Collect device identifiers: $gpsAdId, $ip (automatically handles platform-specifics)
9+
await Purchases.collectDeviceIdentifiers();
10+
11+
// 3. Initialize AppsFlyer before retrieving UID
12+
appsFlyer.initSdk(
13+
{
14+
devKey: 'your_af_dev_key',
15+
isDebug: false,
16+
appId: 'your_ios_app_id', // required only for iOS
17+
},
18+
(result) => console.log('AppsFlyer initialized:', result),
19+
(error) => console.error('AppsFlyer init error:', error)
20+
);
21+
22+
// 4. Get the AppsFlyer ID and set it to RevenueCat
23+
appsFlyer.getAppsFlyerUID((err, uid) => {
24+
if (!err && uid) {
25+
Purchases.setAppsflyerId(uid);
26+
}
27+
});
28+
}
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
import 'package:purchases_flutter/purchases_flutter.dart';
2+
import 'package:appsflyer_sdk/appsflyer_sdk.dart';
3+
4+
Future<void> init() async {
5+
await Purchases.configure(PurchasesConfiguration('public_sdk_key'));
6+
Purchases.collectDeviceIdentifiers();
7+
8+
final appsflyerSdk = AppsFlyerSdk(AppsFlyerOptions(afDevKey: 'afDevKey', appId: '123'));
9+
final uid = await appsflyerSdk.getAppsFlyerUID();
10+
if (uid != null) {
11+
await Purchases.setAppsflyerId(uid);
12+
}
13+
}
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import 'package:flutter_branch_sdk/flutter_branch_sdk.dart';
2+
import 'package:purchases_flutter/purchases_flutter.dart';
3+
4+
// login
5+
FlutterBranchSdk.setIdentity('my_app_user_id');
6+
7+
// Optional: Use a different App User ID between Branch and RevenueCat
8+
Purchases.setAttributes({'\$branchId': '<custom_branch_user_id>'});
9+
10+
// logout
11+
FlutterBranchSdk.logout();
Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
import io.branch.referral.Branch
2+
import com.revenuecat.purchases.Purchases
3+
4+
// login
5+
Branch.getInstance().setIdentity("my_app_user_id")
6+
7+
// Optional: Use a different App User ID between Branch and RevenueCat
8+
Purchases.sharedInstance.setAttributes(mapOf("\$branchId" to "<custom_branch_user_id>"))
9+
10+
// logout
11+
Branch.getInstance().logout()
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
import 'package:purchases_flutter/purchases_flutter.dart';
2+
3+
Future<void> init() async {
4+
await Purchases.configure(PurchasesConfiguration('public_sdk_key'));
5+
await Purchases.collectDeviceIdentifiers();
6+
}

0 commit comments

Comments
 (0)