@adadapted/react-native-sdk 3.4.0 → 3.5.0

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.
Files changed (48) hide show
  1. package/lib/commonjs/api/adadaptedApiRequests.js +9 -9
  2. package/lib/commonjs/api/adadaptedApiRequests.js.map +1 -1
  3. package/lib/commonjs/api/adadaptedApiTypes.js.map +1 -1
  4. package/lib/commonjs/componentTypes/AdZone.js +11 -0
  5. package/lib/commonjs/componentTypes/AdZone.js.map +1 -0
  6. package/lib/commonjs/componentTypes/Device.js +22 -0
  7. package/lib/commonjs/componentTypes/Device.js.map +1 -0
  8. package/lib/commonjs/componentTypes/Environment.js +34 -0
  9. package/lib/commonjs/componentTypes/Environment.js.map +1 -0
  10. package/lib/commonjs/components/AdZone.js +11 -15
  11. package/lib/commonjs/components/AdZone.js.map +1 -1
  12. package/lib/commonjs/index.js +96 -116
  13. package/lib/commonjs/index.js.map +1 -1
  14. package/lib/module/api/adadaptedApiRequests.js +9 -9
  15. package/lib/module/api/adadaptedApiRequests.js.map +1 -1
  16. package/lib/module/api/adadaptedApiTypes.js.map +1 -1
  17. package/lib/module/componentTypes/AdZone.js +7 -0
  18. package/lib/module/componentTypes/AdZone.js.map +1 -0
  19. package/lib/module/componentTypes/Device.js +18 -0
  20. package/lib/module/componentTypes/Device.js.map +1 -0
  21. package/lib/module/componentTypes/Environment.js +30 -0
  22. package/lib/module/componentTypes/Environment.js.map +1 -0
  23. package/lib/module/components/AdZone.js +11 -15
  24. package/lib/module/components/AdZone.js.map +1 -1
  25. package/lib/module/index.js +92 -122
  26. package/lib/module/index.js.map +1 -1
  27. package/lib/typescript/src/api/adadaptedApiRequests.d.ts +10 -9
  28. package/lib/typescript/src/api/adadaptedApiRequests.d.ts.map +1 -1
  29. package/lib/typescript/src/api/adadaptedApiTypes.d.ts +11 -4
  30. package/lib/typescript/src/api/adadaptedApiTypes.d.ts.map +1 -1
  31. package/lib/typescript/src/componentTypes/AdZone.d.ts +95 -0
  32. package/lib/typescript/src/componentTypes/AdZone.d.ts.map +1 -0
  33. package/lib/typescript/src/componentTypes/Device.d.ts +80 -0
  34. package/lib/typescript/src/componentTypes/Device.d.ts.map +1 -0
  35. package/lib/typescript/src/componentTypes/Environment.d.ts +57 -0
  36. package/lib/typescript/src/componentTypes/Environment.d.ts.map +1 -0
  37. package/lib/typescript/src/components/AdZone.d.ts +2 -55
  38. package/lib/typescript/src/components/AdZone.d.ts.map +1 -1
  39. package/lib/typescript/src/index.d.ts +38 -142
  40. package/lib/typescript/src/index.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/api/adadaptedApiRequests.ts +25 -24
  43. package/src/api/adadaptedApiTypes.ts +11 -5
  44. package/src/componentTypes/AdZone.ts +97 -0
  45. package/src/componentTypes/Device.ts +79 -0
  46. package/src/componentTypes/Environment.ts +58 -0
  47. package/src/components/AdZone.tsx +33 -111
  48. package/src/index.tsx +152 -250
@@ -2,71 +2,9 @@
2
2
  * The AdadaptedReactNativeSdk package/module definition.
3
3
  */
4
4
  import * as React from "react";
