From 26764579ad50a19d4f292f9487be89917134cfd7 Mon Sep 17 00:00:00 2001 From: "HYUNGU, KANG" Date: Thu, 26 Sep 2019 12:42:54 +0900 Subject: [PATCH 1/3] feat: added typescript definition --- index.d.ts | 54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 index.d.ts diff --git a/index.d.ts b/index.d.ts new file mode 100644 index 00000000..730e4a90 --- /dev/null +++ b/index.d.ts @@ -0,0 +1,54 @@ +declare module "react-native-appsflyer" { + type Response = void | Promise; + type SuccessCB = (result?:any) => any; + type ErrorCB = (error?:any) => any; + type ConversionData = { + status: "success" | "failure", + type: "onAppOpenAttribution" + | "onInstallConversionDataLoaded" + | "onAttributionFailure" + | "onInstallConversionFailure", + data: { + [key:string]:string + } + } + + const appsFlyer: { + initSdk(options:any, successC?:SuccessCB, errorC?:ErrorCB): Response + trackEvent(eventName:string, eventValues:object, successC?:SuccessCB, errorC?:ErrorCB): Response + trackLocation(longitude:number, latitude:number, callback:SuccessCB): void + setUserEmails(options:any, successC?:SuccessCB, errorC?:ErrorCB): void + setAdditionalData(additionalData:object, successC?:SuccessCB): void + getAppsFlyerUID(callback:(error:Error, uid:string)=>any): void + sendDeepLinkData(callback: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:object, successC?:SuccessCB, errorC?:ErrorCB): void + trackCrossPromotionImpression(appId:string, campaign:string): void + trackAndOpenStore(appId:string, campaign:string, params: any): void + setCurrencyCode(currencyCode:string, successC:SuccessCB): void + onInstallConversionData(callback:(data:ConversionData)=>any): any + onAppOpenAttribution(callback:(data:any)=>any): any + + /** + * For iOS Only + * */ + trackAppLaunch(): void + + /** + * For Android Only + * */ + enableUninstallTracking(gcmProjectNumber:any, successC?:SuccessCB): void + setCollectIMEI(isCollect:boolean, successC?:SuccessCB): void + setCollectAndroidID(isCollect:boolean, successC?:SuccessCB): void + + /** + * @deprecated + * */ + setGCMProjectNumber(gcmProjectNumber:any, successC?:SuccessCB, errorC?:ErrorCB): void + }; + + export default appsFlyer; +} From a0ef9cb4fef68bb7100b46899a7284a359a80005 Mon Sep 17 00:00:00 2001 From: bang9dev Date: Thu, 6 Feb 2020 18:59:41 +0900 Subject: [PATCH 2/3] - feat: type definition sync with 5.1.1 - docs: update API.md --- Docs/API.md | 21 ++++++++++++++++++ index.d.ts | 62 ++++++++++++++++++++++++++++++++++++++++------------- 2 files changed, 68 insertions(+), 15 deletions(-) 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 index 730e4a90..03c4dce0 100644 --- a/index.d.ts +++ b/index.d.ts @@ -1,53 +1,85 @@ +/** + * 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; - type ConversionData = { + export type ConversionData = { status: "success" | "failure", type: "onAppOpenAttribution" | "onInstallConversionDataLoaded" | "onAttributionFailure" | "onInstallConversionFailure", data: { - [key:string]:string + is_first_launch: boolean; + 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: { - initSdk(options:any, successC?:SuccessCB, errorC?:ErrorCB): Response + 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 - trackLocation(longitude:number, latitude:number, callback:SuccessCB): void - setUserEmails(options:any, successC?:SuccessCB, errorC?:ErrorCB): void + setUserEmails(options:SetEmailsOptions, successC?:SuccessCB, errorC?:ErrorCB): void setAdditionalData(additionalData:object, successC?:SuccessCB): void getAppsFlyerUID(callback:(error:Error, uid:string)=>any): void - sendDeepLinkData(callback: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:object, successC?:SuccessCB, errorC?:ErrorCB): void + generateInviteLink(params:GenerateInviteLinkParams, successC?:SuccessCB, errorC?:ErrorCB): void trackCrossPromotionImpression(appId:string, campaign:string): void - trackAndOpenStore(appId:string, campaign:string, params: any): void + trackAndOpenStore(appId:string, campaign:string, params: object): void setCurrencyCode(currencyCode:string, successC:SuccessCB): void - onInstallConversionData(callback:(data:ConversionData)=>any): any - onAppOpenAttribution(callback:(data:any)=>any): any + setDeviceTrackingDisabled(isDeviceTrackingDisabled:boolean, successC:SuccessCB): void /** * For iOS Only * */ trackAppLaunch(): void + trackLocation(longitude:number, latitude:number, callback:SuccessCB): void /** * For Android Only * */ - enableUninstallTracking(gcmProjectNumber:any, successC?:SuccessCB): void + sendDeepLinkData(callback:any): void setCollectIMEI(isCollect:boolean, successC?:SuccessCB): void setCollectAndroidID(isCollect:boolean, successC?:SuccessCB): void - - /** - * @deprecated - * */ + /** @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; From e71927852dae9f52a52e3d2dfcca80c60f881411 Mon Sep 17 00:00:00 2001 From: bang9dev Date: Tue, 11 Feb 2020 11:46:40 +0900 Subject: [PATCH 3/3] fix: changed is_first_launch type --- index.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/index.d.ts b/index.d.ts index 03c4dce0..a4ed8477 100644 --- a/index.d.ts +++ b/index.d.ts @@ -12,7 +12,7 @@ declare module "react-native-appsflyer" { | "onAttributionFailure" | "onInstallConversionFailure", data: { - is_first_launch: boolean; + is_first_launch: "true" | "false"; media_source: string; campaign: string; af_status : "Organic" | "Non-organic";