diff --git a/Docs/API.md b/Docs/API.md index 5e256bf8..a41f0116 100755 --- a/Docs/API.md +++ b/Docs/API.md @@ -21,6 +21,7 @@ - [trackCrossPromotionImpression](#trackCrossPromotionImpression) - [trackAndOpenStore](#trackAndOpenStore) - [setCurrencyCode](#setCurrencyCode) +- [setDeviceTrackingDisabled](#setDeviceTrackingDisabled) --- @@ -656,3 +657,23 @@ appsFlyer.setCurrencyCode(currencyCode, () => {}); ``` --- + +##### **`setDeviceTrackingDisabled(isDeviceTrackingDisabled, callback)`** + +It is possible to anonymize specific user identifiers within AppsFlyer analytics.
+This complies with both the latest privacy requirements (GDPR, COPPA) and Facebook's data and privacy policies.
+To anonymize an app user:
+ +| parameter | type | description | +| ---------- |----------|------------------ | +| isDeviceTrackingDisabled | boolean | True if want Anonymize user Data (default value is false). | +| callback | function | success callback | + + +*Example:* + +```javascript +appsFlyer.setDeviceTrackingDisabled(true, () => {}); +``` + +--- diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 00000000..a4ed8477 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,86 @@ +/** + * Typescript Definition Sync with v5.1.1 + **/ +declare module "react-native-appsflyer" { + type Response = void | Promise; + type SuccessCB = (result?:any) => any; + type ErrorCB = (error?:any) => any; + export type ConversionData = { + status: "success" | "failure", + type: "onAppOpenAttribution" + | "onInstallConversionDataLoaded" + | "onAttributionFailure" + | "onInstallConversionFailure", + data: { + is_first_launch: "true" | "false"; + media_source: string; + campaign: string; + af_status : "Organic" | "Non-organic"; + [key:string]:any; + } + } + + export enum AF_EMAIL_CRYPT_TYPE { + NONE, + SHA1, + MD5 + } + + export interface InitSDKOptions { + devKey:string; + appId?:string; //for iOS + isDebug?:boolean; + } + + export interface SetEmailsOptions { + emails?:string[]; + emailsCryptType:AF_EMAIL_CRYPT_TYPE | 0 | 1 | 2; + } + + export interface GenerateInviteLinkParams { + channel: string; + campaign?: string; + customerID?: string; + userParams?: object; + [key:string]:any; + } + + const appsFlyer: { + onInstallConversionData(callback:(data:ConversionData)=>any): () => void; + onAppOpenAttribution(callback:(data:any)=>any): () => void; + + initSdk(options:InitSDKOptions, successC?:SuccessCB, errorC?:ErrorCB): Response + trackEvent(eventName:string, eventValues:object, successC?:SuccessCB, errorC?:ErrorCB): Response + setUserEmails(options:SetEmailsOptions, successC?:SuccessCB, errorC?:ErrorCB): void + setAdditionalData(additionalData:object, successC?:SuccessCB): void + getAppsFlyerUID(callback:(error:Error, uid:string)=>any): void + updateServerUninstallToken(token:string, successC?:SuccessCB): void + setCustomerUserId(userId:string, successC?:SuccessCB): void + stopTracking(isStopTracking:boolean, successC?:SuccessCB): void + setAppInviteOneLinkID(oneLinkID:string, successC?:SuccessCB): void + generateInviteLink(params:GenerateInviteLinkParams, successC?:SuccessCB, errorC?:ErrorCB): void + trackCrossPromotionImpression(appId:string, campaign:string): void + trackAndOpenStore(appId:string, campaign:string, params: object): void + setCurrencyCode(currencyCode:string, successC:SuccessCB): void + setDeviceTrackingDisabled(isDeviceTrackingDisabled:boolean, successC:SuccessCB): void + + /** + * For iOS Only + * */ + trackAppLaunch(): void + trackLocation(longitude:number, latitude:number, callback:SuccessCB): void + + /** + * For Android Only + * */ + sendDeepLinkData(callback:any): void + setCollectIMEI(isCollect:boolean, successC?:SuccessCB): void + setCollectAndroidID(isCollect:boolean, successC?:SuccessCB): void + /** @deprecated - please use updateServerUninstallToken **/ + setGCMProjectNumber(gcmProjectNumber:any, successC?:SuccessCB, errorC?:ErrorCB): void + /** @deprecated - please use updateServerUninstallToken **/ + enableUninstallTracking(gcmProjectNumber:any, successC?:SuccessCB): void + }; + + export default appsFlyer; +}