apps-sdk 1.0.87 → 1.0.89

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.89",
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
  }
@@ -89,7 +89,7 @@ class Storage {
89
89
  }
90
90
  }
91
91
  if (galleryPermission === 'granted') {
92
- let fileUri = FileSystem.documentDirectory + fileName + '.jpg';
92
+ let fileUri = FileSystem.documentDirectory + fileName + '.png';
93
93
  if (utils.isBase64Image(base64)) {
94
94
  console.log('DOWNLOADIMAGE isBase64Image');
95
95
  const data = await fetch(base64);
@@ -124,7 +124,7 @@ class Storage {
124
124
  const directoryUri = CREATIONS_DIR + '/' + fileName;
125
125
  console.log('handleDownloadImageToCreations directoryUri:', directoryUri);
126
126
  await this.createDir(directoryUri);
127
- const fileUri = directoryUri + '/image.jpg';
127
+ const fileUri = directoryUri + '/image.png';
128
128
  console.log('handleDownloadImageToCreations fileUri:', fileUri);
129
129
  const fileData = directoryUri + '/data.json';
130
130
  console.log('handleDownloadImageToCreations fileData:', fileData);
@@ -143,7 +143,7 @@ class Storage {
143
143
  const directoryUri = TMP_DIR + '/' + fileName;
144
144
  console.log('handleDownloadImageToTMP directoryUri:', directoryUri);
145
145
  await this.createDir(directoryUri);
146
- const fileUri = directoryUri + '/image.jpg';
146
+ const fileUri = directoryUri + '/image.png';
147
147
  console.log('handleDownloadImageToTMP fileUri:', fileUri);
148
148
  console.log('handleDownloadImageToTMP base64Image:', base64Image.substring(0, 50) + '...');
149
149
  const base64Data = base64Image.replace(/^data:image\/[a-z]+;base64,/, '');
@@ -195,10 +195,16 @@ class Storage {
195
195
 
196
196
  for (const directory of directories) {
197
197
  const directoryUri = `${CREATIONS_DIR}/${directory}`;
198
- const imageUri = `${directoryUri}/image.jpg`;
198
+ let imageUri = `${directoryUri}/image.png`;
199
199
  const dataUri = `${directoryUri}/data.json`;
200
+ let imageData = null;
200
201
  try {
201
- const imageData = await FileSystem.readAsStringAsync(imageUri, { encoding: FileSystem.EncodingType.Base64 });
202
+ try {
203
+ imageData = await FileSystem.readAsStringAsync(imageUri, { encoding: FileSystem.EncodingType.Base64 });
204
+ } catch (error) {
205
+ imageUri = `${directoryUri}/image.jpg`;
206
+ imageData = await FileSystem.readAsStringAsync(imageUri, { encoding: FileSystem.EncodingType.Base64 });
207
+ }
202
208
  const jsonData = await FileSystem.readAsStringAsync(dataUri, { encoding: FileSystem.EncodingType.UTF8 });
203
209
  config.DEBUG_MODE && console.debug('getCreations jsonData:', jsonData);
204
210
 
@@ -270,6 +276,7 @@ class Storage {
270
276
 
271
277
  setTrackingPermissionGranted(value) {
272
278
  config.TRACKING_ACTIVE = value;
279
+ this.storeData('TRACKING_PERMISSION', value ? 'granted' : 'denied');
273
280
  }
274
281
  }
275
282
 
@@ -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 {