apps-sdk 1.0.87 → 1.0.88

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/config.js CHANGED
@@ -54,6 +54,8 @@ export var IMAGE_COMPRESSION = {
54
54
 
55
55
  export var TRACKING_ACTIVE = false;
56
56
 
57
+ export var TRACKING_ANSWERED = false;
58
+
57
59
  export var FORCED_UPDATE = false;
58
60
 
59
61
  export const DEBUG_MODE = false;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apps-sdk",
3
- "version": "1.0.87",
3
+ "version": "1.0.88",
4
4
  "description": "Apps SDK",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -11,6 +11,7 @@ class Networking {
11
11
  constructor() {
12
12
  this.ENCRYPT_KEY = null;
13
13
  this.DEFAULT_ENCRYPT_VALUE = false;
14
+ this.PENDING_EVENTS = [];
14
15
  }
15
16
 
16
17
  setEncryptKey(value) {
@@ -27,6 +28,7 @@ class Networking {
27
28
  let initData = await this.request(config.ENDPOINTS.CONFIG);
28
29
  if (initData) {
29
30
  config.DEBUG_MODE && console.debug("initData", JSON.stringify(initData));
31
+ config.TRACKING_ANSWERED = await storage.getData('TRACKING_PERMISSION_ANSWERED');
30
32
  this.setEndpoints(initData.data.domains);
31
33
  this.setEvents(initData.data.attribution);
32
34
  this.setPayWallData(initData);
@@ -209,6 +211,10 @@ class Networking {
209
211
  sendEvent = async (eventType, eventKeyword, eventData={}) => {
210
212
  if (config.TRACKING_ACTIVE === false) {
211
213
  console.log('Event not sent, tracking is denied: ', eventType, eventKeyword);
214
+ console.log('Tracking answered: ', config.TRACKING_ANSWERED);
215
+ if (!config.TRACKING_ANSWERED) {
216
+ this.addPendingEvent({eventType, eventKeyword, eventData});
217
+ }
212
218
  return;
213
219
  }
214
220
  config.DEBUG_MODE && console.debug("sendEvent", eventType, eventKeyword, eventData);
@@ -217,7 +223,6 @@ class Networking {
217
223
  let eventResponse = await this.request(config.ENDPOINTS.EVENTS_PUSH, {
218
224
  event_name: eventKeyword,
219
225
  event_type: eventType,
220
- // action: eventKeyword,
221
226
  appevent: eventKeyword,
222
227
  payload: eventData,
223
228
  ...Session.sessionData,
@@ -231,6 +236,24 @@ class Networking {
231
236
  console.log('Error al enviar evento a AdJust', error);
232
237
  }
233
238
  }
239
+
240
+ addPendingEvent(event) {
241
+ console.log('addPendingEvent', event);
242
+ this.PENDING_EVENTS.push(event);
243
+ }
244
+
245
+ clearPendingEvents() {
246
+ console.log('clearPendingEvents');
247
+ this.PENDING_EVENTS = [];
248
+ }
249
+
250
+ async sendPendingEvents() {
251
+ this.PENDING_EVENTS.forEach(async event => {
252
+ console.log('sendPendingEvents', event);
253
+ await this.sendEvent(event.eventType, event.eventKeyword, event.eventData);
254
+ });
255
+ this.clearPendingEvents();
256
+ }
234
257
  }
235
258
 
236
259
  export default new Networking();
@@ -67,7 +67,9 @@ class Session {
67
67
  if (this.sessionData.isFirstOpen) {
68
68
  config.DEBUG_MODE && console.debug("checkFirstOpen - First Open");
69
69
  await this.sendFirstOpen();
70
- await Storage.storeData("FirstOpenAlreadyExecuted", true);
70
+ if (config.TRACKING_ACTIVE) {
71
+ await Storage.storeData("FirstOpenAlreadyExecuted", true);
72
+ }
71
73
  } else {
72
74
  config.DEBUG_MODE && console.debug("checkFirstOpen - Not First Open");
73
75
  }
@@ -270,6 +270,7 @@ class Storage {
270
270
 
271
271
  setTrackingPermissionGranted(value) {
272
272
  config.TRACKING_ACTIVE = value;
273
+ this.storeData('TRACKING_PERMISSION', value ? 'granted' : 'denied');
273
274
  }
274
275
  }
275
276
 
@@ -1,4 +1,4 @@
1
- import {getAdvertisingId, requestTrackingPermissionsAsync} from "expo-tracking-transparency";
1
+ import {getAdvertisingId, requestTrackingPermissionsAsync, getTrackingPermissionsAsync} from "expo-tracking-transparency";
2
2
  import Storage from './Storage';
3
3
  import Networking from './Networking';
4
4
  import * as config from '../../config';
@@ -9,25 +9,33 @@ class TrackingTransparency {
9
9
  let trackingResult = 'denied';
10
10
  let trackingPermission = await Storage.getData('TRACKING_PERMISSION');
11
11
  console.log('current trackingPermission', trackingPermission);
12
- if (!trackingPermission || trackingPermission !== 'granted') {
12
+ if (!trackingPermission) {
13
13
  const { status } = await requestTrackingPermissionsAsync();
14
- console.log('Tracking Transparency permission status', status);
14
+ await Storage.storeData('TRACKING_PERMISSION_ANSWERED', true);
15
+ await Networking.sendPendingEvents();
16
+ config.TRACKING_ANSWERED = true;
15
17
  if (status !== 'undetermined') {
16
18
  if (status === 'granted') {
17
- Storage.storeData('TRACKING_PERMISSION', 'granted');
18
- Networking.sendEvent('action', 'tracking_consent');
19
+ trackingResult = 'granted';
20
+ await Storage.storeData('TRACKING_PERMISSION', 'granted');
21
+ await Networking.sendEvent('action', 'tracking_consent');
19
22
  console.log('Tracking Transparency permission granted');
20
23
  } else {
21
- Storage.storeData('TRACKING_PERMISSION', 'denied');
22
- Networking.sendEvent('action', 'tracking_denied');
23
- trackingResult = 'denied';
24
+ await Storage.storeData('TRACKING_PERMISSION', 'denied');
25
+ await Networking.sendEvent('action', 'tracking_denied');
24
26
  console.log('Tracking Transparency permission denied');
25
27
  }
26
28
  }
27
- config.TRACKING_ACTIVE = (trackingResult === 'granted');
28
- return Promise.resolve(trackingResult);
29
29
  }
30
- return Promise.resolve(trackingPermission);
30
+ config.TRACKING_ACTIVE = (trackingResult === 'granted');
31
+ return trackingResult;
32
+ }
33
+
34
+ async getTrackingTransparencyPermission() {
35
+ let tracking = await getTrackingPermissionsAsync();
36
+ if (tracking) {
37
+ return tracking.status;
38
+ }
31
39
  }
32
40
 
33
41
  async getAdvertisingIdentifier() {
package/types/index.d.ts CHANGED
@@ -73,9 +73,12 @@ declare module 'apps-sdk' {
73
73
  getEndpoints(): any;
74
74
  setEvents(events: any): void;
75
75
  sendEvent(eventType: string, eventKeyword:string, eventData?: object): Promise<void>;
76
- createSubscription();
76
+ createSubscription(): any;
77
77
  checkConnection(): Promise<boolean>;
78
78
  setImageCompression(compression: any): void;
79
+ addPendingEvent(event: any): void;
80
+ sendPendingEvents(): Promise<void>;
81
+ clearPendingEvents(): void;
79
82
  }
80
83
 
81
84
  export class Storage {
@@ -148,6 +151,7 @@ declare module 'apps-sdk' {
148
151
  export class TrackingTransparency {
149
152
  requestTrackingTransparencyPermission(): Promise<string>;
150
153
  getAdvertisingIdentifier(): Promise<string>;
154
+ getTrackingTransparencyPermission(): Promise<string>;
151
155
  }
152
156
 
153
157
  export class AppsSDK {