@smoud/playable-sdk 1.1.3 → 1.2.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.
- package/README.md +9 -0
- package/defines.d.ts +9 -1
- package/dist/esm/index.js +52 -20
- package/dist/iife/index.js +52 -20
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +52 -20
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -44,6 +44,9 @@ It's powerful, unified SDK that seamlessly integrates multiple ad network SDKs,
|
|
|
44
44
|
- Bigabid
|
|
45
45
|
- inMobi
|
|
46
46
|
- Remerge
|
|
47
|
+
- Tencent
|
|
48
|
+
- YouAppi
|
|
49
|
+
- Aarki
|
|
47
50
|
|
|
48
51
|
### Protocol Support
|
|
49
52
|
|
|
@@ -172,6 +175,9 @@ Supported **Ad Networks**:
|
|
|
172
175
|
- `bigabid`
|
|
173
176
|
- `inmobi`
|
|
174
177
|
- `remerge`
|
|
178
|
+
- `tencent`
|
|
179
|
+
- `youappi`
|
|
180
|
+
- `aarki`
|
|
175
181
|
|
|
176
182
|
See more details in [`GitHub repository.`](https://github.com/smoudjs/playable-scripts?tab=readme-ov-file#installation)
|
|
177
183
|
|
|
@@ -347,6 +353,9 @@ sdk.off('eventName', [callback], [context]);
|
|
|
347
353
|
| `ready` | - | Ad container is ready `post` init callback | Start resource loading |
|
|
348
354
|
| `start` | - | Playable experience started | Begin gameplay/animation |
|
|
349
355
|
| `interaction` | `count` | User interaction occurred | Track engagement |
|
|
356
|
+
| `pointerdown` | `x, y, event` | Mouse/touch pressed (unified, no duplicates) | Start drag / tap |
|
|
357
|
+
| `pointermove` | `x, y, event` | Mouse/touch moved while pressed | Update drag |
|
|
358
|
+
| `pointerup` | `x, y, event` | Mouse/touch released or cancelled | End drag / tap |
|
|
350
359
|
| `resize` | `width, height` | Container size changed | Update layout |
|
|
351
360
|
| `pause` | - | Playable entered pause state | Pause gameplay |
|
|
352
361
|
| `resume` | - | Playable resumed from pause | Resume gameplay |
|
package/defines.d.ts
CHANGED
|
@@ -68,7 +68,10 @@ declare const AD_NETWORK:
|
|
|
68
68
|
| 'adikteev'
|
|
69
69
|
| 'bigabid'
|
|
70
70
|
| 'inmobi'
|
|
71
|
-
| 'remerge'
|
|
71
|
+
| 'remerge'
|
|
72
|
+
| 'tencent'
|
|
73
|
+
| 'youappi'
|
|
74
|
+
| 'aarki';
|
|
72
75
|
|
|
73
76
|
declare const AD_PROTOCOL: 'mraid' | 'dapi' | 'nucleo' | 'none';
|
|
74
77
|
declare const GOOGLE_PLAY_URL: string;
|
|
@@ -96,6 +99,11 @@ interface Window {
|
|
|
96
99
|
click: Function;
|
|
97
100
|
};
|
|
98
101
|
|
|
102
|
+
// Tencent functions
|
|
103
|
+
TencentGDT?: {
|
|
104
|
+
clickOpen?: Function;
|
|
105
|
+
};
|
|
106
|
+
|
|
99
107
|
BIGABID_BIDTIMEMACROS?: Record<string, string>
|
|
100
108
|
INMOBI_DSPMACROS?: Record<string, string>
|
|
101
109
|
REMERGE_BIDTIMEMACROS?: Record<string, string>
|
package/dist/esm/index.js
CHANGED
|
@@ -192,6 +192,51 @@ function initTrackingProtocols() {
|
|
|
192
192
|
}
|
|
193
193
|
}
|
|
194
194
|
|
|
195
|
+
// src/interaction.ts
|
|
196
|
+
var TOUCH_MOUSE_DEDUPE_MS = 500;
|
|
197
|
+
var lastTouchTime = 0;
|
|
198
|
+
var isPointerDown = false;
|
|
199
|
+
var isRegistered = false;
|
|
200
|
+
var isMoveRegistered = false;
|
|
201
|
+
function createPointerHandler(name) {
|
|
202
|
+
return function(event) {
|
|
203
|
+
const touches = event.changedTouches;
|
|
204
|
+
let point = event;
|
|
205
|
+
if (touches) {
|
|
206
|
+
lastTouchTime = event.timeStamp;
|
|
207
|
+
point = touches[0];
|
|
208
|
+
} else if (event.timeStamp - lastTouchTime < TOUCH_MOUSE_DEDUPE_MS) return;
|
|
209
|
+
if (name === "pointerdown") {
|
|
210
|
+
isPointerDown = true;
|
|
211
|
+
sdk.interactions += 1;
|
|
212
|
+
emitEvent("interaction", sdk.interactions);
|
|
213
|
+
} else if (!isPointerDown) return;
|
|
214
|
+
else if (name === "pointerup") isPointerDown = !!touches && event.touches.length > 0;
|
|
215
|
+
emitEvent(name, point.clientX, point.clientY, event);
|
|
216
|
+
};
|
|
217
|
+
}
|
|
218
|
+
var onPointerDown = createPointerHandler("pointerdown");
|
|
219
|
+
var onPointerMove = createPointerHandler("pointermove");
|
|
220
|
+
var onPointerUp = createPointerHandler("pointerup");
|
|
221
|
+
function listen(type, handler) {
|
|
222
|
+
document.addEventListener(type, handler);
|
|
223
|
+
}
|
|
224
|
+
function registerInteractionHandlers() {
|
|
225
|
+
if (isRegistered) return;
|
|
226
|
+
isRegistered = true;
|
|
227
|
+
listen("mousedown", onPointerDown);
|
|
228
|
+
listen("touchstart", onPointerDown);
|
|
229
|
+
listen("mouseup", onPointerUp);
|
|
230
|
+
listen("touchend", onPointerUp);
|
|
231
|
+
listen("touchcancel", onPointerUp);
|
|
232
|
+
}
|
|
233
|
+
function registerMoveHandler() {
|
|
234
|
+
if (isMoveRegistered) return;
|
|
235
|
+
isMoveRegistered = true;
|
|
236
|
+
listen("mousemove", onPointerMove);
|
|
237
|
+
listen("touchmove", onPointerMove);
|
|
238
|
+
}
|
|
239
|
+
|
|
195
240
|
// src/core.ts
|
|
196
241
|
var destinationUrl = "";
|
|
197
242
|
var isSDKInitialized = false;
|
|
@@ -396,23 +441,6 @@ function handleResize(width, height) {
|
|
|
396
441
|
sdk.isLandscape = sdk.maxWidth > sdk.maxHeight;
|
|
397
442
|
emitEvent("resize", sdk.maxWidth, sdk.maxHeight);
|
|
398
443
|
}
|
|
399
|
-
var isListeningToTouchEvents = false;
|
|
400
|
-
var isTouchEventRegistered = false;
|
|
401
|
-
function onUserInteraction(event) {
|
|
402
|
-
if (typeof TouchEvent !== "undefined" && event instanceof TouchEvent) {
|
|
403
|
-
isListeningToTouchEvents = true;
|
|
404
|
-
}
|
|
405
|
-
if (isListeningToTouchEvents && event instanceof MouseEvent) return;
|
|
406
|
-
sdk.interactions += 1;
|
|
407
|
-
emitEvent("interaction", sdk.interactions);
|
|
408
|
-
}
|
|
409
|
-
function registerTouchHandlers() {
|
|
410
|
-
if (!isTouchEventRegistered) {
|
|
411
|
-
document.addEventListener("mousedown", onUserInteraction);
|
|
412
|
-
document.addEventListener("touchstart", onUserInteraction);
|
|
413
|
-
isTouchEventRegistered = true;
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
444
|
function initSDK() {
|
|
417
445
|
destinationUrl = /android/i.test(navigator.userAgent) ? GOOGLE_PLAY_URL : APP_STORE_URL;
|
|
418
446
|
ensureProtocol();
|
|
@@ -466,7 +494,7 @@ var _sdk = class _sdk {
|
|
|
466
494
|
if (_sdk.isStarted) return;
|
|
467
495
|
_sdk.isStarted = true;
|
|
468
496
|
emitEvent("start");
|
|
469
|
-
|
|
497
|
+
registerInteractionHandlers();
|
|
470
498
|
if ("mintegral" === AD_NETWORK && isMintegral()) {
|
|
471
499
|
_sdk.resize();
|
|
472
500
|
handlePause();
|
|
@@ -548,7 +576,9 @@ var _sdk = class _sdk {
|
|
|
548
576
|
isInstallClicked = false;
|
|
549
577
|
}, 500);
|
|
550
578
|
emitEvent("install");
|
|
551
|
-
if ("
|
|
579
|
+
if ("tencent" === AD_NETWORK && window.TencentGDT && window.TencentGDT.clickOpen) {
|
|
580
|
+
window.TencentGDT.clickOpen();
|
|
581
|
+
} else if ("mraid" === AD_PROTOCOL && isMraid()) {
|
|
552
582
|
mraid.open(destinationUrl);
|
|
553
583
|
} else if ("dapi" === AD_PROTOCOL && isDapi()) {
|
|
554
584
|
dapi.openStoreUrl();
|
|
@@ -636,6 +666,7 @@ var _sdk = class _sdk {
|
|
|
636
666
|
* }, gameInstance);
|
|
637
667
|
*/
|
|
638
668
|
static on(event, fn, context) {
|
|
669
|
+
if (event === "pointermove") registerMoveHandler();
|
|
639
670
|
onEvent(event, fn, context);
|
|
640
671
|
}
|
|
641
672
|
/**
|
|
@@ -652,6 +683,7 @@ var _sdk = class _sdk {
|
|
|
652
683
|
* });
|
|
653
684
|
*/
|
|
654
685
|
static once(event, fn, context) {
|
|
686
|
+
if (event === "pointermove") registerMoveHandler();
|
|
655
687
|
onEvent(event, fn, context, true);
|
|
656
688
|
}
|
|
657
689
|
/**
|
|
@@ -674,7 +706,7 @@ var _sdk = class _sdk {
|
|
|
674
706
|
}
|
|
675
707
|
};
|
|
676
708
|
/** Current version of the SDK */
|
|
677
|
-
_sdk.version = "1.
|
|
709
|
+
_sdk.version = "1.2.0";
|
|
678
710
|
/** Current maximum width of the playable ad container in pixels */
|
|
679
711
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
680
712
|
/** Current maximum height of the playable ad container in pixels */
|
package/dist/iife/index.js
CHANGED
|
@@ -194,6 +194,51 @@
|
|
|
194
194
|
}
|
|
195
195
|
}
|
|
196
196
|
|
|
197
|
+
// src/interaction.ts
|
|
198
|
+
var TOUCH_MOUSE_DEDUPE_MS = 500;
|
|
199
|
+
var lastTouchTime = 0;
|
|
200
|
+
var isPointerDown = false;
|
|
201
|
+
var isRegistered = false;
|
|
202
|
+
var isMoveRegistered = false;
|
|
203
|
+
function createPointerHandler(name) {
|
|
204
|
+
return function(event) {
|
|
205
|
+
const touches = event.changedTouches;
|
|
206
|
+
let point = event;
|
|
207
|
+
if (touches) {
|
|
208
|
+
lastTouchTime = event.timeStamp;
|
|
209
|
+
point = touches[0];
|
|
210
|
+
} else if (event.timeStamp - lastTouchTime < TOUCH_MOUSE_DEDUPE_MS) return;
|
|
211
|
+
if (name === "pointerdown") {
|
|
212
|
+
isPointerDown = true;
|
|
213
|
+
sdk.interactions += 1;
|
|
214
|
+
emitEvent("interaction", sdk.interactions);
|
|
215
|
+
} else if (!isPointerDown) return;
|
|
216
|
+
else if (name === "pointerup") isPointerDown = !!touches && event.touches.length > 0;
|
|
217
|
+
emitEvent(name, point.clientX, point.clientY, event);
|
|
218
|
+
};
|
|
219
|
+
}
|
|
220
|
+
var onPointerDown = createPointerHandler("pointerdown");
|
|
221
|
+
var onPointerMove = createPointerHandler("pointermove");
|
|
222
|
+
var onPointerUp = createPointerHandler("pointerup");
|
|
223
|
+
function listen(type, handler) {
|
|
224
|
+
document.addEventListener(type, handler);
|
|
225
|
+
}
|
|
226
|
+
function registerInteractionHandlers() {
|
|
227
|
+
if (isRegistered) return;
|
|
228
|
+
isRegistered = true;
|
|
229
|
+
listen("mousedown", onPointerDown);
|
|
230
|
+
listen("touchstart", onPointerDown);
|
|
231
|
+
listen("mouseup", onPointerUp);
|
|
232
|
+
listen("touchend", onPointerUp);
|
|
233
|
+
listen("touchcancel", onPointerUp);
|
|
234
|
+
}
|
|
235
|
+
function registerMoveHandler() {
|
|
236
|
+
if (isMoveRegistered) return;
|
|
237
|
+
isMoveRegistered = true;
|
|
238
|
+
listen("mousemove", onPointerMove);
|
|
239
|
+
listen("touchmove", onPointerMove);
|
|
240
|
+
}
|
|
241
|
+
|
|
197
242
|
// src/core.ts
|
|
198
243
|
var destinationUrl = "";
|
|
199
244
|
var isSDKInitialized = false;
|
|
@@ -398,23 +443,6 @@
|
|
|
398
443
|
sdk.isLandscape = sdk.maxWidth > sdk.maxHeight;
|
|
399
444
|
emitEvent("resize", sdk.maxWidth, sdk.maxHeight);
|
|
400
445
|
}
|
|
401
|
-
var isListeningToTouchEvents = false;
|
|
402
|
-
var isTouchEventRegistered = false;
|
|
403
|
-
function onUserInteraction(event) {
|
|
404
|
-
if (typeof TouchEvent !== "undefined" && event instanceof TouchEvent) {
|
|
405
|
-
isListeningToTouchEvents = true;
|
|
406
|
-
}
|
|
407
|
-
if (isListeningToTouchEvents && event instanceof MouseEvent) return;
|
|
408
|
-
sdk.interactions += 1;
|
|
409
|
-
emitEvent("interaction", sdk.interactions);
|
|
410
|
-
}
|
|
411
|
-
function registerTouchHandlers() {
|
|
412
|
-
if (!isTouchEventRegistered) {
|
|
413
|
-
document.addEventListener("mousedown", onUserInteraction);
|
|
414
|
-
document.addEventListener("touchstart", onUserInteraction);
|
|
415
|
-
isTouchEventRegistered = true;
|
|
416
|
-
}
|
|
417
|
-
}
|
|
418
446
|
function initSDK() {
|
|
419
447
|
destinationUrl = /android/i.test(navigator.userAgent) ? GOOGLE_PLAY_URL : APP_STORE_URL;
|
|
420
448
|
ensureProtocol();
|
|
@@ -468,7 +496,7 @@
|
|
|
468
496
|
if (_sdk.isStarted) return;
|
|
469
497
|
_sdk.isStarted = true;
|
|
470
498
|
emitEvent("start");
|
|
471
|
-
|
|
499
|
+
registerInteractionHandlers();
|
|
472
500
|
if ("mintegral" === AD_NETWORK && isMintegral()) {
|
|
473
501
|
_sdk.resize();
|
|
474
502
|
handlePause();
|
|
@@ -550,7 +578,9 @@
|
|
|
550
578
|
isInstallClicked = false;
|
|
551
579
|
}, 500);
|
|
552
580
|
emitEvent("install");
|
|
553
|
-
if ("
|
|
581
|
+
if ("tencent" === AD_NETWORK && window.TencentGDT && window.TencentGDT.clickOpen) {
|
|
582
|
+
window.TencentGDT.clickOpen();
|
|
583
|
+
} else if ("mraid" === AD_PROTOCOL && isMraid()) {
|
|
554
584
|
mraid.open(destinationUrl);
|
|
555
585
|
} else if ("dapi" === AD_PROTOCOL && isDapi()) {
|
|
556
586
|
dapi.openStoreUrl();
|
|
@@ -638,6 +668,7 @@
|
|
|
638
668
|
* }, gameInstance);
|
|
639
669
|
*/
|
|
640
670
|
static on(event, fn, context) {
|
|
671
|
+
if (event === "pointermove") registerMoveHandler();
|
|
641
672
|
onEvent(event, fn, context);
|
|
642
673
|
}
|
|
643
674
|
/**
|
|
@@ -654,6 +685,7 @@
|
|
|
654
685
|
* });
|
|
655
686
|
*/
|
|
656
687
|
static once(event, fn, context) {
|
|
688
|
+
if (event === "pointermove") registerMoveHandler();
|
|
657
689
|
onEvent(event, fn, context, true);
|
|
658
690
|
}
|
|
659
691
|
/**
|
|
@@ -676,7 +708,7 @@
|
|
|
676
708
|
}
|
|
677
709
|
};
|
|
678
710
|
/** Current version of the SDK */
|
|
679
|
-
_sdk.version = "1.
|
|
711
|
+
_sdk.version = "1.2.0";
|
|
680
712
|
/** Current maximum width of the playable ad container in pixels */
|
|
681
713
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
682
714
|
/** Current maximum height of the playable ad container in pixels */
|
package/dist/index.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type EventName = 'init' | 'boot' | 'ready' | 'start' | 'interaction' | 'resize' | 'pause' | 'resume' | 'volume' | 'retry' | 'finish' | 'install' | 'error';
|
|
1
|
+
type EventName = 'init' | 'boot' | 'ready' | 'start' | 'interaction' | 'pointerdown' | 'pointermove' | 'pointerup' | 'resize' | 'pause' | 'resume' | 'volume' | 'retry' | 'finish' | 'install' | 'error';
|
|
2
2
|
|
|
3
3
|
type InitCallbackType = (maxWidth: number, maxHeight: number) => void;
|
|
4
4
|
/**
|
package/dist/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
type EventName = 'init' | 'boot' | 'ready' | 'start' | 'interaction' | 'resize' | 'pause' | 'resume' | 'volume' | 'retry' | 'finish' | 'install' | 'error';
|
|
1
|
+
type EventName = 'init' | 'boot' | 'ready' | 'start' | 'interaction' | 'pointerdown' | 'pointermove' | 'pointerup' | 'resize' | 'pause' | 'resume' | 'volume' | 'retry' | 'finish' | 'install' | 'error';
|
|
2
2
|
|
|
3
3
|
type InitCallbackType = (maxWidth: number, maxHeight: number) => void;
|
|
4
4
|
/**
|
package/dist/index.js
CHANGED
|
@@ -219,6 +219,51 @@ function initTrackingProtocols() {
|
|
|
219
219
|
}
|
|
220
220
|
}
|
|
221
221
|
|
|
222
|
+
// src/interaction.ts
|
|
223
|
+
var TOUCH_MOUSE_DEDUPE_MS = 500;
|
|
224
|
+
var lastTouchTime = 0;
|
|
225
|
+
var isPointerDown = false;
|
|
226
|
+
var isRegistered = false;
|
|
227
|
+
var isMoveRegistered = false;
|
|
228
|
+
function createPointerHandler(name) {
|
|
229
|
+
return function(event) {
|
|
230
|
+
const touches = event.changedTouches;
|
|
231
|
+
let point = event;
|
|
232
|
+
if (touches) {
|
|
233
|
+
lastTouchTime = event.timeStamp;
|
|
234
|
+
point = touches[0];
|
|
235
|
+
} else if (event.timeStamp - lastTouchTime < TOUCH_MOUSE_DEDUPE_MS) return;
|
|
236
|
+
if (name === "pointerdown") {
|
|
237
|
+
isPointerDown = true;
|
|
238
|
+
sdk.interactions += 1;
|
|
239
|
+
emitEvent("interaction", sdk.interactions);
|
|
240
|
+
} else if (!isPointerDown) return;
|
|
241
|
+
else if (name === "pointerup") isPointerDown = !!touches && event.touches.length > 0;
|
|
242
|
+
emitEvent(name, point.clientX, point.clientY, event);
|
|
243
|
+
};
|
|
244
|
+
}
|
|
245
|
+
var onPointerDown = createPointerHandler("pointerdown");
|
|
246
|
+
var onPointerMove = createPointerHandler("pointermove");
|
|
247
|
+
var onPointerUp = createPointerHandler("pointerup");
|
|
248
|
+
function listen(type, handler) {
|
|
249
|
+
document.addEventListener(type, handler);
|
|
250
|
+
}
|
|
251
|
+
function registerInteractionHandlers() {
|
|
252
|
+
if (isRegistered) return;
|
|
253
|
+
isRegistered = true;
|
|
254
|
+
listen("mousedown", onPointerDown);
|
|
255
|
+
listen("touchstart", onPointerDown);
|
|
256
|
+
listen("mouseup", onPointerUp);
|
|
257
|
+
listen("touchend", onPointerUp);
|
|
258
|
+
listen("touchcancel", onPointerUp);
|
|
259
|
+
}
|
|
260
|
+
function registerMoveHandler() {
|
|
261
|
+
if (isMoveRegistered) return;
|
|
262
|
+
isMoveRegistered = true;
|
|
263
|
+
listen("mousemove", onPointerMove);
|
|
264
|
+
listen("touchmove", onPointerMove);
|
|
265
|
+
}
|
|
266
|
+
|
|
222
267
|
// src/core.ts
|
|
223
268
|
var destinationUrl = "";
|
|
224
269
|
var isSDKInitialized = false;
|
|
@@ -423,23 +468,6 @@ function handleResize(width, height) {
|
|
|
423
468
|
sdk.isLandscape = sdk.maxWidth > sdk.maxHeight;
|
|
424
469
|
emitEvent("resize", sdk.maxWidth, sdk.maxHeight);
|
|
425
470
|
}
|
|
426
|
-
var isListeningToTouchEvents = false;
|
|
427
|
-
var isTouchEventRegistered = false;
|
|
428
|
-
function onUserInteraction(event) {
|
|
429
|
-
if (typeof TouchEvent !== "undefined" && event instanceof TouchEvent) {
|
|
430
|
-
isListeningToTouchEvents = true;
|
|
431
|
-
}
|
|
432
|
-
if (isListeningToTouchEvents && event instanceof MouseEvent) return;
|
|
433
|
-
sdk.interactions += 1;
|
|
434
|
-
emitEvent("interaction", sdk.interactions);
|
|
435
|
-
}
|
|
436
|
-
function registerTouchHandlers() {
|
|
437
|
-
if (!isTouchEventRegistered) {
|
|
438
|
-
document.addEventListener("mousedown", onUserInteraction);
|
|
439
|
-
document.addEventListener("touchstart", onUserInteraction);
|
|
440
|
-
isTouchEventRegistered = true;
|
|
441
|
-
}
|
|
442
|
-
}
|
|
443
471
|
function initSDK() {
|
|
444
472
|
destinationUrl = /android/i.test(navigator.userAgent) ? GOOGLE_PLAY_URL : APP_STORE_URL;
|
|
445
473
|
ensureProtocol();
|
|
@@ -493,7 +521,7 @@ var _sdk = class _sdk {
|
|
|
493
521
|
if (_sdk.isStarted) return;
|
|
494
522
|
_sdk.isStarted = true;
|
|
495
523
|
emitEvent("start");
|
|
496
|
-
|
|
524
|
+
registerInteractionHandlers();
|
|
497
525
|
if ("mintegral" === AD_NETWORK && isMintegral()) {
|
|
498
526
|
_sdk.resize();
|
|
499
527
|
handlePause();
|
|
@@ -575,7 +603,9 @@ var _sdk = class _sdk {
|
|
|
575
603
|
isInstallClicked = false;
|
|
576
604
|
}, 500);
|
|
577
605
|
emitEvent("install");
|
|
578
|
-
if ("
|
|
606
|
+
if ("tencent" === AD_NETWORK && window.TencentGDT && window.TencentGDT.clickOpen) {
|
|
607
|
+
window.TencentGDT.clickOpen();
|
|
608
|
+
} else if ("mraid" === AD_PROTOCOL && isMraid()) {
|
|
579
609
|
mraid.open(destinationUrl);
|
|
580
610
|
} else if ("dapi" === AD_PROTOCOL && isDapi()) {
|
|
581
611
|
dapi.openStoreUrl();
|
|
@@ -663,6 +693,7 @@ var _sdk = class _sdk {
|
|
|
663
693
|
* }, gameInstance);
|
|
664
694
|
*/
|
|
665
695
|
static on(event, fn, context) {
|
|
696
|
+
if (event === "pointermove") registerMoveHandler();
|
|
666
697
|
onEvent(event, fn, context);
|
|
667
698
|
}
|
|
668
699
|
/**
|
|
@@ -679,6 +710,7 @@ var _sdk = class _sdk {
|
|
|
679
710
|
* });
|
|
680
711
|
*/
|
|
681
712
|
static once(event, fn, context) {
|
|
713
|
+
if (event === "pointermove") registerMoveHandler();
|
|
682
714
|
onEvent(event, fn, context, true);
|
|
683
715
|
}
|
|
684
716
|
/**
|
|
@@ -701,7 +733,7 @@ var _sdk = class _sdk {
|
|
|
701
733
|
}
|
|
702
734
|
};
|
|
703
735
|
/** Current version of the SDK */
|
|
704
|
-
_sdk.version = "1.
|
|
736
|
+
_sdk.version = "1.2.0";
|
|
705
737
|
/** Current maximum width of the playable ad container in pixels */
|
|
706
738
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
707
739
|
/** Current maximum height of the playable ad container in pixels */
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@smoud/playable-sdk",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.2.0",
|
|
4
4
|
"description": "It's unified Playable SDK that supports MRAID, Google, Facebook, Vungle, and many more Ad Networks, simplifying playable ad development with a standardized interface for seamless cross-network compatibility.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|