apps-sdk 1.0.86 → 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
@@ -46,7 +46,15 @@ export const ADJUST = {
46
46
  },
47
47
  }
48
48
 
49
- export var TRACKING_ACTIVE = true;
49
+ export var IMAGE_COMPRESSION = {
50
+ COMPRESSION: 0.8,
51
+ WIDTH: 800,
52
+ ACTIVE: true,
53
+ }
54
+
55
+ export var TRACKING_ACTIVE = false;
56
+
57
+ export var TRACKING_ANSWERED = false;
50
58
 
51
59
  export var FORCED_UPDATE = false;
52
60
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "apps-sdk",
3
- "version": "1.0.86",
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,11 +28,13 @@ 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);
33
35
  this.checkSubscription();
34
36
  this.setForcedUpdate(initData.data);
37
+ this.setImageCompression(initData.data.image);
35
38
  }
36
39
  } catch (error) {
37
40
  console.error(error);
@@ -135,6 +138,13 @@ class Networking {
135
138
  storage.storeData("ENDPOINTS", config.ENDPOINTS);
136
139
  }
137
140
 
141
+ setImageCompression(compression) {
142
+ config.IMAGE_COMPRESSION.COMPRESSION = compression.compress;
143
+ config.IMAGE_COMPRESSION.WIDTH = compression.width;
144
+ config.IMAGE_COMPRESSION.ACTIVE = Boolean(compression.active);
145
+ storage.storeData("IMAGE_COMPRESSION", config.IMAGE_COMPRESSION);
146
+ }
147
+
138
148
  getEndpoints() {
139
149
  return storage.getData("ENDPOINTS");
140
150
  }
@@ -201,6 +211,10 @@ class Networking {
201
211
  sendEvent = async (eventType, eventKeyword, eventData={}) => {
202
212
  if (config.TRACKING_ACTIVE === false) {
203
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
+ }
204
218
  return;
205
219
  }
206
220
  config.DEBUG_MODE && console.debug("sendEvent", eventType, eventKeyword, eventData);
@@ -209,7 +223,6 @@ class Networking {
209
223
  let eventResponse = await this.request(config.ENDPOINTS.EVENTS_PUSH, {
210
224
  event_name: eventKeyword,
211
225
  event_type: eventType,
212
- // action: eventKeyword,
213
226
  appevent: eventKeyword,
214
227
  payload: eventData,
215
228
  ...Session.sessionData,
@@ -223,6 +236,24 @@ class Networking {
223
236
  console.log('Error al enviar evento a AdJust', error);
224
237
  }
225
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
+ }
226
257
  }
227
258
 
228
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';
@@ -6,25 +6,38 @@ import * as config from '../../config';
6
6
  class TrackingTransparency {
7
7
  async requestTrackingTransparencyPermission() {
8
8
  console.log('requestTrackingTransparencyPermission');
9
- let trackingResult = 'granted';
9
+ let trackingResult = 'denied';
10
10
  let trackingPermission = await Storage.getData('TRACKING_PERMISSION');
11
- if (!trackingPermission || trackingPermission !== 'granted') {
11
+ console.log('current trackingPermission', trackingPermission);
12
+ if (!trackingPermission) {
12
13
  const { status } = await requestTrackingPermissionsAsync();
13
- if (status === 'granted') {
14
- Storage.storeData('TRACKING_PERMISSION', 'granted');
15
- Networking.sendEvent('action', 'tracking_consent');
16
- console.log('Tracking Transparency permission granted');
17
- } else {
18
- Storage.storeData('TRACKING_PERMISSION', 'denied');
19
- Networking.sendEvent('action', 'tracking_denied');
20
- trackingResult = 'denied';
21
- console.log('Tracking Transparency permission denied');
14
+ await Storage.storeData('TRACKING_PERMISSION_ANSWERED', true);
15
+ await Networking.sendPendingEvents();
16
+ config.TRACKING_ANSWERED = true;
17
+ if (status !== 'undetermined') {
18
+ if (status === 'granted') {
19
+ trackingResult = 'granted';
20
+ await Storage.storeData('TRACKING_PERMISSION', 'granted');
21
+ await Networking.sendEvent('action', 'tracking_consent');
22
+ console.log('Tracking Transparency permission granted');
23
+ } else {
24
+ await Storage.storeData('TRACKING_PERMISSION', 'denied');
25
+ await Networking.sendEvent('action', 'tracking_denied');
26
+ console.log('Tracking Transparency permission denied');
27
+ }
22
28
  }
23
29
  }
24
30
  config.TRACKING_ACTIVE = (trackingResult === 'granted');
25
31
  return trackingResult;
26
32
  }
27
33
 
34
+ async getTrackingTransparencyPermission() {
35
+ let tracking = await getTrackingPermissionsAsync();
36
+ if (tracking) {
37
+ return tracking.status;
38
+ }
39
+ }
40
+
28
41
  async getAdvertisingIdentifier() {
29
42
  return getAdvertisingId();
30
43
  }
package/types/index.d.ts CHANGED
@@ -73,8 +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
+ setImageCompression(compression: any): void;
79
+ addPendingEvent(event: any): void;
80
+ sendPendingEvents(): Promise<void>;
81
+ clearPendingEvents(): void;
78
82
  }
79
83
 
80
84
  export class Storage {
@@ -147,6 +151,7 @@ declare module 'apps-sdk' {
147
151
  export class TrackingTransparency {
148
152
  requestTrackingTransparencyPermission(): Promise<string>;
149
153
  getAdvertisingIdentifier(): Promise<string>;
154
+ getTrackingTransparencyPermission(): Promise<string>;
150
155
  }
151
156
 
152
157
  export class AppsSDK {