5
- import { AdZoneDetailedListItemInfo, KeywordSearchTerm, OutOfAppDataPayload } from "./api/adadaptedApiTypes";
6
- /**
7
- * Enum representing possible device operating systems.
8
- */
9
- export declare enum DeviceOS {
10
- /**
11
- * Represents the Android operating system.
12
- */
13
- ANDROID = "android",
14
- /**
15
- * Represents the iOS operating system.
16
- */
17
- IOS = "ios"
18
- }
19
- /**
20
- * Enum defining the different API environments.
21
- */
22
- export declare enum ApiEnv {
23
- /**
24
- * The production API environment.
25
- */
26
- Prod = "https://ads.adadapted.com",
27
- /**
28
- * The development API environment.
29
- */
30
- Dev = "https://sandbox.adadapted.com",
31
- /**
32
- * Used only for unit testing/mock data.
33
- */
34
- Mock = "MOCK_DATA"
35
- }
36
- /**
37
- * Enum defining the different API environments for List Manager.
38
- */
39
- export declare enum ListManagerApiEnv {
40
- /**
41
- * The production API environment.
42
- */
43
- Prod = "https://ec.adadapted.com",
44
- /**
45
- * The development API environment.
46
- */
47
- Dev = "https://sandec.adadapted.com",
48
- /**
49
- * Used only for unit testing/mocking data.
50
- */
51
- Mock = "MOCK_DATA"
52
- }
53
- /**
54
- * Enum defining the different API environments for the Payload Server.
55
- */
56
- export declare enum PayloadApiEnv {
57
- /**
58
- * The production API environment.
59
- */
60
- Prod = "https://payload.adadapted.com",
61
- /**
62
- * The development API environment.
63
- */
64
- Dev = "https://sandpayload.adadapted.com",
65
- /**
66
- * Used only for unit testing/mocking data.
67
- */
68
- Mock = "MOCK_DATA"
69
- }
5
+ import { DetailedListItem, KeywordSearchTerm, OutOfAppDataPayload } from "./api/adadaptedApiTypes";
6
+ import { DeviceTypes } from "./componentTypes/Device";
7
+ import { EnvironmentTypes } from "./componentTypes/Environment";
70
8
  /**
71
9
  * Interface defining inputs to the {@link Sdk.initialize: AdadaptedReactNativeSdk} method.
72
10
  */
