@smoud/playable-sdk 1.1.4 → 1.2.1
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 +7 -0
- package/defines.d.ts +7 -1
- package/dist/esm/index.js +53 -19
- package/dist/iife/index.js +53 -19
- package/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +53 -19
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -46,7 +46,9 @@ It's powerful, unified SDK that seamlessly integrates multiple ad network SDKs,
|
|
|
46
46
|
- Remerge
|
|
47
47
|
- Tencent
|
|
48
48
|
- YouAppi
|
|
49
|
+
- DT Exchange
|
|
49
50
|
- Aarki
|
|
51
|
+
- Bidease
|
|
50
52
|
|
|
51
53
|
### Protocol Support
|
|
52
54
|
|
|
@@ -177,7 +179,9 @@ Supported **Ad Networks**:
|
|
|
177
179
|
- `remerge`
|
|
178
180
|
- `tencent`
|
|
179
181
|
- `youappi`
|
|
182
|
+
- `digitalturbine`
|
|
180
183
|
- `aarki`
|
|
184
|
+
- `bidease`
|
|
181
185
|
|
|
182
186
|
See more details in [`GitHub repository.`](https://github.com/smoudjs/playable-scripts?tab=readme-ov-file#installation)
|
|
183
187
|
|
|
@@ -353,6 +357,9 @@ sdk.off('eventName', [callback], [context]);
|
|
|
353
357
|
| `ready` | - | Ad container is ready `post` init callback | Start resource loading |
|
|
354
358
|
| `start` | - | Playable experience started | Begin gameplay/animation |
|
|
355
359
|
| `interaction` | `count` | User interaction occurred | Track engagement |
|
|
360
|
+
| `pointerdown` | `x, y, event` | Mouse/touch pressed (unified, no duplicates) | Start drag / tap |
|
|
361
|
+
| `pointermove` | `x, y, event` | Mouse/touch moved while pressed | Update drag |
|
|
362
|
+
| `pointerup` | `x, y, event` | Mouse/touch released or cancelled | End drag / tap |
|
|
356
363
|
| `resize` | `width, height` | Container size changed | Update layout |
|
|
357
364
|
| `pause` | - | Playable entered pause state | Pause gameplay |
|
|
358
365
|
| `resume` | - | Playable resumed from pause | Resume gameplay |
|
package/defines.d.ts
CHANGED
|
@@ -71,7 +71,9 @@ declare const AD_NETWORK:
|
|
|
71
71
|
| 'remerge'
|
|
72
72
|
| 'tencent'
|
|
73
73
|
| 'youappi'
|
|
74
|
-
| '
|
|
74
|
+
| 'digitalturbine'
|
|
75
|
+
| 'aarki'
|
|
76
|
+
| 'bidease';
|
|
75
77
|
|
|
76
78
|
declare const AD_PROTOCOL: 'mraid' | 'dapi' | 'nucleo' | 'none';
|
|
77
79
|
declare const GOOGLE_PLAY_URL: string;
|
|
@@ -104,6 +106,10 @@ interface Window {
|
|
|
104
106
|
clickOpen?: Function;
|
|
105
107
|
};
|
|
106
108
|
|
|
109
|
+
// Bidease functions
|
|
110
|
+
initGame?: Function;
|
|
111
|
+
trackClick?: Function;
|
|
112
|
+
|
|
107
113
|
BIGABID_BIDTIMEMACROS?: Record<string, string>
|
|
108
114
|
INMOBI_DSPMACROS?: Record<string, string>
|
|
109
115
|
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();
|
|
@@ -477,6 +505,8 @@ var _sdk = class _sdk {
|
|
|
477
505
|
orientation: this.isLandscape ? "landscape" : "portrait",
|
|
478
506
|
buildID: BUILD_HASH
|
|
479
507
|
});
|
|
508
|
+
} else if ("bidease" === AD_NETWORK && window.initGame) {
|
|
509
|
+
window.initGame();
|
|
480
510
|
}
|
|
481
511
|
fireVolumeChange(_sdk.volume);
|
|
482
512
|
_sdk.resize();
|
|
@@ -550,6 +580,8 @@ var _sdk = class _sdk {
|
|
|
550
580
|
emitEvent("install");
|
|
551
581
|
if ("tencent" === AD_NETWORK && window.TencentGDT && window.TencentGDT.clickOpen) {
|
|
552
582
|
window.TencentGDT.clickOpen();
|
|
583
|
+
} else if ("bidease" === AD_NETWORK && window.trackClick) {
|
|
584
|
+
window.trackClick();
|
|
553
585
|
} else if ("mraid" === AD_PROTOCOL && isMraid()) {
|
|
554
586
|
mraid.open(destinationUrl);
|
|
555
587
|
} else if ("dapi" === AD_PROTOCOL && isDapi()) {
|
|
@@ -638,6 +670,7 @@ var _sdk = class _sdk {
|
|
|
638
670
|
* }, gameInstance);
|
|
639
671
|
*/
|
|
640
672
|
static on(event, fn, context) {
|
|
673
|
+
if (event === "pointermove") registerMoveHandler();
|
|
641
674
|
onEvent(event, fn, context);
|
|
642
675
|
}
|
|
643
676
|
/**
|
|
@@ -654,6 +687,7 @@ var _sdk = class _sdk {
|
|
|
654
687
|
* });
|
|
655
688
|
*/
|
|
656
689
|
static once(event, fn, context) {
|
|
690
|
+
if (event === "pointermove") registerMoveHandler();
|
|
657
691
|
onEvent(event, fn, context, true);
|
|
658
692
|
}
|
|
659
693
|
/**
|
|
@@ -676,7 +710,7 @@ var _sdk = class _sdk {
|
|
|
676
710
|
}
|
|
677
711
|
};
|
|
678
712
|
/** Current version of the SDK */
|
|
679
|
-
_sdk.version = "1.1
|
|
713
|
+
_sdk.version = "1.2.1";
|
|
680
714
|
/** Current maximum width of the playable ad container in pixels */
|
|
681
715
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
682
716
|
/** 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();
|
|
@@ -479,6 +507,8 @@
|
|
|
479
507
|
orientation: this.isLandscape ? "landscape" : "portrait",
|
|
480
508
|
buildID: BUILD_HASH
|
|
481
509
|
});
|
|
510
|
+
} else if ("bidease" === AD_NETWORK && window.initGame) {
|
|
511
|
+
window.initGame();
|
|
482
512
|
}
|
|
483
513
|
fireVolumeChange(_sdk.volume);
|
|
484
514
|
_sdk.resize();
|
|
@@ -552,6 +582,8 @@
|
|
|
552
582
|
emitEvent("install");
|
|
553
583
|
if ("tencent" === AD_NETWORK && window.TencentGDT && window.TencentGDT.clickOpen) {
|
|
554
584
|
window.TencentGDT.clickOpen();
|
|
585
|
+
} else if ("bidease" === AD_NETWORK && window.trackClick) {
|
|
586
|
+
window.trackClick();
|
|
555
587
|
} else if ("mraid" === AD_PROTOCOL && isMraid()) {
|
|
556
588
|
mraid.open(destinationUrl);
|
|
557
589
|
} else if ("dapi" === AD_PROTOCOL && isDapi()) {
|
|
@@ -640,6 +672,7 @@
|
|
|
640
672
|
* }, gameInstance);
|
|
641
673
|
*/
|
|
642
674
|
static on(event, fn, context) {
|
|
675
|
+
if (event === "pointermove") registerMoveHandler();
|
|
643
676
|
onEvent(event, fn, context);
|
|
644
677
|
}
|
|
645
678
|
/**
|
|
@@ -656,6 +689,7 @@
|
|
|
656
689
|
* });
|
|
657
690
|
*/
|
|
658
691
|
static once(event, fn, context) {
|
|
692
|
+
if (event === "pointermove") registerMoveHandler();
|
|
659
693
|
onEvent(event, fn, context, true);
|
|
660
694
|
}
|
|
661
695
|
/**
|
|
@@ -678,7 +712,7 @@
|
|
|
678
712
|
}
|
|
679
713
|
};
|
|
680
714
|
/** Current version of the SDK */
|
|
681
|
-
_sdk.version = "1.1
|
|
715
|
+
_sdk.version = "1.2.1";
|
|
682
716
|
/** Current maximum width of the playable ad container in pixels */
|
|
683
717
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
684
718
|
/** 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();
|
|
@@ -504,6 +532,8 @@ var _sdk = class _sdk {
|
|
|
504
532
|
orientation: this.isLandscape ? "landscape" : "portrait",
|
|
505
533
|
buildID: BUILD_HASH
|
|
506
534
|
});
|
|
535
|
+
} else if ("bidease" === AD_NETWORK && window.initGame) {
|
|
536
|
+
window.initGame();
|
|
507
537
|
}
|
|
508
538
|
fireVolumeChange(_sdk.volume);
|
|
509
539
|
_sdk.resize();
|
|
@@ -577,6 +607,8 @@ var _sdk = class _sdk {
|
|
|
577
607
|
emitEvent("install");
|
|
578
608
|
if ("tencent" === AD_NETWORK && window.TencentGDT && window.TencentGDT.clickOpen) {
|
|
579
609
|
window.TencentGDT.clickOpen();
|
|
610
|
+
} else if ("bidease" === AD_NETWORK && window.trackClick) {
|
|
611
|
+
window.trackClick();
|
|
580
612
|
} else if ("mraid" === AD_PROTOCOL && isMraid()) {
|
|
581
613
|
mraid.open(destinationUrl);
|
|
582
614
|
} else if ("dapi" === AD_PROTOCOL && isDapi()) {
|
|
@@ -665,6 +697,7 @@ var _sdk = class _sdk {
|
|
|
665
697
|
* }, gameInstance);
|
|
666
698
|
*/
|
|
667
699
|
static on(event, fn, context) {
|
|
700
|
+
if (event === "pointermove") registerMoveHandler();
|
|
668
701
|
onEvent(event, fn, context);
|
|
669
702
|
}
|
|
670
703
|
/**
|
|
@@ -681,6 +714,7 @@ var _sdk = class _sdk {
|
|
|
681
714
|
* });
|
|
682
715
|
*/
|
|
683
716
|
static once(event, fn, context) {
|
|
717
|
+
if (event === "pointermove") registerMoveHandler();
|
|
684
718
|
onEvent(event, fn, context, true);
|
|
685
719
|
}
|
|
686
720
|
/**
|
|
@@ -703,7 +737,7 @@ var _sdk = class _sdk {
|
|
|
703
737
|
}
|
|
704
738
|
};
|
|
705
739
|
/** Current version of the SDK */
|
|
706
|
-
_sdk.version = "1.1
|
|
740
|
+
_sdk.version = "1.2.1";
|
|
707
741
|
/** Current maximum width of the playable ad container in pixels */
|
|
708
742
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
709
743
|
/** 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.1
|
|
3
|
+
"version": "1.2.1",
|
|
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",
|