emi-indo-cordova-plugin-admob 1.6.4 → 1.6.5
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 +10 -5
- package/example/www/index.html +1 -1
- package/example/www/js/appOpenAd.js +10 -1
- package/example/www/js/bannerAd.js +12 -0
- package/example/www/js/interstitialAd.js +11 -0
- package/example/www/js/rewardedAd.js +12 -1
- package/example/www/js/rewardedInterstitialAd.js +11 -0
- package/package.json +1 -1
- package/plugin.xml +1 -1
- package/src/android/emiAdmobPlugin.kt +78 -9
package/README.md
CHANGED
@@ -125,9 +125,14 @@ https://developers.google.com/admob/ios/quick-start
|
|
125
125
|
<li> impression-level-ad-revenue</li>
|
126
126
|
</ul>
|
127
127
|
</details>
|
128
|
+
## Version locking the plugin during production is highly recommended.
|
128
129
|
|
129
|
-
|
130
|
+
- Example cordova plugin add emi-indo-cordova-plugin-admob@1.6.0 --save --variable APP_ID_ANDROID=ca-app-pub-xxx~xxx
|
131
|
+
- View plugin version: https://www.npmjs.com/package/emi-indo-cordova-plugin-admob?activeTab=versions
|
132
|
+
- Release notes: https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/releases
|
130
133
|
|
134
|
+
## Installation
|
135
|
+
- Recommendation to version-lock the plugin during production
|
131
136
|
- Only platform Android
|
132
137
|
```sh
|
133
138
|
cordova plugin add emi-indo-cordova-plugin-admob --save --variable APP_ID_ANDROID=ca-app-pub-xxx~xxx
|
@@ -345,7 +350,7 @@ document.addEventListener('on.appOpenAd.loaded', () => {
|
|
345
350
|
</pre>
|
346
351
|
</details>
|
347
352
|
|
348
|
-
- [FULL AppOpenAd basic:](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/
|
353
|
+
- [FULL AppOpenAd basic:](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/example/www/js/appOpenAd.js)
|
349
354
|
|
350
355
|
|
351
356
|
|
@@ -448,7 +453,7 @@ console.log("Collapsible Status: " + event.collapsible);
|
|
448
453
|
</pre>
|
449
454
|
</details>
|
450
455
|
|
451
|
-
[FULL Banner basic:](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/
|
456
|
+
[FULL Banner basic:](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/example/www/js/bannerAd.js)
|
452
457
|
|
453
458
|
|
454
459
|
## Interstitial ADS
|
@@ -511,7 +516,7 @@ document.addEventListener('on.interstitial.dismissed', () => {
|
|
511
516
|
</details>
|
512
517
|
|
513
518
|
|
514
|
-
[FULL Interstitial basic: ](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/
|
519
|
+
[FULL Interstitial basic: ](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/example/www/js/interstitialAd.js)
|
515
520
|
|
516
521
|
|
517
522
|
|
@@ -640,7 +645,7 @@ document.addEventListener('on.rewarded.dismissed', () => {
|
|
640
645
|
</pre>
|
641
646
|
</details>
|
642
647
|
|
643
|
-
[FULL Rewarded basic: ](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/
|
648
|
+
[FULL Rewarded basic: ](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/example/www/js/rewardedAd.js)
|
644
649
|
|
645
650
|
|
646
651
|
|
package/example/www/index.html
CHANGED
@@ -12,7 +12,7 @@
|
|
12
12
|
|
13
13
|
|
14
14
|
<label for="event">Debug Event All response :</label>
|
15
|
-
<textarea id="log" name="log" rows="
|
15
|
+
<textarea id="log" name="log" rows="20" cols="40"></textarea>
|
16
16
|
|
17
17
|
<p> <button onclick="loadAppOpen();">Auto Show App Open Ad</button></p>
|
18
18
|
|
@@ -72,7 +72,16 @@ document.addEventListener('on.appOpenAd.loaded', () => {
|
|
72
72
|
document.addEventListener('on.appOpenAd.failed.loaded', (error) => {
|
73
73
|
isAppOpenAdLoad = false;
|
74
74
|
console.log("on.appOpenAd.failed.loaded" + JSON.stringify(error));
|
75
|
-
|
75
|
+
/*
|
76
|
+
error.code
|
77
|
+
error.message
|
78
|
+
error.domain
|
79
|
+
error.responseInfoId
|
80
|
+
error.responseInfoExtras
|
81
|
+
error.responseInfoAdapter
|
82
|
+
error.responseInfoMediationAdapterClassName
|
83
|
+
error.responseInfoAdapterResponses
|
84
|
+
*/
|
76
85
|
window.log.value += ("\n on.appOpenAd.failed.loaded" + JSON.stringify(error));
|
77
86
|
});
|
78
87
|
|
@@ -128,6 +128,18 @@ document.addEventListener('on.is.collapsible', function (event) {
|
|
128
128
|
|
129
129
|
document.addEventListener('on.banner.failed.load', (error) => {
|
130
130
|
console.log("on.banner.failed.load" + JSON.stringify(error));
|
131
|
+
|
132
|
+
/*
|
133
|
+
error.code
|
134
|
+
error.message
|
135
|
+
error.domain
|
136
|
+
error.responseInfoId
|
137
|
+
error.responseInfoExtras
|
138
|
+
error.responseInfoAdapter
|
139
|
+
error.responseInfoMediationAdapterClassName
|
140
|
+
error.responseInfoAdapterResponses
|
141
|
+
*/
|
142
|
+
|
131
143
|
});
|
132
144
|
|
133
145
|
|
@@ -67,6 +67,17 @@ document.addEventListener('on.interstitial.dismissed', () => {
|
|
67
67
|
document.addEventListener('on.interstitial.failed.load', (error) => {
|
68
68
|
isInterstitialLoad = false;
|
69
69
|
console.log("on.interstitial.failed.load" + JSON.stringify(error));
|
70
|
+
|
71
|
+
/*
|
72
|
+
error.code
|
73
|
+
error.message
|
74
|
+
error.domain
|
75
|
+
error.responseInfoId
|
76
|
+
error.responseInfoExtras
|
77
|
+
error.responseInfoAdapter
|
78
|
+
error.responseInfoMediationAdapterClassName
|
79
|
+
error.responseInfoAdapterResponses
|
80
|
+
*/
|
70
81
|
|
71
82
|
window.log.value += ("\n on.interstitial.failed.load" + JSON.stringify(error));
|
72
83
|
});
|
@@ -52,6 +52,17 @@ document.addEventListener('on.rewarded.failed.load', (error) => {
|
|
52
52
|
isRewardedLoad = false;
|
53
53
|
console.log("on.rewarded.failed.load" + JSON.stringify(error));
|
54
54
|
|
55
|
+
/*
|
56
|
+
error.code
|
57
|
+
error.message
|
58
|
+
error.domain
|
59
|
+
error.responseInfoId
|
60
|
+
error.responseInfoExtras
|
61
|
+
error.responseInfoAdapter
|
62
|
+
error.responseInfoMediationAdapterClassName
|
63
|
+
error.responseInfoAdapterResponses
|
64
|
+
*/
|
65
|
+
|
55
66
|
window.log.value += ("\n on.rewarded.failed.load" + JSON.stringify(error));
|
56
67
|
});
|
57
68
|
|
@@ -77,7 +88,7 @@ document.addEventListener('on.reward.userEarnedReward', (rewarded) => {
|
|
77
88
|
// all events that contain the keyword dismissed there is a block to load the ad after it is closed by the user.
|
78
89
|
document.addEventListener('on.rewarded.dismissed', () => {
|
79
90
|
isRewardedLoad = false;
|
80
|
-
console.log("on
|
91
|
+
console.log("on rewarded Ad dismissed");
|
81
92
|
console.log("you can load ads automatically after the ads are closed by users");
|
82
93
|
loadRewarded();
|
83
94
|
|
@@ -50,6 +50,17 @@ document.addEventListener('on.rewardedInt.failed.load', (error) => {
|
|
50
50
|
isRewardedIntLoad = false;
|
51
51
|
console.log("on.rewardedInt.failed.load" + JSON.stringify(error));
|
52
52
|
|
53
|
+
/*
|
54
|
+
error.code
|
55
|
+
error.message
|
56
|
+
error.domain
|
57
|
+
error.responseInfoId
|
58
|
+
error.responseInfoExtras
|
59
|
+
error.responseInfoAdapter
|
60
|
+
error.responseInfoMediationAdapterClassName
|
61
|
+
error.responseInfoAdapterResponses
|
62
|
+
*/
|
63
|
+
|
53
64
|
window.log.value += ("\n on.rewardedInt.failed.load" + JSON.stringify(error));
|
54
65
|
});
|
55
66
|
|
package/package.json
CHANGED
package/plugin.xml
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
<plugin xmlns="http://apache.org/cordova/ns/plugins/1.0"
|
2
2
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
3
|
-
id="emi-indo-cordova-plugin-admob" version="1.6.
|
3
|
+
id="emi-indo-cordova-plugin-admob" version="1.6.5">
|
4
4
|
|
5
5
|
<name>emiAdmobPlugin</name>
|
6
6
|
<description>Cordova Plugin Admob Android IOS</description>
|
@@ -180,6 +180,7 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
180
180
|
bannerView!!.loadAd(buildAdRequest())
|
181
181
|
bannerViewLayout!!.addView(bannerView)
|
182
182
|
bannerViewLayout!!.bringToFront()
|
183
|
+
bannerViewLayout!!.requestFocus();
|
183
184
|
bannerOverlappingToZero()
|
184
185
|
}
|
185
186
|
} catch (e: Exception) {
|
@@ -437,28 +438,31 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
437
438
|
}
|
438
439
|
}
|
439
440
|
|
441
|
+
|
440
442
|
if (isResponseInfo) {
|
441
443
|
val result = JSONObject()
|
442
444
|
val responseInfo = ad.responseInfo
|
443
445
|
try {
|
444
|
-
result.put("getResponseId", responseInfo.responseId)
|
446
|
+
result.put("getResponseId", responseInfo.responseId.toString())
|
445
447
|
result.put(
|
446
448
|
"getAdapterResponses",
|
447
|
-
responseInfo.adapterResponses
|
449
|
+
responseInfo.adapterResponses.toString()
|
448
450
|
)
|
449
451
|
result.put(
|
450
452
|
"getResponseExtras",
|
451
|
-
responseInfo.responseExtras
|
453
|
+
responseInfo.responseExtras.toString()
|
452
454
|
)
|
453
455
|
result.put(
|
454
456
|
"getMediationAdapterClassName",
|
455
|
-
responseInfo.mediationAdapterClassName
|
457
|
+
responseInfo.mediationAdapterClassName.toString()
|
456
458
|
)
|
457
459
|
result.put("getBundleExtra", mBundleExtra.toString())
|
458
460
|
cWebView!!.loadUrl("javascript:cordova.fireDocumentEvent('on.appOpenAd.responseInfo', ${result})")
|
459
461
|
} catch (e: JSONException) {
|
460
462
|
callbackContext.error(e.message)
|
461
463
|
}
|
464
|
+
|
465
|
+
|
462
466
|
}
|
463
467
|
|
464
468
|
|
@@ -593,13 +597,30 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
593
597
|
override fun onAdFailedToLoad(loadAdError: LoadAdError) {
|
594
598
|
mInterstitialAd = null
|
595
599
|
isInterstitialLoad = false
|
600
|
+
|
596
601
|
val errorData = JSONObject().apply {
|
597
|
-
put("responseInfo", loadAdError.responseInfo.toString())
|
598
602
|
put("code", loadAdError.code)
|
599
603
|
put("message", loadAdError.message)
|
600
604
|
put("domain", loadAdError.domain)
|
601
605
|
put("cause", loadAdError.cause?.toString() ?: "null")
|
606
|
+
|
607
|
+
val responseId = loadAdError.responseInfo?.responseId.toString()
|
608
|
+
val responseExtras = loadAdError.responseInfo?.responseExtras.toString()
|
609
|
+
val loadedAdapterResponseInfo =
|
610
|
+
loadAdError.responseInfo?.loadedAdapterResponseInfo.toString()
|
611
|
+
val mediationAdapterClassName =
|
612
|
+
loadAdError.responseInfo?.mediationAdapterClassName.toString()
|
613
|
+
val adapterResponses =
|
614
|
+
loadAdError.responseInfo?.adapterResponses.toString()
|
615
|
+
|
616
|
+
put("responseInfoId", responseId)
|
617
|
+
put("responseInfoExtras", responseExtras)
|
618
|
+
put("responseInfoAdapter", loadedAdapterResponseInfo)
|
619
|
+
put("responseInfoMediationAdapterClassName", mediationAdapterClassName)
|
620
|
+
put("responseInfoAdapterResponses", adapterResponses)
|
602
621
|
}
|
622
|
+
|
623
|
+
|
603
624
|
cWebView!!.loadUrl(
|
604
625
|
"javascript:cordova.fireDocumentEvent('on.interstitial.failed.load', ${errorData});"
|
605
626
|
)
|
@@ -637,11 +658,28 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
637
658
|
isRewardedLoad = false
|
638
659
|
|
639
660
|
val errorData = JSONObject().apply {
|
640
|
-
put("responseInfo", loadAdError.responseInfo.toString())
|
641
661
|
put("code", loadAdError.code)
|
642
662
|
put("message", loadAdError.message)
|
643
663
|
put("domain", loadAdError.domain)
|
644
664
|
put("cause", loadAdError.cause?.toString() ?: "null")
|
665
|
+
|
666
|
+
|
667
|
+
val responseId = loadAdError.responseInfo?.responseId.toString()
|
668
|
+
val responseExtras = loadAdError.responseInfo?.responseExtras.toString()
|
669
|
+
val loadedAdapterResponseInfo =
|
670
|
+
loadAdError.responseInfo?.loadedAdapterResponseInfo.toString()
|
671
|
+
val mediationAdapterClassName =
|
672
|
+
loadAdError.responseInfo?.mediationAdapterClassName.toString()
|
673
|
+
val adapterResponses =
|
674
|
+
loadAdError.responseInfo?.adapterResponses.toString()
|
675
|
+
|
676
|
+
put("responseInfoId", responseId)
|
677
|
+
put("responseInfoExtras", responseExtras)
|
678
|
+
put("responseInfoAdapter", loadedAdapterResponseInfo)
|
679
|
+
put("responseInfoMediationAdapterClassName", mediationAdapterClassName)
|
680
|
+
put("responseInfoAdapterResponses", adapterResponses)
|
681
|
+
|
682
|
+
|
645
683
|
}
|
646
684
|
|
647
685
|
cWebView!!.loadUrl(
|
@@ -887,11 +925,25 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
887
925
|
rewardedInterstitialAd = null
|
888
926
|
isRewardedInterstitialLoad = false
|
889
927
|
val errorData = JSONObject().apply {
|
890
|
-
put("responseInfo", loadAdError.responseInfo.toString())
|
891
928
|
put("code", loadAdError.code)
|
892
929
|
put("message", loadAdError.message)
|
893
930
|
put("domain", loadAdError.domain)
|
894
931
|
put("cause", loadAdError.cause?.toString() ?: "null")
|
932
|
+
|
933
|
+
val responseId = loadAdError.responseInfo?.responseId.toString()
|
934
|
+
val responseExtras = loadAdError.responseInfo?.responseExtras.toString()
|
935
|
+
val loadedAdapterResponseInfo =
|
936
|
+
loadAdError.responseInfo?.loadedAdapterResponseInfo.toString()
|
937
|
+
val mediationAdapterClassName =
|
938
|
+
loadAdError.responseInfo?.mediationAdapterClassName.toString()
|
939
|
+
val adapterResponses =
|
940
|
+
loadAdError.responseInfo?.adapterResponses.toString()
|
941
|
+
|
942
|
+
put("responseInfoId", responseId)
|
943
|
+
put("responseInfoExtras", responseExtras)
|
944
|
+
put("responseInfoAdapter", loadedAdapterResponseInfo)
|
945
|
+
put("responseInfoMediationAdapterClassName", mediationAdapterClassName)
|
946
|
+
put("responseInfoAdapterResponses", adapterResponses)
|
895
947
|
}
|
896
948
|
cWebView!!.loadUrl(
|
897
949
|
"javascript:cordova.fireDocumentEvent('on.rewardedInt.failed.load', ${errorData});"
|
@@ -1072,12 +1124,13 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
1072
1124
|
try {
|
1073
1125
|
bannerView!!.visibility = View.VISIBLE
|
1074
1126
|
bannerView!!.resume()
|
1075
|
-
// bannerOverlappingToZero()
|
1076
1127
|
|
1077
1128
|
if (isOverlapping) {
|
1078
1129
|
bannerOverlapping()
|
1079
1130
|
}
|
1080
1131
|
|
1132
|
+
bannerViewLayout!!.requestFocus();
|
1133
|
+
|
1081
1134
|
|
1082
1135
|
} catch (e: Exception) {
|
1083
1136
|
callbackContext.error(e.toString())
|
@@ -1258,6 +1311,7 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
1258
1311
|
if (lock) {
|
1259
1312
|
bannerViewLayout!!.addView(bannerView)
|
1260
1313
|
bannerViewLayout!!.bringToFront()
|
1314
|
+
bannerViewLayout!!.requestFocus();
|
1261
1315
|
lock = false
|
1262
1316
|
}
|
1263
1317
|
isBannerPause = 0
|
@@ -1282,6 +1336,7 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
1282
1336
|
if (lock) {
|
1283
1337
|
bannerViewLayout!!.addView(bannerView)
|
1284
1338
|
bannerViewLayout!!.bringToFront()
|
1339
|
+
bannerViewLayout!!.requestFocus();
|
1285
1340
|
lock = false
|
1286
1341
|
}
|
1287
1342
|
isBannerShow = true
|
@@ -1305,11 +1360,25 @@ class emiAdmobPlugin : CordovaPlugin() {
|
|
1305
1360
|
|
1306
1361
|
override fun onAdFailedToLoad(adError: LoadAdError) {
|
1307
1362
|
val errorData = JSONObject().apply {
|
1308
|
-
put("responseInfo", adError.responseInfo.toString())
|
1309
1363
|
put("code", adError.code)
|
1310
1364
|
put("message", adError.message)
|
1311
1365
|
put("domain", adError.domain)
|
1312
1366
|
put("cause", adError.cause?.toString() ?: "null")
|
1367
|
+
|
1368
|
+
val responseId = adError.responseInfo?.responseId.toString()
|
1369
|
+
val responseExtras = adError.responseInfo?.responseExtras.toString()
|
1370
|
+
val loadedAdapterResponseInfo =
|
1371
|
+
adError.responseInfo?.loadedAdapterResponseInfo.toString()
|
1372
|
+
val mediationAdapterClassName =
|
1373
|
+
adError.responseInfo?.mediationAdapterClassName.toString()
|
1374
|
+
val adapterResponses =
|
1375
|
+
adError.responseInfo?.adapterResponses.toString()
|
1376
|
+
|
1377
|
+
put("responseInfoId", responseId)
|
1378
|
+
put("responseInfoExtras", responseExtras)
|
1379
|
+
put("responseInfoAdapter", loadedAdapterResponseInfo)
|
1380
|
+
put("responseInfoMediationAdapterClassName", mediationAdapterClassName)
|
1381
|
+
put("responseInfoAdapterResponses", adapterResponses)
|
1313
1382
|
}
|
1314
1383
|
|
1315
1384
|
cWebView!!.loadUrl("javascript:cordova.fireDocumentEvent('on.banner.failed.load', ${errorData});")
|