@@ -79,7 +17,7 @@ export interface InitializeProps {
79
17
  * The API environment.
80
18
  * If undefined, defaults to production.
81
19
  */
82
- apiEnv?: ApiEnv;
20
+ apiEnv?: EnvironmentTypes.ApiEnv;
83
21
  /**
84
22
  * Optional custom advertiserId to replace IDFA - ios only.
85
23
  */
@@ -100,80 +38,19 @@ export interface InitializeProps {
100
38
  onAdZonesRefreshed?(): void;
101
39
  /**
102
40
  * Callback that gets triggered when an "add to list" item/items are clicked.
103
- * @param detail - details about the list items to add to cart.
41
+ * @param items - The array of items to "add to list".
104
42
  */
105
- onAddToListTriggered?(detail: AdZoneDetailedListItemInfo): void;
43
+ onAddToListTriggered?(items: DetailedListItem[]): void;
106
44
  /**
107
45
  * Callback that gets triggered when an "add to list"
108
46
  * occurs by means of an "out of app" data payload.
109
- * @param detail - Details about payloads clients must go through.
47
+ * @param payloads - All payloads the client must go through.
110
48
  */
111
49
  onOutOfAppPayloadAvailable?(payloads: OutOfAppDataPayload[]): void;
112
50
  /**
113
- * Ad zones that contain off-screen ads.
51
+ * Ad zone ids that contain off-screen ads.
114
52
  */
115
- offScreenAdZone?: [number];
116
- }
117
- /**
118
- * Interface defining properties of a user's Device.
119
- */
120
- export interface DeviceInfo {
121
- /**
122
- * The unique device ID.
123
- */
124
- udid: string;
125
- /**
126
- * The device name.
127
- */
128
- deviceName: string;
129
- /**
130
- * The operating system name.
131
- */
132
- systemName: string;
133
- /**
134
- * The operating system version.
135
- */
136
- systemVersion: string;
137
- /**
138
- * The device model.
139
- */
140
- deviceModel: string;
141
- /**
142
- * The device screen width.
143
- */
144
- deviceWidth: string;
145
- /**
146
- * The device screen height.
147
- */
148
- deviceHeight: string;
149
- /**
150
- * The device screen density.
151
- */
152
- deviceScreenDensity: string;
153
- /**
154
- * The current device local.
155
- */
156
- deviceLocale: string;
157
- /**
158
- * The device carrier name.
159
- */
160
- deviceCarrier: string;
161
- /**
162
- * The bundle ID.
163
- */
164
- bundleId: string;
165
- /**
166
- * The bundle version.
167
- */
168
- bundleVersion: string;
169
- /**
170
- * The current device timezone.
171
- */
172
- deviceTimezone: string;
173
- /**
174
- * If true, ad tracking is enabled for the device.
175
- */
176
- isAdTrackingEnabled: boolean;
53
+ offScreenAdZoneIds?: [number];
177
54
  }
178
55
  /**
179
56
  * Interface defining a wrapper for an {@link AdZone}.
@@ -241,6 +118,10 @@ export declare class AdadaptedReactNativeSdk {
241
118
  * The available off-screen ad zones.
242
119
  */
243
120
  private offScreenAdZones;
121
+ /**
122
+ * The zone ids of the availible off-screen ad zones.
123
+ */
124
+ private offScreenAdZoneIds;
244
125
  /**
245
126
  * The touch sensitivity of the Ad Zone in both the X and Y directions.
246
127
  * This is used to determine the click/press sensitivity when the
@@ -275,7 +156,7 @@ export declare class AdadaptedReactNativeSdk {
275
156
  /**
276
157
  * If provided, triggers when an "add to list" item is
277
158
  * clicked in an ad zone.
278
- * @param detail - The array of items to "add to list".
159
+ * @param items - The array of items to "add to list".
279
160
  * @param isExternalPayload - If true, the items are from an external payload.
280
161
  */
281
162
  private onAddToListTriggered;
@@ -294,9 +175,13 @@ export declare class AdadaptedReactNativeSdk {
294
175
  */
295
176
  private AppStateOnEventListener;
296
177
  /**
297
- * Ad zones that contain off-screen ads.
178
+ * The current adzone visibility status.
298
179
  */
299
- private offScreenAdZone;
180
+ private isAdZoneVisible;
181
+ /**
182
+ * The ad context object.
183
+ */
184
+ private adContext;
300
185
  /**
301
186
  * Gets the Session ID.
302
187
  * @returns the Session ID.
@@ -306,7 +191,7 @@ export declare class AdadaptedReactNativeSdk {
306
191
  * Gets the Device Info object.
307
192
  * @returns the Device Info object.
308
193
  */
309
- getDeviceInfo(): DeviceInfo | undefined;
194
+ getDeviceInfo(): DeviceTypes.DeviceInfo | undefined;
310
195
  /**
311
196
  * Gets the list of available Ad Zones.
312
197
  * @returns all available ad zones.
@@ -317,6 +202,20 @@ export declare class AdadaptedReactNativeSdk {
317
202
  * @returns all available off-screen ad zones.
318
203
  */
319
204
  getOffScreenAdZones(): AdZoneInfo[] | undefined;
205
+ /**
206
+ * Sets an ad context to replace an ad zone's ads with contextual ads for recipes.
207
+ * @param adContext - Object containing the contextual term and the associted ad zone.
208
+ * @param adContext.contextIds - An array of contextual ad ids.
209
+ * @param adContext.zoneIds - An array of zone ids for applying contextual ads.
210
+ */
211
+ setAdContext(adContext: {
212
+ contextIds: string[];
213
+ zoneIds: string[];
214
+ }): void;
215
+ /**
216
+ * Clear the contextual ads from ad zones to return standard ads to the ad zones.
217
+ */
218
+ clearAdContext(): void;
320
219
  /**
321
220
  * @inheritDoc
322
221
  */
@@ -326,21 +225,18 @@ export declare class AdadaptedReactNativeSdk {
326
225
  * @returns a Promise of void.
327
226
  */
328
227
  private getDeviceInformation;
228
+ private adZoneTemplate;
329
229
  /**
330
230
  * Creates all Ad Zone Info objects based on provided Ad Zones.
331
231
  * @param adZones - The object of available zones.
232
+ * @param offScreenAdZone - True if an ad zone first renders out of view.
332
233
  * @returns the array of Ad Zone Info objects.
333
234
  */
334
235
  private generateAdZones;
335
- /**
336
- * Creates all off-screen Ad Zone Info objects based on provided off-screen Ad Zones.
337
- * @param adZones - The object of available zones.
338
- * @returns the array of off-screen Ad Zone Info objects.
339
- */
340
- private generateOffScreenAdZones;
341
236
  /**
342
237
  * Triggered when session data is initialized or refreshed. Creates
343
238
  * a timer based on the session data refresh value.
239
+ * @param immediateRefresh - If true the ad zones are refreshed bypassing the timer.
344
240
  */
345
241
  private onRefreshAdZones;
346
242
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@adadapted/react-native-sdk",
3
- "version": "3.4.0",
3
+ "version": "3.5.0",
4
4
  "description": "The AdAdapted react-native SDK.",
5
5
  "main": "lib/commonjs/index.js",
6
6
  "module": "lib/module/index.js",
@@ -19,7 +19,8 @@ import {
19
19
  } from "./adadaptedApiTypes";
20
20
  import axios, { AxiosResponse } from "axios";
21
21
  import * as adadaptedApiRequestMocks from "./adadaptedApiRequests.mock";
22
- import { ApiEnv, DeviceOS, ListManagerApiEnv, PayloadApiEnv } from "../index";
22
+ import { DeviceTypes } from "../componentTypes/Device";
23
+ import { EnvironmentTypes } from "../componentTypes/Environment";
23
24
 
24
25
  /**
25
26
  * Makes an API request to initialize the session for the AdAdapted API.
@@ -30,10 +31,10 @@ import { ApiEnv, DeviceOS, ListManagerApiEnv, PayloadApiEnv } from "../index";
30
31
  */
31
32
  export function initializeSession(
32
33
  requestData: InitializeSessionRequest,
33
- deviceOS: DeviceOS,
34
- apiEnv: ApiEnv
34
+ deviceOS: DeviceTypes.DeviceOS,
35
+ apiEnv: EnvironmentTypes.ApiEnv
35
36
  ): Promise<AxiosResponse<InitializeSessionResponse>> {
36
- return apiEnv === ApiEnv.Mock
37
+ return apiEnv === EnvironmentTypes.ApiEnv.Mock
37
38
  ? adadaptedApiRequestMocks.initializeSession()
38
39
  : axios(`${apiEnv}/v/0.9.5/${deviceOS}/sessions/initialize`, {
39
40
  method: "POST",
@@ -54,13 +55,13 @@ export function initializeSession(
54
55
  */
55
56
  export function refreshSessionData(
56
57
  requestData: RefreshSessionDataRequest,
57
- deviceOS: DeviceOS,
58
- apiEnv: ApiEnv
58
+ deviceOS: DeviceTypes.DeviceOS,
59
+ apiEnv: EnvironmentTypes.ApiEnv
59
60
  ): Promise<AxiosResponse<RefreshSessionDataResponse>> {
60
- return apiEnv === ApiEnv.Mock
61
+ return apiEnv === EnvironmentTypes.ApiEnv.Mock
61
62
  ? adadaptedApiRequestMocks.refreshSessionData()
62
63
  : axios(
63
- `${apiEnv}/v/0.9.5/${deviceOS}/ads/retrieve?aid=${requestData.aid}&sid=${requestData.sid}&uid=${requestData.uid}`,
64
+ `${apiEnv}/v/0.9.5/${deviceOS}/ads/retrieve?aid=${requestData.aid}&sid=${requestData.sid}&uid=${requestData.uid}&sdk=${requestData.sdkVersion}&contextID=${requestData.adContext?.contextIds}&zoneID=${requestData.adContext?.zoneIds}`,
64
65
  {
65
66
  method: "GET",
66
67
  headers: {
@@ -80,10 +81,10 @@ export function refreshSessionData(
80
81
  */
81
82
  export function reportAdEvent(
82
83
  requestData: ReportAdEventRequest,
83
- deviceOS: DeviceOS,
84
- apiEnv: ApiEnv
84
+ deviceOS: DeviceTypes.DeviceOS,
85
+ apiEnv: EnvironmentTypes.ApiEnv
85
86
  ): Promise<AxiosResponse<ReportAdEventResponse>> {
86
- return apiEnv === ApiEnv.Mock
87
+ return apiEnv === EnvironmentTypes.ApiEnv.Mock
87
88
  ? adadaptedApiRequestMocks.reportAdEvent()
88
89
  : axios(`${apiEnv}/v/0.9.5/${deviceOS}/ads/events`, {
89
90
  method: "POST",
@@ -104,10 +105,10 @@ export function reportAdEvent(
104
105
  */
105
106
  export function getKeywordIntercepts(
106
107
  requestData: KeywordInterceptsRequest,
107
- deviceOS: DeviceOS,
108
- apiEnv: ApiEnv
108
+ deviceOS: DeviceTypes.DeviceOS,
109
+ apiEnv: EnvironmentTypes.ApiEnv
109
110
  ): Promise<AxiosResponse<KeywordInterceptsResponse>> {
110
- return apiEnv === ApiEnv.Mock
111
+ return apiEnv === EnvironmentTypes.ApiEnv.Mock
111
112
  ? adadaptedApiRequestMocks.getKeywordIntercepts()
112
113
  : axios(
113
114
  `${apiEnv}/v/0.9.5/${deviceOS}/intercepts/retrieve?aid=${requestData.aid}&sid=${requestData.sid}&uid=${requestData.uid}`,
@@ -130,10 +131,10 @@ export function getKeywordIntercepts(
130
131
  */
131
132
  export function reportInterceptEvent(
132
133
  requestData: ReportInterceptEventRequest,
133
- deviceOS: DeviceOS,
134
- apiEnv: ApiEnv
134
+ deviceOS: DeviceTypes.DeviceOS,
135
+ apiEnv: EnvironmentTypes.ApiEnv
135
136
  ): Promise<AxiosResponse<ReportInterceptEventResponse>> {
136
- return apiEnv === ApiEnv.Mock
137
+ return apiEnv === EnvironmentTypes.ApiEnv.Mock
137
138
  ? adadaptedApiRequestMocks.reportInterceptEvent()
138
139
  : axios(`${apiEnv}/v/0.9.5/${deviceOS}/intercepts/events`, {
139
140
  method: "POST",
@@ -154,10 +155,10 @@ export function reportInterceptEvent(
154
155
  */
155
156
  export function reportListManagerEvents(
156
157
  requestData: ReportListManagerDataRequest,
157
- deviceOS: DeviceOS,
158
- apiEnv: ListManagerApiEnv
158
+ deviceOS: DeviceTypes.DeviceOS,
159
+ apiEnv: EnvironmentTypes.ListManagerApiEnv
159
160
  ): Promise<AxiosResponse<void>> {
160
- return apiEnv === ListManagerApiEnv.Mock
161
+ return apiEnv === EnvironmentTypes.ListManagerApiEnv.Mock
161
162
  ? adadaptedApiRequestMocks.reportListManagerEvents()
162
163
  : axios(`${apiEnv}/v/1/${deviceOS}/events`, {
163
164
  method: "POST",
@@ -178,9 +179,9 @@ export function reportListManagerEvents(
178
179
  */
179
180
  export function reportPayloadContentStatus(
180
181
  requestData: ReportPayloadDataRequest,
181
- apiEnv: PayloadApiEnv
182
+ apiEnv: EnvironmentTypes.PayloadApiEnv
182
183
  ): Promise<AxiosResponse<void>> {
183
- return apiEnv === PayloadApiEnv.Mock
184
+ return apiEnv === EnvironmentTypes.PayloadApiEnv.Mock
184
185
  ? adadaptedApiRequestMocks.reportPayloadContentStatus()
185
186
  : axios(`${apiEnv}/v/1/tracking`, {
186
187
  method: "POST",
@@ -200,9 +201,9 @@ export function reportPayloadContentStatus(
200
201
  */
201
202
  export function retrievePayloadContent(
202
203
  requestData: RetrievePayloadItemDataRequest,
203
- apiEnv: PayloadApiEnv
204
+ apiEnv: EnvironmentTypes.PayloadApiEnv
204
205
  ): Promise<AxiosResponse<RetrievePayloadItemDataResponse>> {
205
- return apiEnv === PayloadApiEnv.Mock
206
+ return apiEnv === EnvironmentTypes.PayloadApiEnv.Mock
206
207
  ? adadaptedApiRequestMocks.retrievePayloadContent()
207
208
  : axios(`${apiEnv}/v/1/pickup`, {
208
209
  method: "POST",
@@ -156,11 +156,6 @@ export interface OutOfAppDataPayload {
156
156
  detailed_list_items: DetailedListItem[];
157
157
  }
158
158
 
159
- export interface AdZoneDetailedListItemInfo {
160
- zoneId: string;
161
- items: DetailedListItem[];
162
- }
163
-
164
159
  /**
165
160
  * The definition of a Detailed List Item.
166
161
  */
@@ -571,6 +566,17 @@ export interface RefreshSessionDataRequest {
571
566
  * The current session ID.
572
567
  */
573
568
  sid: string;
569
+ /**
570
+ * The current sdk version.
571
+ */
572
+ sdkVersion: string;
573
+ /**
574
+ * The context IDs and associated zone IDs.
575
+ */
576
+ adContext?: {
577
+ contextIds: string[] | undefined;
578
+ zoneIds: string[];
579
+ };
574
580
  }
575
581
 
576
582
  /**
@@ -0,0 +1,97 @@
1
+ import { ViewStyle } from "react-native/types";
2
+ import { Zone, DetailedListItem } from "src/api/adadaptedApiTypes";
3
+ import { DeviceTypes } from "./Device";
4
+ import { EnvironmentTypes } from "./Environment";
5
+
6
+ /**
7
+ * Namespace for AdZone types.
8
+ */
9
+ export namespace AdZoneTypes {
10
+ /**
11
+ * Props interface for an ad zone.
12
+ */
13
+ export interface Props {
14
+ /**
15
+ * The app ID.
16
+ */
17
+ appId: string;
18
+ /**
19
+ * The session ID.
20
+ */
21
+ sessionId: string;
22
+ /**
23
+ * The UDID.
24
+ */
25
+ udid: string;
26
+ /**
27
+ * The touch sensitivity of the Ad Zone in both the X and Y directions.
28
+ * This is used to determine the click/press sensitivity when the
29
+ * Ad Zone is being touched by the user as a regular touch or while
30
+ * scrolling the view. If the amount of touch "drag" distance in either
31
+ * X or Y direction is less than this value, we will treat the action as
32
+ * a click/press on the Ad Zone.
33
+ */
34
+ xyDragDistanceAllowed: number;
35
+ /**
36
+ * The device OS used for API requests.
37
+ */
38
+ deviceOs: DeviceTypes.DeviceOS;
39
+ /**
40
+ * The API environment to use when making an API request.
41
+ */
42
+ apiEnv: EnvironmentTypes.ApiEnv;
43
+ /**
44
+ * The ad zone data.
45
+ */
46
+ adZoneData: Zone;
47
+ /**
48
+ * Callback that gets triggered when an "add to list" item/items are clicked.
49
+ * @param items - The array of items to "add to list".
50
+ */
51
+ onAddToListTriggered?(items: DetailedListItem[]): void;
52
+ /**
53
+ * An ad zone that is not visible on screen for the initial render.
54
+ */
55
+ offScreenAdZone: boolean;
56
+ /**
57
+ * Track the ad zone visibility in parent component. (for off-screen ads)
58
+ */
59
+ isAdZoneVisible?: boolean;
60
+ /**
61
+ * Flag to determine if the ad is contextual.
62
+ */
63
+ isContextualAd?: boolean;
64
+ }
65
+
66
+ /**
67
+ * Interface for tracking "touch" coordinates.
68
+ */
69
+ export interface TouchCoordinates {
70
+ /**
71
+ * The X coordinate for the touch.
72
+ */
73
+ x: number;
74
+ /**
75
+ * The Y coordinate for the touch.
76
+ */
77
+ y: number;
78
+ }
79
+
80
+ /**
81
+ * Defines the style typing for the component.
82
+ */
83
+ export interface StyleDef {
84
+ /**
85
+ * Styles for the main View element.
86
+ */
87
+ mainView: ViewStyle;
88
+ /**
89
+ * Styles for the WebView element.
90
+ */
91
+ webView: ViewStyle;
92
+ /**
93
+ * Styles for the ReportAdButton.
94
+ */
95
+ reportAd: ViewStyle;
96
+ }
97
+ }
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Namespace for Device types.
3
+ */
4
+ export namespace DeviceTypes {
5
+ /**
6
+ * Enum representing possible device operating systems.
7
+ */
8
+ export enum DeviceOS {
9
+ /**
10
+ * Represents the Android operating system.
11
+ */
12
+ ANDROID = "android",
13
+ /**
14
+ * Represents the iOS operating system.
15
+ */
16
+ IOS = "ios",
17
+ }
18
+ /**
19
+ * Interface defining properties of a user's Device.
20
+ */
21
+ export interface DeviceInfo {
22
+ /**
23
+ * The unique device ID.
24
+ */
25
+ udid: string;
26
+ /**
27
+ * The device name.
28
+ */
29
+ deviceName: string;
30
+ /**
31
+ * The operating system name.
32
+ */
33
+ systemName: string;
34
+ /**
35
+ * The operating system version.
36
+ */
37
+ systemVersion: string;
38
+ /**
39
+ * The device model.
40
+ */
41
+ deviceModel: string;
42
+ /**
43
+ * The device screen width.
44
+ */
45
+ deviceWidth: string;
46
+ /**
47
+ * The device screen height.
48
+ */
49
+ deviceHeight: string;
50
+ /**
51
+ * The device screen density.
52
+ */
53
+ deviceScreenDensity: string;
54
+ /**
55
+ * The current device local.
56
+ */
57
+ deviceLocale: string;
58
+ /**
59
+ * The device carrier name.
60
+ */
61
+ deviceCarrier: string;
62
+ /**
63
+ * The bundle ID.
64
+ */
65
+ bundleId: string;
66
+ /**
67
+ * The bundle version.
68
+ */
69
+ bundleVersion: string;
70
+ /**
71
+ * The current device timezone.
72
+ */
73
+ deviceTimezone: string;
74
+ /**
75
+ * If true, ad tracking is enabled for the device.
76
+ */
77
+ isAdTrackingEnabled: boolean;
78
+ }
79
+ }
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Namespace for environment types.
3
+ */
4
+ export namespace EnvironmentTypes {
5
+ /**
6
+ * Enum defining the different API environments.
7
+ */
8
+ export enum ApiEnv {
9
+ /**
10
+ * The production API environment.
11
+ */
12
+ Prod = "https://ads.adadapted.com",
13
+ /**
14
+ * The development API environment.
15
+ */
16
+ Dev = "https://sandbox.adadapted.com",
17
+ /**
18
+ * Used only for unit testing/mock data.
19
+ */
20
+ Mock = "MOCK_DATA",
21
+ }
22
+
23
+ /**
24
+ * Enum defining the different API environments for List Manager.
25
+ */
26
+ export enum ListManagerApiEnv {
27
+ /**
28
+ * The production API environment.
29
+ */
30
+ Prod = "https://ec.adadapted.com",
31
+ /**
32
+ * The development API environment.
33
+ */
34
+ Dev = "https://sandec.adadapted.com",
35
+ /**
36
+ * Used only for unit testing/mocking data.
37
+ */
38
+ Mock = "MOCK_DATA",
39
+ }
40
+
41
+ /**
42
+ * Enum defining the different API environments for the Payload Server.
43
+ */
44
+ export enum PayloadApiEnv {
45
+ /**
46
+ * The production API environment.
47
+ */
48
+ Prod = "https://payload.adadapted.com",
49
+ /**
50
+ * The development API environment.
51
+ */
52
+ Dev = "https://sandpayload.adadapted.com",
53
+ /**
54
+ * Used only for unit testing/mocking data.
55
+ */
56
+ Mock = "MOCK_DATA",
57
+ }
58
+ }