@smoud/playable-sdk 1.0.21 → 1.0.23
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/defines.d.ts +4 -0
- package/dist/esm/index.js +63 -1
- package/dist/iife/index.js +63 -1
- package/dist/index.js +63 -1
- package/package.json +1 -1
package/defines.d.ts
CHANGED
|
@@ -40,6 +40,7 @@ declare const NUC: {
|
|
|
40
40
|
};
|
|
41
41
|
};
|
|
42
42
|
|
|
43
|
+
declare const ScPlayableAd: { onCTAClick: () => void };
|
|
43
44
|
declare const FbPlayableAd: { onCTAClick: () => void };
|
|
44
45
|
declare const smxTracking: { redirect: () => void };
|
|
45
46
|
declare const ExitApi: { exit: () => void };
|
|
@@ -94,5 +95,8 @@ interface Window {
|
|
|
94
95
|
click: Function;
|
|
95
96
|
};
|
|
96
97
|
|
|
98
|
+
BIGABID_BIDTIMEMACROS?: Record<string, string>
|
|
99
|
+
INMOBI_DSPMACROS?: Record<string, string>
|
|
100
|
+
|
|
97
101
|
openAppStore: Function;
|
|
98
102
|
}
|
package/dist/esm/index.js
CHANGED
|
@@ -52,6 +52,7 @@ var MINTEGRAL = uid++;
|
|
|
52
52
|
var TAPJOY = uid++;
|
|
53
53
|
var TIKTOK = uid++;
|
|
54
54
|
var SMADEX = uid++;
|
|
55
|
+
var SNAPCHAT = uid++;
|
|
55
56
|
var actualProtocol = NONE;
|
|
56
57
|
function isMraid() {
|
|
57
58
|
return actualProtocol === MRAID;
|
|
@@ -80,6 +81,9 @@ function isTapjoy() {
|
|
|
80
81
|
function isTikTok() {
|
|
81
82
|
return actualProtocol === TIKTOK;
|
|
82
83
|
}
|
|
84
|
+
function isSnapchat() {
|
|
85
|
+
return actualProtocol === SNAPCHAT;
|
|
86
|
+
}
|
|
83
87
|
function ensureProtocol() {
|
|
84
88
|
if ("mraid" === AD_PROTOCOL) {
|
|
85
89
|
try {
|
|
@@ -114,6 +118,61 @@ function ensureProtocol() {
|
|
|
114
118
|
if (smxTracking) actualProtocol = SMADEX;
|
|
115
119
|
} catch (error) {
|
|
116
120
|
}
|
|
121
|
+
} else if ("snapchat" === AD_NETWORK) {
|
|
122
|
+
try {
|
|
123
|
+
if (ScPlayableAd) actualProtocol = SNAPCHAT;
|
|
124
|
+
} catch (error) {
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
// src/tracking.ts
|
|
130
|
+
function initTrackingProtocols() {
|
|
131
|
+
if (AD_NETWORK === "bigabid" || AD_NETWORK === "inmobi") {
|
|
132
|
+
let trackURL2 = function(url) {
|
|
133
|
+
if (url) {
|
|
134
|
+
const trackingPixel = new Image();
|
|
135
|
+
trackingPixel.src = url;
|
|
136
|
+
}
|
|
137
|
+
};
|
|
138
|
+
var trackURL = trackURL2;
|
|
139
|
+
if (AD_NETWORK === "bigabid") {
|
|
140
|
+
let trackBigabidEvent2 = function(event) {
|
|
141
|
+
if (window.BIGABID_BIDTIMEMACROS && window.BIGABID_BIDTIMEMACROS[event])
|
|
142
|
+
trackURL2(window.BIGABID_BIDTIMEMACROS[event]);
|
|
143
|
+
}, trackComplete2 = function() {
|
|
144
|
+
if (!completeTriggered) trackBigabidEvent2("complete");
|
|
145
|
+
completeTriggered = true;
|
|
146
|
+
};
|
|
147
|
+
var trackBigabidEvent = trackBigabidEvent2, trackComplete = trackComplete2;
|
|
148
|
+
var completeTriggered = false;
|
|
149
|
+
sdk.once("boot", () => trackBigabidEvent2("mraid_viewable"));
|
|
150
|
+
sdk.once("start", () => trackBigabidEvent2("game_viewable"));
|
|
151
|
+
sdk.once("interaction", () => trackBigabidEvent2("engagement"));
|
|
152
|
+
sdk.once("finish", trackComplete2);
|
|
153
|
+
sdk.on("interaction", (interactions) => {
|
|
154
|
+
if (interactions > 3) trackComplete2();
|
|
155
|
+
});
|
|
156
|
+
sdk.once("install", () => trackBigabidEvent2("click"));
|
|
157
|
+
} else if (AD_NETWORK === "inmobi") {
|
|
158
|
+
let trackInMobiEvent2 = function(event) {
|
|
159
|
+
if (window.INMOBI_DSPMACROS && window.INMOBI_DSPMACROS[event]) trackURL2(window.INMOBI_DSPMACROS[event]);
|
|
160
|
+
};
|
|
161
|
+
var trackInMobiEvent = trackInMobiEvent2;
|
|
162
|
+
sdk.once("boot", () => trackInMobiEvent2("Ad_Load_Start"));
|
|
163
|
+
sdk.once("start", () => trackInMobiEvent2("Ad_Viewable"));
|
|
164
|
+
sdk.once("interaction", () => trackInMobiEvent2("First_Engagement"));
|
|
165
|
+
sdk.once("finish", () => trackInMobiEvent2("Gameplay_Complete"));
|
|
166
|
+
sdk.once("install", () => trackInMobiEvent2("DSP_Click"));
|
|
167
|
+
sdk.once("start", () => {
|
|
168
|
+
setTimeout(() => trackInMobiEvent2("Spent_5_Seconds"), 5e3);
|
|
169
|
+
setTimeout(() => trackInMobiEvent2("Spent_10_Seconds"), 1e4);
|
|
170
|
+
setTimeout(() => trackInMobiEvent2("Spent_15_Seconds"), 15e3);
|
|
171
|
+
setTimeout(() => trackInMobiEvent2("Spent_20_Seconds"), 2e4);
|
|
172
|
+
setTimeout(() => trackInMobiEvent2("Spent_25_Seconds"), 25e3);
|
|
173
|
+
setTimeout(() => trackInMobiEvent2("Spent_30_Seconds"), 3e4);
|
|
174
|
+
});
|
|
175
|
+
}
|
|
117
176
|
}
|
|
118
177
|
}
|
|
119
178
|
|
|
@@ -364,6 +423,7 @@ var _sdk = class _sdk {
|
|
|
364
423
|
static init(callback) {
|
|
365
424
|
if (isSDKInitialized) return;
|
|
366
425
|
if (callback) initCallback = callback;
|
|
426
|
+
initTrackingProtocols();
|
|
367
427
|
document.readyState === "loading" ? window.addEventListener("DOMContentLoaded", initSDK) : initSDK();
|
|
368
428
|
isSDKInitialized = true;
|
|
369
429
|
}
|
|
@@ -475,6 +535,8 @@ var _sdk = class _sdk {
|
|
|
475
535
|
NUC.trigger.convert(destinationUrl);
|
|
476
536
|
} else if ("facebook" == AD_NETWORK && isFacebook()) {
|
|
477
537
|
FbPlayableAd.onCTAClick();
|
|
538
|
+
} else if ("snapchat" == AD_NETWORK && isSnapchat()) {
|
|
539
|
+
ScPlayableAd.onCTAClick();
|
|
478
540
|
} else if ("smadex" == AD_NETWORK && isSmadex()) {
|
|
479
541
|
smxTracking.redirect();
|
|
480
542
|
} else if ("vungle" == AD_NETWORK) {
|
|
@@ -591,7 +653,7 @@ var _sdk = class _sdk {
|
|
|
591
653
|
}
|
|
592
654
|
};
|
|
593
655
|
/** Current version of the SDK */
|
|
594
|
-
_sdk.version = "1.0.
|
|
656
|
+
_sdk.version = "1.0.23";
|
|
595
657
|
/** Current maximum width of the playable ad container in pixels */
|
|
596
658
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
597
659
|
/** Current maximum height of the playable ad container in pixels */
|
package/dist/iife/index.js
CHANGED
|
@@ -54,6 +54,7 @@
|
|
|
54
54
|
var TAPJOY = uid++;
|
|
55
55
|
var TIKTOK = uid++;
|
|
56
56
|
var SMADEX = uid++;
|
|
57
|
+
var SNAPCHAT = uid++;
|
|
57
58
|
var actualProtocol = NONE;
|
|
58
59
|
function isMraid() {
|
|
59
60
|
return actualProtocol === MRAID;
|
|
@@ -82,6 +83,9 @@
|
|
|
82
83
|
function isTikTok() {
|
|
83
84
|
return actualProtocol === TIKTOK;
|
|
84
85
|
}
|
|
86
|
+
function isSnapchat() {
|
|
87
|
+
return actualProtocol === SNAPCHAT;
|
|
88
|
+
}
|
|
85
89
|
function ensureProtocol() {
|
|
86
90
|
if ("mraid" === AD_PROTOCOL) {
|
|
87
91
|
try {
|
|
@@ -116,6 +120,61 @@
|
|
|
116
120
|
if (smxTracking) actualProtocol = SMADEX;
|
|
117
121
|
} catch (error) {
|
|
118
122
|
}
|
|
123
|
+
} else if ("snapchat" === AD_NETWORK) {
|
|
124
|
+
try {
|
|
125
|
+
if (ScPlayableAd) actualProtocol = SNAPCHAT;
|
|
126
|
+
} catch (error) {
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
// src/tracking.ts
|
|
132
|
+
function initTrackingProtocols() {
|
|
133
|
+
if (AD_NETWORK === "bigabid" || AD_NETWORK === "inmobi") {
|
|
134
|
+
let trackURL2 = function(url) {
|
|
135
|
+
if (url) {
|
|
136
|
+
const trackingPixel = new Image();
|
|
137
|
+
trackingPixel.src = url;
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
var trackURL = trackURL2;
|
|
141
|
+
if (AD_NETWORK === "bigabid") {
|
|
142
|
+
let trackBigabidEvent2 = function(event) {
|
|
143
|
+
if (window.BIGABID_BIDTIMEMACROS && window.BIGABID_BIDTIMEMACROS[event])
|
|
144
|
+
trackURL2(window.BIGABID_BIDTIMEMACROS[event]);
|
|
145
|
+
}, trackComplete2 = function() {
|
|
146
|
+
if (!completeTriggered) trackBigabidEvent2("complete");
|
|
147
|
+
completeTriggered = true;
|
|
148
|
+
};
|
|
149
|
+
var trackBigabidEvent = trackBigabidEvent2, trackComplete = trackComplete2;
|
|
150
|
+
var completeTriggered = false;
|
|
151
|
+
sdk.once("boot", () => trackBigabidEvent2("mraid_viewable"));
|
|
152
|
+
sdk.once("start", () => trackBigabidEvent2("game_viewable"));
|
|
153
|
+
sdk.once("interaction", () => trackBigabidEvent2("engagement"));
|
|
154
|
+
sdk.once("finish", trackComplete2);
|
|
155
|
+
sdk.on("interaction", (interactions) => {
|
|
156
|
+
if (interactions > 3) trackComplete2();
|
|
157
|
+
});
|
|
158
|
+
sdk.once("install", () => trackBigabidEvent2("click"));
|
|
159
|
+
} else if (AD_NETWORK === "inmobi") {
|
|
160
|
+
let trackInMobiEvent2 = function(event) {
|
|
161
|
+
if (window.INMOBI_DSPMACROS && window.INMOBI_DSPMACROS[event]) trackURL2(window.INMOBI_DSPMACROS[event]);
|
|
162
|
+
};
|
|
163
|
+
var trackInMobiEvent = trackInMobiEvent2;
|
|
164
|
+
sdk.once("boot", () => trackInMobiEvent2("Ad_Load_Start"));
|
|
165
|
+
sdk.once("start", () => trackInMobiEvent2("Ad_Viewable"));
|
|
166
|
+
sdk.once("interaction", () => trackInMobiEvent2("First_Engagement"));
|
|
167
|
+
sdk.once("finish", () => trackInMobiEvent2("Gameplay_Complete"));
|
|
168
|
+
sdk.once("install", () => trackInMobiEvent2("DSP_Click"));
|
|
169
|
+
sdk.once("start", () => {
|
|
170
|
+
setTimeout(() => trackInMobiEvent2("Spent_5_Seconds"), 5e3);
|
|
171
|
+
setTimeout(() => trackInMobiEvent2("Spent_10_Seconds"), 1e4);
|
|
172
|
+
setTimeout(() => trackInMobiEvent2("Spent_15_Seconds"), 15e3);
|
|
173
|
+
setTimeout(() => trackInMobiEvent2("Spent_20_Seconds"), 2e4);
|
|
174
|
+
setTimeout(() => trackInMobiEvent2("Spent_25_Seconds"), 25e3);
|
|
175
|
+
setTimeout(() => trackInMobiEvent2("Spent_30_Seconds"), 3e4);
|
|
176
|
+
});
|
|
177
|
+
}
|
|
119
178
|
}
|
|
120
179
|
}
|
|
121
180
|
|
|
@@ -366,6 +425,7 @@
|
|
|
366
425
|
static init(callback) {
|
|
367
426
|
if (isSDKInitialized) return;
|
|
368
427
|
if (callback) initCallback = callback;
|
|
428
|
+
initTrackingProtocols();
|
|
369
429
|
document.readyState === "loading" ? window.addEventListener("DOMContentLoaded", initSDK) : initSDK();
|
|
370
430
|
isSDKInitialized = true;
|
|
371
431
|
}
|
|
@@ -477,6 +537,8 @@
|
|
|
477
537
|
NUC.trigger.convert(destinationUrl);
|
|
478
538
|
} else if ("facebook" == AD_NETWORK && isFacebook()) {
|
|
479
539
|
FbPlayableAd.onCTAClick();
|
|
540
|
+
} else if ("snapchat" == AD_NETWORK && isSnapchat()) {
|
|
541
|
+
ScPlayableAd.onCTAClick();
|
|
480
542
|
} else if ("smadex" == AD_NETWORK && isSmadex()) {
|
|
481
543
|
smxTracking.redirect();
|
|
482
544
|
} else if ("vungle" == AD_NETWORK) {
|
|
@@ -593,7 +655,7 @@
|
|
|
593
655
|
}
|
|
594
656
|
};
|
|
595
657
|
/** Current version of the SDK */
|
|
596
|
-
_sdk.version = "1.0.
|
|
658
|
+
_sdk.version = "1.0.23";
|
|
597
659
|
/** Current maximum width of the playable ad container in pixels */
|
|
598
660
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
599
661
|
/** Current maximum height of the playable ad container in pixels */
|
package/dist/index.js
CHANGED
|
@@ -79,6 +79,7 @@ var MINTEGRAL = uid++;
|
|
|
79
79
|
var TAPJOY = uid++;
|
|
80
80
|
var TIKTOK = uid++;
|
|
81
81
|
var SMADEX = uid++;
|
|
82
|
+
var SNAPCHAT = uid++;
|
|
82
83
|
var actualProtocol = NONE;
|
|
83
84
|
function isMraid() {
|
|
84
85
|
return actualProtocol === MRAID;
|
|
@@ -107,6 +108,9 @@ function isTapjoy() {
|
|
|
107
108
|
function isTikTok() {
|
|
108
109
|
return actualProtocol === TIKTOK;
|
|
109
110
|
}
|
|
111
|
+
function isSnapchat() {
|
|
112
|
+
return actualProtocol === SNAPCHAT;
|
|
113
|
+
}
|
|
110
114
|
function ensureProtocol() {
|
|
111
115
|
if ("mraid" === AD_PROTOCOL) {
|
|
112
116
|
try {
|
|
@@ -141,6 +145,61 @@ function ensureProtocol() {
|
|
|
141
145
|
if (smxTracking) actualProtocol = SMADEX;
|
|
142
146
|
} catch (error) {
|
|
143
147
|
}
|
|
148
|
+
} else if ("snapchat" === AD_NETWORK) {
|
|
149
|
+
try {
|
|
150
|
+
if (ScPlayableAd) actualProtocol = SNAPCHAT;
|
|
151
|
+
} catch (error) {
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
// src/tracking.ts
|
|
157
|
+
function initTrackingProtocols() {
|
|
158
|
+
if (AD_NETWORK === "bigabid" || AD_NETWORK === "inmobi") {
|
|
159
|
+
let trackURL2 = function(url) {
|
|
160
|
+
if (url) {
|
|
161
|
+
const trackingPixel = new Image();
|
|
162
|
+
trackingPixel.src = url;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
var trackURL = trackURL2;
|
|
166
|
+
if (AD_NETWORK === "bigabid") {
|
|
167
|
+
let trackBigabidEvent2 = function(event) {
|
|
168
|
+
if (window.BIGABID_BIDTIMEMACROS && window.BIGABID_BIDTIMEMACROS[event])
|
|
169
|
+
trackURL2(window.BIGABID_BIDTIMEMACROS[event]);
|
|
170
|
+
}, trackComplete2 = function() {
|
|
171
|
+
if (!completeTriggered) trackBigabidEvent2("complete");
|
|
172
|
+
completeTriggered = true;
|
|
173
|
+
};
|
|
174
|
+
var trackBigabidEvent = trackBigabidEvent2, trackComplete = trackComplete2;
|
|
175
|
+
var completeTriggered = false;
|
|
176
|
+
sdk.once("boot", () => trackBigabidEvent2("mraid_viewable"));
|
|
177
|
+
sdk.once("start", () => trackBigabidEvent2("game_viewable"));
|
|
178
|
+
sdk.once("interaction", () => trackBigabidEvent2("engagement"));
|
|
179
|
+
sdk.once("finish", trackComplete2);
|
|
180
|
+
sdk.on("interaction", (interactions) => {
|
|
181
|
+
if (interactions > 3) trackComplete2();
|
|
182
|
+
});
|
|
183
|
+
sdk.once("install", () => trackBigabidEvent2("click"));
|
|
184
|
+
} else if (AD_NETWORK === "inmobi") {
|
|
185
|
+
let trackInMobiEvent2 = function(event) {
|
|
186
|
+
if (window.INMOBI_DSPMACROS && window.INMOBI_DSPMACROS[event]) trackURL2(window.INMOBI_DSPMACROS[event]);
|
|
187
|
+
};
|
|
188
|
+
var trackInMobiEvent = trackInMobiEvent2;
|
|
189
|
+
sdk.once("boot", () => trackInMobiEvent2("Ad_Load_Start"));
|
|
190
|
+
sdk.once("start", () => trackInMobiEvent2("Ad_Viewable"));
|
|
191
|
+
sdk.once("interaction", () => trackInMobiEvent2("First_Engagement"));
|
|
192
|
+
sdk.once("finish", () => trackInMobiEvent2("Gameplay_Complete"));
|
|
193
|
+
sdk.once("install", () => trackInMobiEvent2("DSP_Click"));
|
|
194
|
+
sdk.once("start", () => {
|
|
195
|
+
setTimeout(() => trackInMobiEvent2("Spent_5_Seconds"), 5e3);
|
|
196
|
+
setTimeout(() => trackInMobiEvent2("Spent_10_Seconds"), 1e4);
|
|
197
|
+
setTimeout(() => trackInMobiEvent2("Spent_15_Seconds"), 15e3);
|
|
198
|
+
setTimeout(() => trackInMobiEvent2("Spent_20_Seconds"), 2e4);
|
|
199
|
+
setTimeout(() => trackInMobiEvent2("Spent_25_Seconds"), 25e3);
|
|
200
|
+
setTimeout(() => trackInMobiEvent2("Spent_30_Seconds"), 3e4);
|
|
201
|
+
});
|
|
202
|
+
}
|
|
144
203
|
}
|
|
145
204
|
}
|
|
146
205
|
|
|
@@ -391,6 +450,7 @@ var _sdk = class _sdk {
|
|
|
391
450
|
static init(callback) {
|
|
392
451
|
if (isSDKInitialized) return;
|
|
393
452
|
if (callback) initCallback = callback;
|
|
453
|
+
initTrackingProtocols();
|
|
394
454
|
document.readyState === "loading" ? window.addEventListener("DOMContentLoaded", initSDK) : initSDK();
|
|
395
455
|
isSDKInitialized = true;
|
|
396
456
|
}
|
|
@@ -502,6 +562,8 @@ var _sdk = class _sdk {
|
|
|
502
562
|
NUC.trigger.convert(destinationUrl);
|
|
503
563
|
} else if ("facebook" == AD_NETWORK && isFacebook()) {
|
|
504
564
|
FbPlayableAd.onCTAClick();
|
|
565
|
+
} else if ("snapchat" == AD_NETWORK && isSnapchat()) {
|
|
566
|
+
ScPlayableAd.onCTAClick();
|
|
505
567
|
} else if ("smadex" == AD_NETWORK && isSmadex()) {
|
|
506
568
|
smxTracking.redirect();
|
|
507
569
|
} else if ("vungle" == AD_NETWORK) {
|
|
@@ -618,7 +680,7 @@ var _sdk = class _sdk {
|
|
|
618
680
|
}
|
|
619
681
|
};
|
|
620
682
|
/** Current version of the SDK */
|
|
621
|
-
_sdk.version = "1.0.
|
|
683
|
+
_sdk.version = "1.0.23";
|
|
622
684
|
/** Current maximum width of the playable ad container in pixels */
|
|
623
685
|
_sdk.maxWidth = Math.floor(window.innerWidth);
|
|
624
686
|
/** 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.0.
|
|
3
|
+
"version": "1.0.23",
|
|
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",
|