@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 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.21";
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 */
@@ -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.21";
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.21";
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.21",
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",