Configuration
1. Install the npm package
Section titled “1. Install the npm package”Install affise-attribution-lib with your package manager of choice:
npm install affise-attribution-libyarn add affise-attribution-lib2. Install optional modules
Section titled “2. Install optional modules”Since 1.7.16 every optional module is published as its own npm package. Install only the ones you need (README “Modules → React”):
npm install affise-attribution-lib
npm install affise-attribution-module-adservicenpm install affise-attribution-module-advertisingnpm install affise-attribution-module-androididnpm install affise-attribution-module-appsflyernpm install affise-attribution-module-googlenpm install affise-attribution-module-huaweinpm install affise-attribution-module-linknpm install affise-attribution-module-metanpm install affise-attribution-module-networknpm install affise-attribution-module-persistentnpm install affise-attribution-module-phonenpm install affise-attribution-module-rustorenpm install affise-attribution-module-statusnpm install affise-attribution-module-subscriptionnpm install affise-attribution-module-tiktok| npm package | Android | iOS |
|---|:-:|:-:|
| affise-attribution-module-adservice | — | ✓ |
| affise-attribution-module-advertising | ✓ | ✓ |
| affise-attribution-module-androidid | ✓ | — |
| affise-attribution-module-appsflyer | ✓ | ✓ |
| affise-attribution-module-google | — | ✓ |
| affise-attribution-module-huawei | ✓ | — |
| affise-attribution-module-link | ✓ | ✓ |
| affise-attribution-module-meta | ✓ | — |
| affise-attribution-module-network | ✓ | — |
| affise-attribution-module-persistent | — | ✓ |
| affise-attribution-module-phone | ✓ | — |
| affise-attribution-module-rustore | ✓ | — |
| affise-attribution-module-status | ✓ | ✓ |
| affise-attribution-module-subscription | ✓ | ✓ |
| affise-attribution-module-tiktok | ✓ | ✓ |
Each package only adds the matching native dependency (com.affise:module-* on Android, AffiseModule/* subspec on iOS, at the same version 1.7.16). Its JS entry point is empty — all APIs (Affise.module.*, AffiseModules, ProviderType) are still imported from affise-attribution-lib.
3. Install iOS pods
Section titled “3. Install iOS pods”pod-install is a dev dependency of the SDK (package.json:70) and the bootstrap script runs yarn example pods (package.json:36). From your app’s ios/ directory:
pod installThe SDK pod depends on React-Core and AffiseInternal at the package version, 1.7.16 (affise-attribution-native.podspec:19-20). Manual native only: add module subspecs as needed:
target 'YourAppProject' do # ...
affise_version = '1.7.16' # Affise Modules pod 'AffiseModule/AdService', affise_version pod 'AffiseModule/Advertising', affise_version pod 'AffiseModule/AppsFlyer', affise_version pod 'AffiseModule/Link', affise_version pod 'AffiseModule/Persistent', affise_version pod 'AffiseModule/Status', affise_version pod 'AffiseModule/Subscription', affise_version pod 'AffiseModule/TikTok', affise_versionend4. Configure Android
Section titled “4. Configure Android”The SDK’s own AndroidManifest.xml declares no permissions (android/src/main/AndroidManifest.xml:1-3); your app must declare internet access:
<manifest> <uses-permission android:name="android.permission.INTERNET"/></manifest>Android dependency coordinates for the native SDK and install-referrer are declared at android/build.gradle:68-74. Manual native only: add optional module artifacts to your app-level build.gradle:
final affise_version = '1.7.16'
dependencies { // Affise modules implementation "com.affise:module-advertising:$affise_version" implementation "com.affise:module-androidid:$affise_version" implementation "com.affise:module-link:$affise_version" implementation "com.affise:module-network:$affise_version" implementation "com.affise:module-phone:$affise_version" implementation "com.affise:module-status:$affise_version" implementation "com.affise:module-subscription:$affise_version" implementation "com.affise:module-meta:$affise_version" implementation "com.affise:module-rustore:$affise_version" implementation "com.affise:module-huawei:$affise_version" implementation "com.affise:module-appsflyer:$affise_version" implementation "com.affise:module-tiktok:$affise_version"}If you use the Meta Install Referrer module, add a <queries> block to your app manifest:
<?xml version="1.0" encoding="utf-8"?><manifest xmlns:android="http://schemas.android.com/apk/res/android"> <queries> <package android:name="com.facebook.katana" /> <package android:name="com.instagram.android" /> <package android:name="com.facebook.lite" /> </queries>
<application> ... </application></manifest>5. Configure iOS
Section titled “5. Configure iOS”The Affise Advertising module uses the AppTrackingTransparency framework to read advertisingIdentifier. Add a usage description to your Info.plist:
<plist version="1.0"><dict> ... <key>NSUserTrackingUsageDescription</key> <string>Youre permission text</string></dict>6. Initialize the SDK
Section titled “6. Initialize the SDK”Call Affise.settings(...).start() once at app startup:
import { Affise, AffiseInitProperties} from 'affise-attribution-lib';
export default function App() {
React.useEffect(() => { Affise .settings({ affiseAppId: 'Your appId', //Change to your app id secretKey: 'Your SDK secretKey', //Change to your SDK secretKey }) .start(); // Start Affise SDK });
return ( <SafeAreaView> </SafeAreaView> );}The builder entry point is Affise.settings({ affiseAppId, secretKey }) (src/index.ts:42-44) which returns an AffiseSettingsApi. Calling .start() (src/settings/AffiseSettingsApi.ts:89) triggers AffiseSettings.start() (src/settings/AffiseSettings.ts:174-176), which forwards init properties to native via AffiseNative.init(initProperties) (src/native/AffiseNative.ts:35-54).
Validate credentials before publishing
Section titled “Validate credentials before publishing”For init callbacks, custom domain, production flag, config values and module gating, see optional setup.