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 +2 -0
- package/package.json +1 -1
- package/src/libraries/Networking.js +24 -1
- package/src/libraries/Session.js +3 -1
- package/src/libraries/Storage.js +12 -5
- package/src/libraries/TrackingTransparency.js +19 -11
- package/types/index.d.ts +5 -1
package/config.js
CHANGED
package/package.json
CHANGED
|
@@ -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();
|
package/src/libraries/Session.js
CHANGED
|
@@ -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
|
-
|
|
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
|
}
|
package/src/libraries/Storage.js
CHANGED
|
@@ -89,7 +89,7 @@ class Storage {
|
|
|
89
89
|
}
|
|
90
90
|
}
|
|
91
91
|
if (galleryPermission === 'granted') {
|
|
92
|
-
let fileUri = FileSystem.documentDirectory + fileName + '.
|
|
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.
|
|
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.
|
|
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
|
-
|
|
198
|
+
let imageUri = `${directoryUri}/image.png`;
|
|
199
199
|
const dataUri = `${directoryUri}/data.json`;
|
|
200
|
+
let imageData = null;
|
|
200
201
|
try {
|
|
201
|
-
|
|
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
|
|
12
|
+
if (!trackingPermission) {
|
|
13
13
|
const { status } = await requestTrackingPermissionsAsync();
|
|
14
|
-
|
|
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
|
-
|
|
18
|
-
|
|
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
|
-
|
|
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 {
|