emi-indo-cordova-plugin-admob 0.0.4 → 0.0.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 +229 -79
- package/example/index.html +107 -17
- package/package.json +1 -1
- package/plugin.xml +1 -1
- package/src/android/emiAdmobPlugin.java +1 -1
- package/www/emiAdmobPlugin.js +16 -9
- package/example/getMediationAdapterName.html +0 -59
package/README.md
CHANGED
@@ -27,7 +27,9 @@ https://user-images.githubusercontent.com/78555833/228323239-e9e18e74-b814-4ca8-
|
|
27
27
|
|
28
28
|
|
29
29
|
|
30
|
-
|
30
|
+
## 💰Sponsor this project
|
31
|
+
[](https://paypal.me/emiindo)
|
32
|
+
|
31
33
|
## Features
|
32
34
|
|
33
35
|
- Banner Ads
|
@@ -55,135 +57,244 @@ cordova plugin add https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob --v
|
|
55
57
|
cordova plugin rm emi-indo-cordova-plugin-admob
|
56
58
|
```
|
57
59
|
|
58
|
-
##
|
60
|
+
## upgrade Mobile Ads SDK
|
59
61
|
[Release Notes Mobile Ads SDK:](https://developers.google.com/admob/android/rel-notes)
|
60
62
|
```sh
|
61
|
-
cordova plugin add
|
63
|
+
cordova plugin add emi-indo-cordova-plugin-admob --variable APP_ID_ANDROID=ca-app-pub-3940256099942544~3347511713 --variable PLAY_SERVICES_VERSION="xxxx"
|
62
64
|
```
|
63
65
|
|
66
|
+
## Response Info
|
67
|
+
- Here is a sample output returned by responseInfo = true showing the debugging data returned for a loaded ad:
|
64
68
|
|
69
|
+
```sh
|
70
|
+
{
|
71
|
+
"Response ID": "COOllLGxlPoCFdAx4Aod-Q4A0g",
|
72
|
+
"Mediation Adapter Class Name": "com.google.ads.mediation.admob.AdMobAdapter",
|
73
|
+
"Adapter Responses": [
|
74
|
+
{
|
75
|
+
"Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
|
76
|
+
"Latency": 328,
|
77
|
+
"Ad Source Name": "Reservation campaign",
|
78
|
+
"Ad Source ID": "7068401028668408324",
|
79
|
+
"Ad Source Instance Name": "[DO NOT EDIT] Publisher Test Interstitial",
|
80
|
+
"Ad Source Instance ID": "4665218928925097",
|
81
|
+
"Credentials": {},
|
82
|
+
"Ad Error": "null"
|
83
|
+
}
|
84
|
+
],
|
85
|
+
"Loaded Adapter Response": {
|
86
|
+
"Adapter": "com.google.ads.mediation.admob.AdMobAdapter",
|
87
|
+
"Latency": 328,
|
88
|
+
"Ad Source Name": "Reservation campaign",
|
89
|
+
"Ad Source ID": "7068401028668408324",
|
90
|
+
"Ad Source Instance Name": "[DO NOT EDIT] Publisher Test Interstitial",
|
91
|
+
"Ad Source Instance ID": "4665218928925097",
|
92
|
+
"Credentials": {},
|
93
|
+
"Ad Error": "null"
|
94
|
+
},
|
95
|
+
"Response Extras": {
|
96
|
+
"mediation_group_name": "Campaign"
|
97
|
+
}
|
98
|
+
}
|
99
|
+
```
|
65
100
|
|
66
|
-
## 💰Sponsor this project
|
67
|
-
[](https://paypal.me/emiindo)
|
68
101
|
|
69
102
|
## deviceready
|
70
103
|
|
71
104
|
[Example ](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/blob/main/example/index.html) - index.html:
|
72
105
|
|
73
106
|
|
107
|
+
```sh
|
74
108
|
|
109
|
+
// Before loading ads, have your app initialize the Google Mobile Ads SDK by calling
|
110
|
+
// This needs to be done only once, ideally at app launch.
|
75
111
|
|
76
|
-
|
112
|
+
cordova.plugins.emiAdmobPlugin.initialize();
|
77
113
|
|
78
|
-
|
79
|
-
( set banner size: )
|
114
|
+
document.addEventListener('on.SdkInitializationComplete', () => {
|
80
115
|
|
81
|
-
|
82
|
-
Inline_adaptive
|
83
|
-
BANNER
|
84
|
-
LARGE_BANNER
|
85
|
-
MEDIUM_RECTANGLE
|
86
|
-
FULL_BANNER
|
87
|
-
LEADERBOARD
|
88
|
-
Smart Banners = DEPRECATED
|
89
|
-
default: Anchored_adaptive
|
116
|
+
alert("on Sdk Initialization Complete");
|
90
117
|
|
118
|
+
});
|
91
119
|
|
92
|
-
( set banner position )
|
93
120
|
|
94
|
-
|
95
|
-
top-center
|
96
|
-
left
|
97
|
-
center
|
98
|
-
right
|
99
|
-
bottom-center
|
100
|
-
bottom-right
|
121
|
+
```
|
101
122
|
|
102
|
-
|
103
|
-
*/
|
123
|
+
## Banner Ads
|
104
124
|
|
125
|
+
> __Note__
|
126
|
+
### Variable name and index (final) cannot be changed.
|
127
|
+
- bannerAdUnitId | index 0
|
128
|
+
- position | index 1
|
129
|
+
- size | index 2
|
130
|
+
- adaptiveWidth | index 3
|
105
131
|
|
106
|
-
var bannerAdUnitId = "ca-app-pub-3940256099942544/6300978111"
|
107
|
-
var interstitialAdAdUnitId = "ca-app-pub-3940256099942544/1033173712"
|
108
|
-
var rewardedInterstitialAdUnitId = "ca-app-pub-3940256099942544/5354046379"
|
109
|
-
var rewardedAdAdUnitId = "ca-app-pub-3940256099942544/5224354917"
|
110
132
|
|
111
|
-
|
112
|
-
|
113
|
-
var adaptiveWidth = 320
|
133
|
+
```sh
|
134
|
+
/// setting banner size: BANNER | LARGE_BANNER | MEDIUM_RECTANGLE | FULL_BANNER | LEADERBOARD | default: "BANNER" | (Smart Banners = DEPRECATED) | Inline_adaptive | Anchored_adaptive
|
114
135
|
|
136
|
+
/// setting banner position: top-right | top-center | left | center | right | bottom-center | bottom-right | default: "bottom-left"
|
115
137
|
|
116
|
-
// Before loading ads, have your app initialize the Google Mobile Ads SDK by calling
|
117
|
-
// This needs to be done only once, ideally at app launch.
|
118
138
|
|
119
|
-
|
139
|
+
// Banner Adaptive
|
120
140
|
|
121
|
-
|
141
|
+
let showBannerAdaptive = () => {
|
142
|
+
cordova.plugins.emiAdmobPlugin.showBannerAd(
|
143
|
+
bannerAdUnitId = "ca-app-pub-3940256099942544/6300978111",
|
144
|
+
position = "bottom-center",
|
145
|
+
size = "Inline_adaptive", // | Inline_adaptive | Anchored_adaptive
|
146
|
+
adaptiveWidth = 320,
|
122
147
|
|
123
|
-
|
148
|
+
(seccess) => { console.log("success") },
|
149
|
+
(error) => { alert(error)
|
124
150
|
|
125
|
-
});
|
151
|
+
});
|
152
|
+
}
|
126
153
|
|
154
|
+
// call showBannerAdaptive();
|
127
155
|
|
128
|
-
|
156
|
+
// not Adaptive banner
|
157
|
+
|
158
|
+
let showBannerNotAdaptive = () => {
|
159
|
+
cordova.plugins.emiAdmobPlugin.showBannerAd(
|
160
|
+
bannerAdUnitId = "ca-app-pub-3940256099942544/6300978111",
|
161
|
+
position = "bottom-center",
|
162
|
+
size = "BANNER",
|
163
|
+
|
164
|
+
(seccess) => { console.log("success") },
|
165
|
+
(error) => { alert(error)
|
166
|
+
|
167
|
+
});
|
168
|
+
}
|
169
|
+
|
170
|
+
// call showBannerNotAdaptive();
|
171
|
+
|
172
|
+
// Remove Banner
|
173
|
+
|
174
|
+
let removeBannerAd = () => {
|
175
|
+
cordova.plugins.emiAdmobPlugin.removeBannerAd();
|
176
|
+
}
|
177
|
+
|
178
|
+
// call removeBannerAd();
|
129
179
|
|
130
|
-
## Banner Ads
|
131
|
-
```sh
|
132
|
-
// Load a Show BANNER cordova.plugins.emiAdmobPlugin.showBannerAd(bannerAdUnitId, size, position);
|
133
|
-
// Load a Show BANNER adaptive cordova.plugins.emiAdmobPlugin.showBannerAd(bannerAdUnitId, size, position, adaptiveWidth);
|
134
|
-
// remove cordova.plugins.emiAdmobPlugin.removeBannerAd();
|
135
180
|
```
|
136
181
|
[Banner ads event](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob#-banner-ads-) - callback:
|
137
182
|
|
138
183
|
|
139
|
-
## Interstitial
|
184
|
+
## Interstitial Ads
|
185
|
+
|
186
|
+
> __Note__
|
187
|
+
### Variable name and index (final) cannot be changed.
|
188
|
+
- interstitialAdAdUnitId | index 0
|
189
|
+
- responseInfo | index 1
|
140
190
|
|
141
191
|
```sh
|
192
|
+
// Load Interstitial Ad
|
193
|
+
|
194
|
+
let loadInterstitialAd = () => {
|
195
|
+
cordova.plugins.emiAdmobPlugin.loadInterstitialAd(
|
196
|
+
interstitialAdAdUnitId = "ca-app-pub-3940256099942544/1033173712",
|
197
|
+
responseInfo = true, // boolean (debugging)
|
198
|
+
|
199
|
+
(info) => { alert(info) },
|
200
|
+
(error) => { alert(error)
|
201
|
+
|
202
|
+
});
|
203
|
+
}
|
204
|
+
|
205
|
+
// call loadInterstitialAd();
|
206
|
+
|
207
|
+
// Show Interstitial Ad
|
208
|
+
|
209
|
+
let showInterstitialAd = () => {
|
210
|
+
cordova.plugins.emiAdmobPlugin.showInterstitialAd();
|
211
|
+
}
|
142
212
|
|
143
|
-
//
|
213
|
+
// call showInterstitialAd();
|
144
214
|
|
145
|
-
// Show cordova.plugins.emiAdmobPlugin.showInterstitialAd();
|
146
215
|
```
|
147
216
|
|
148
217
|
[Interstitial ads event](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob#-interstitial-ads-) - callback:
|
149
218
|
|
150
219
|
|
151
220
|
|
152
|
-
## Rewarded
|
221
|
+
## Rewarded Ads
|
222
|
+
|
223
|
+
> __Note__
|
224
|
+
### Variable name and index (final) cannot be changed.
|
225
|
+
- rewardedAdAdUnitId | index 0
|
226
|
+
- responseInfo | index 1
|
153
227
|
|
154
228
|
```sh
|
155
229
|
|
156
|
-
// Load
|
230
|
+
// Load Rewarded Ad
|
231
|
+
|
232
|
+
let loadRewardedAd = () => {
|
233
|
+
cordova.plugins.emiAdmobPlugin.loadRewardedAd(
|
234
|
+
rewardedAdAdUnitId = "ca-app-pub-3940256099942544/5224354917",
|
235
|
+
responseInfo = true, // boolean (debugging)
|
236
|
+
|
237
|
+
|
238
|
+
(info) => { alert(info) },
|
239
|
+
(error) => { alert(error)
|
240
|
+
|
241
|
+
});
|
242
|
+
}
|
243
|
+
|
244
|
+
// call loadRewardedAd();
|
245
|
+
|
246
|
+
// Show Rewarded Ad
|
247
|
+
|
248
|
+
let showRewardedAd = () => {
|
249
|
+
cordova.plugins.emiAdmobPlugin.showRewardedAd();
|
250
|
+
}
|
251
|
+
|
252
|
+
// call showRewardedAd();
|
157
253
|
|
158
|
-
// Show cordova.plugins.emiAdmobPlugin.showRewardedAd();
|
159
254
|
|
160
255
|
```
|
161
256
|
|
162
257
|
[Rewarded ads event](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob#-rewarded-ads-) - callback:
|
163
258
|
|
164
259
|
|
165
|
-
## Rewarded interstitial
|
260
|
+
## Rewarded interstitial Ads
|
261
|
+
|
262
|
+
> __Note__
|
263
|
+
### Variable name and index (final) cannot be changed.
|
264
|
+
- rewardedInterstitialAdUnitId | index 0
|
265
|
+
- responseInfo | index 1
|
166
266
|
|
167
267
|
```sh
|
168
268
|
|
169
|
-
//
|
269
|
+
// load Rewarded Interstitial Ad
|
170
270
|
|
171
|
-
|
271
|
+
let loadRewardedInterstitialAd = () => {
|
272
|
+
cordova.plugins.emiAdmobPlugin.loadRewardedInterstitialAd(
|
273
|
+
rewardedInterstitialAdUnitId = "ca-app-pub-3940256099942544/5354046379",
|
274
|
+
responseInfo = true, // boolean (debugging)
|
275
|
+
|
276
|
+
(info) => { alert(info) },
|
277
|
+
(error) => { alert(error)
|
172
278
|
|
173
|
-
|
279
|
+
});
|
280
|
+
}
|
174
281
|
|
175
|
-
|
282
|
+
// call loadRewardedInterstitialAd();
|
176
283
|
|
284
|
+
// Show Rewarded Interstitial Ad
|
177
285
|
|
178
|
-
|
286
|
+
const showRewardedInterstitialAd = () => {
|
287
|
+
cordova.plugins.emiAdmobPlugin.showRewardedInterstitialAd();
|
288
|
+
}
|
179
289
|
|
180
|
-
|
181
|
-
```sh
|
290
|
+
// cal showRewardedInterstitialAd();
|
182
291
|
|
183
|
-
cordova.plugins.emiAdmobPlugin.loadRewardedAd(rewardedAdAdUnitId, success, error);
|
184
292
|
|
185
293
|
```
|
186
294
|
|
295
|
+
[Rewarded interstitial ads event](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob#-rewarded-ads-) - callback:
|
296
|
+
|
297
|
+
|
187
298
|
|
188
299
|
# Event | callback:
|
189
300
|
### event code
|
@@ -197,24 +308,15 @@ alert("on.banner Ad Loaded");
|
|
197
308
|
|
198
309
|
```
|
199
310
|
|
311
|
+
> __Note__
|
312
|
+
### (final) cannot be changed.
|
313
|
+
|
200
314
|
## ( SDK )
|
201
315
|
- on.SdkInitializationComplete
|
202
316
|
|
203
317
|
|
204
318
|
## ( Banner Ads )
|
205
319
|
|
206
|
-
### size
|
207
|
-
- Anchored_adaptive
|
208
|
-
- Inline_adaptive
|
209
|
-
- BANNER
|
210
|
-
- LARGE_BANNER
|
211
|
-
- MEDIUM_RECTANGLE
|
212
|
-
- FULL_BANNER
|
213
|
-
- LEADERBOARD
|
214
|
-
- Smart Banners = DEPRECATED
|
215
|
-
- default: Anchored_adaptive
|
216
|
-
|
217
|
-
|
218
320
|
### position
|
219
321
|
|
220
322
|
- top-right
|
@@ -228,6 +330,18 @@ alert("on.banner Ad Loaded");
|
|
228
330
|
> default: 320
|
229
331
|
|
230
332
|
|
333
|
+
### size
|
334
|
+
- Anchored_adaptive
|
335
|
+
- Inline_adaptive
|
336
|
+
- BANNER
|
337
|
+
- LARGE_BANNER
|
338
|
+
- MEDIUM_RECTANGLE
|
339
|
+
- FULL_BANNER
|
340
|
+
- LEADERBOARD
|
341
|
+
- Smart Banners = DEPRECATED
|
342
|
+
- default: Anchored_adaptive
|
343
|
+
|
344
|
+
|
231
345
|
### Event Load a Show
|
232
346
|
|
233
347
|
- on.bannerAdClicked
|
@@ -299,7 +413,7 @@ alert("on.banner Ad Loaded");
|
|
299
413
|
|
300
414
|
## get Mediation Adapter Name
|
301
415
|
|
302
|
-
|
416
|
+
responseInfo = true // (debugging)
|
303
417
|
|
304
418
|
<img src="https://user-images.githubusercontent.com/78555833/230655800-0dbc3f12-72fb-4cf3-b4e6-801704fade28.png" width="250">
|
305
419
|
|
@@ -336,6 +450,39 @@ cordova plugin add emi-indo-cordova-plugin-mediation-unity
|
|
336
450
|
cordova plugin add emi-indo-cordova-plugin-mediation-applovin
|
337
451
|
```
|
338
452
|
|
453
|
+
- ================================
|
454
|
+
|
455
|
+
|
456
|
+
## AdColony Ads
|
457
|
+
[Integrate AdColony with Mediation :](https://developers.google.com/admob/android/mediation/adcolony)
|
458
|
+
- (Adapter default: 4.8.0.1)
|
459
|
+
### Installation
|
460
|
+
```sh
|
461
|
+
cordova plugin add emi-indo-cordova-plugin-mediation-adcolony
|
462
|
+
```
|
463
|
+
|
464
|
+
- ================================
|
465
|
+
|
466
|
+
|
467
|
+
## Chartboost Ads
|
468
|
+
[Integrate Chartboost with Mediation :](https://developers.google.com/admob/android/mediation/chartboost)
|
469
|
+
- (Adapter default: 9.2.1.0)
|
470
|
+
### Installation
|
471
|
+
```sh
|
472
|
+
cordova plugin add emi-indo-cordova-plugin-mediation-chartboost
|
473
|
+
```
|
474
|
+
|
475
|
+
- ================================
|
476
|
+
|
477
|
+
|
478
|
+
## ironSource Ads
|
479
|
+
[Integrate ironSource with Mediation :](https://developers.google.com/admob/android/mediation/ironsource)
|
480
|
+
- (Adapter default: 7.2.7.0)
|
481
|
+
### Installation
|
482
|
+
```sh
|
483
|
+
cordova plugin add emi-indo-cordova-plugin-mediation-ironsource
|
484
|
+
```
|
485
|
+
|
339
486
|
|
340
487
|
|
341
488
|
## Variables name or preference name
|
@@ -356,24 +503,27 @@ cordova plugin add emi-indo-cordova-plugin-mediation-meta --variable META_ADAPTE
|
|
356
503
|
- --variable META_ADAPTER_VERSION="xxxxx"
|
357
504
|
- --variable UNITY_ADAPTER_VERSION="xxxxx"
|
358
505
|
- --variable APPLOVIN_ADAPTER_VERSION="xxxxx"
|
506
|
+
- --variable ADCOLONY_ADAPTER_VERSION="xxxxx"
|
507
|
+
- --variable CHARTBOOST_ADAPTER_VERSION="xxxxx"
|
508
|
+
- --variable IRONSOURCE_ADAPTER_VERSION="xxxxx"
|
359
509
|
|
360
510
|
### preference name
|
361
511
|
|
362
512
|
- META_ADAPTER_VERSION
|
363
513
|
- UNITY_ADAPTER_VERSION
|
364
514
|
- APPLOVIN_ADAPTER_VERSION
|
365
|
-
|
366
|
-
|
515
|
+
- ADCOLONY_ADAPTER_VERSION
|
516
|
+
- CHARTBOOST_ADAPTER_VERSION
|
517
|
+
- IRONSOURCE_ADAPTER_VERSION
|
367
518
|
|
368
519
|
- ================================
|
369
520
|
|
370
521
|
|
371
522
|
|
372
523
|
|
373
|
-
|
524
|
+
|
374
525
|
> - ## Note Release
|
375
|
-
|
376
|
-
|
526
|
+
[emi-indo-cordova-plugin-admob@0.0.4](https://github.com/EMI-INDO/emi-indo-cordova-plugin-admob/releases/tag/%400.0.4)
|
377
527
|
|
378
528
|
|
379
529
|
|
package/example/index.html
CHANGED
@@ -7,16 +7,105 @@
|
|
7
7
|
<script>
|
8
8
|
|
9
9
|
|
10
|
-
|
11
|
-
var interstitialAdAdUnitId = "ca-app-pub-3940256099942544/1033173712"
|
12
|
-
var rewardedInterstitialAdUnitId = "ca-app-pub-3940256099942544/5354046379"
|
13
|
-
var rewardedAdAdUnitId = "ca-app-pub-3940256099942544/5224354917"
|
10
|
+
/// setting banner size: BANNER | LARGE_BANNER | MEDIUM_RECTANGLE | FULL_BANNER | LEADERBOARD | default: "BANNER" | (Smart Banners = DEPRECATED) | Inline_adaptive | Anchored_adaptive
|
14
11
|
|
12
|
+
/// setting banner position: top-right | top-center | left | center | right | bottom-center | bottom-right | default: "bottom-left"
|
15
13
|
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
14
|
+
|
15
|
+
// Banner Adaptive
|
16
|
+
|
17
|
+
let showBannerAdaptive = () => {
|
18
|
+
cordova.plugins.emiAdmobPlugin.showBannerAd(
|
19
|
+
bannerAdUnitId = "ca-app-pub-3940256099942544/6300978111",
|
20
|
+
position = "bottom-center",
|
21
|
+
size = "Inline_adaptive", // | Inline_adaptive | Anchored_adaptive
|
22
|
+
adaptiveWidth = 320,
|
23
|
+
|
24
|
+
(seccess) => { console.log("success") },
|
25
|
+
(error) => { alert(error)
|
26
|
+
|
27
|
+
});
|
28
|
+
}
|
29
|
+
|
30
|
+
// not Adaptive banner
|
31
|
+
|
32
|
+
let showBannerNotAdaptive = () => {
|
33
|
+
cordova.plugins.emiAdmobPlugin.showBannerAd(
|
34
|
+
bannerAdUnitId = "ca-app-pub-3940256099942544/6300978111",
|
35
|
+
position = "bottom-center",
|
36
|
+
size = "BANNER",
|
37
|
+
|
38
|
+
(seccess) => { console.log("success") },
|
39
|
+
(error) => { alert(error)
|
40
|
+
|
41
|
+
});
|
42
|
+
}
|
43
|
+
|
44
|
+
// Remove Banner
|
45
|
+
|
46
|
+
let removeBannerAd = () => {
|
47
|
+
cordova.plugins.emiAdmobPlugin.removeBannerAd();
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
// Load Interstitial Ad
|
52
|
+
|
53
|
+
let loadInterstitialAd = () => {
|
54
|
+
cordova.plugins.emiAdmobPlugin.loadInterstitialAd(
|
55
|
+
interstitialAdAdUnitId = "ca-app-pub-3940256099942544/1033173712",
|
56
|
+
responseInfo = true, // boolean
|
57
|
+
|
58
|
+
(info) => { alert(info) },
|
59
|
+
(error) => { alert(error)
|
60
|
+
|
61
|
+
});
|
62
|
+
}
|
63
|
+
|
64
|
+
// Show Interstitial Ad
|
65
|
+
|
66
|
+
let showInterstitialAd = () => {
|
67
|
+
cordova.plugins.emiAdmobPlugin.showInterstitialAd();
|
68
|
+
}
|
69
|
+
|
70
|
+
// load Rewarded Interstitial Ad
|
71
|
+
|
72
|
+
let loadRewardedInterstitialAd = () => {
|
73
|
+
cordova.plugins.emiAdmobPlugin.loadRewardedInterstitialAd(
|
74
|
+
rewardedInterstitialAdUnitId = "ca-app-pub-3940256099942544/5354046379",
|
75
|
+
responseInfo = true, // boolean
|
76
|
+
|
77
|
+
(info) => { alert(info) },
|
78
|
+
(error) => { alert(error)
|
79
|
+
|
80
|
+
});
|
81
|
+
}
|
82
|
+
|
83
|
+
|
84
|
+
// Show Rewarded Interstitial Ad
|
85
|
+
|
86
|
+
const showRewardedInterstitialAd = () => {
|
87
|
+
cordova.plugins.emiAdmobPlugin.showRewardedInterstitialAd();
|
88
|
+
}
|
89
|
+
|
90
|
+
// Load Rewarded Ad
|
91
|
+
|
92
|
+
let loadRewardedAd = () => {
|
93
|
+
cordova.plugins.emiAdmobPlugin.loadRewardedAd(
|
94
|
+
rewardedAdAdUnitId = "ca-app-pub-3940256099942544/5224354917",
|
95
|
+
responseInfo = true, // boolean
|
96
|
+
|
97
|
+
|
98
|
+
(info) => { alert(info) },
|
99
|
+
(error) => { alert(error)
|
100
|
+
|
101
|
+
});
|
102
|
+
}
|
103
|
+
|
104
|
+
// Show Rewarded Ad
|
105
|
+
|
106
|
+
let showRewardedAd = () => {
|
107
|
+
cordova.plugins.emiAdmobPlugin.showRewardedAd();
|
108
|
+
}
|
20
109
|
|
21
110
|
|
22
111
|
|
@@ -115,18 +204,19 @@ alert("on Rewarded Ad Loaded");
|
|
115
204
|
|
116
205
|
</script>
|
117
206
|
|
118
|
-
<p> <button onclick="
|
119
|
-
<p> <button onclick="
|
207
|
+
<p> <button onclick="showBannerAdaptive();">Show Banner adaptive</button></p>
|
208
|
+
<p> <button onclick="showBannerNotAdaptive();">show Banner No Adaptive</button></p>
|
209
|
+
<p> <button onclick="removeBannerAd();">remove Banner Ad</button></p>
|
120
210
|
|
121
|
-
<p> <button onclick="
|
122
|
-
<p> <button onclick="
|
211
|
+
<p> <button onclick="loadInterstitialAd();">Load Interstitial Ad</button></p>
|
212
|
+
<p> <button onclick="showInterstitialAd();">Show Interstitial Ad</button></p>
|
123
213
|
|
124
|
-
<p> <button onclick="
|
125
|
-
<p> <button onclick="
|
214
|
+
<p> <button onclick="loadRewardedInterstitialAd();">Load Rewarded Interstitial</button></p>
|
215
|
+
<p> <button onclick="showRewardedInterstitialAd();">Show Rewarded Interstitial</button></p>
|
126
216
|
|
127
|
-
<p> <button onclick="
|
128
|
-
<p> <button onclick="
|
217
|
+
<p> <button onclick="loadRewardedAd();">Load Rewarded Ad</button></p>
|
218
|
+
<p> <button onclick="showRewardedAd();">Show Rewarded Ad</button></p>
|
129
219
|
|
130
220
|
|
131
221
|
</body>
|
132
|
-
</html>
|
222
|
+
</html>
|
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="0.0.
|
3
|
+
id="emi-indo-cordova-plugin-admob" version="0.0.5">
|
4
4
|
|
5
5
|
<name>emiAdmobPlugin</name>
|
6
6
|
<description>Cordova Plugin Admob Android</description>
|
@@ -1 +1 @@
|
|
1
|
-
package emi.indo.cordova.plugin.admob;import org.apache.cordova.CordovaPlugin;import org.apache.cordova.CallbackContext;import org.apache.cordova.PluginResult;import org.json.JSONArray;import org.json.JSONException;import android.util.Log;import org.apache.cordova.CordovaInterface;import org.apache.cordova.CordovaWebView;import android.view.ViewGroup;import android.widget.RelativeLayout;import androidx.annotation.NonNull;import androidx.annotation.NonUiContext;import com.google.android.gms.ads.AdListener;import com.google.android.gms.ads.MobileAds;import com.google.android.gms.ads.AdError;import com.google.android.gms.ads.AdRequest;import com.google.android.gms.ads.AdSize;import com.google.android.gms.ads.AdView;import com.google.android.gms.ads.FullScreenContentCallback;import com.google.android.gms.ads.LoadAdError;import com.google.android.gms.ads.ResponseInfo;import com.google.android.gms.ads.VersionInfo;import com.google.android.gms.ads.interstitial.InterstitialAd;import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;import com.google.android.gms.ads.initialization.AdapterStatus;import com.google.android.gms.ads.initialization.InitializationStatus;import com.google.android.gms.ads.initialization.OnInitializationCompleteListener;import com.google.android.gms.ads.rewarded.RewardedAd;import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback;import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd;import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAdLoadCallback;import com.google.android.gms.common.api.Status;import java.util.Map;import java.util.Objects;public class emiAdmobPlugin extends CordovaPlugin{private static final String TAG="emiAdmobPlugin";private InterstitialAd mInterstitialAd;private RewardedAd rewardedAd;private RewardedInterstitialAd rewardedInterstitialAd;private CordovaWebView cWebView;private RelativeLayout bannerViewLayout;private CallbackContext rewardedCallbacks;private AdView bannerView;static boolean isbannerShow=true;static boolean isinterstitialload=false;static boolean isrewardedInterstitialload=false;static boolean isrewardedload=false;public void initialize(CordovaInterface cordova,CordovaWebView webView){super.initialize(cordova,webView);cWebView=webView;}public boolean execute(String action,JSONArray args,final CallbackContext callbackContext)throws JSONException{switch(action){case "initialize":VersionInfo mobileAds=MobileAds.getVersion();MobileAds.initialize(cordova.getActivity(),initializationStatus ->{Map<String,AdapterStatus> statusMap=initializationStatus.getAdapterStatusMap();for(String adapterClass:statusMap.keySet()){AdapterStatus status=statusMap.get(adapterClass);assert status!=null;Log.d(TAG,String.format("Adapter name:%s,Description:%s,Latency:%d",adapterClass,status.getDescription(),status.getLatency()));}callbackContext.success(mobileAds.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.SdkInitializationComplete');");});return true;case "loadInterstitialAd":cordova.getActivity().runOnUiThread(()->{final String interstitialAdAdUnitId=args.optString(0);AdRequest adRequest=new AdRequest.Builder().build();InterstitialAd.load(cordova.getActivity(),interstitialAdAdUnitId,adRequest,new InterstitialAdLoadCallback(){@Override public void onAdLoaded(@NonNull InterstitialAd interstitialAd){isinterstitialload=true;mInterstitialAd=interstitialAd;Log.i(TAG,"onAdLoaded");callbackContext.success(interstitialAd.getResponseInfo().getMediationAdapterClassName());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdLoaded');");}@Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError){Log.d(TAG,loadAdError.toString());mInterstitialAd=null;isinterstitialload=false;callbackContext.error(loadAdError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdFailedToLoad');");}});});return true;case "showInterstitialAd":if(isinterstitialload){cordova.getActivity().runOnUiThread(()->{mInterstitialAd.show(cordova.getActivity());});}else{callbackContext.error("The Interstitial ad wasn't ready yet");}return true;case "loadRewardedAd":cordova.getActivity().runOnUiThread(()->{final String rewardedAdAdUnitId=args.optString(0);AdRequest adRequest=new AdRequest.Builder().build();RewardedAd.load(cordova.getActivity(),rewardedAdAdUnitId,adRequest,new RewardedAdLoadCallback(){@Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError){Log.d(TAG,loadAdError.toString());rewardedAd=null;isrewardedload=false;Log.d(TAG,"The rewarded ad wasn't ready yet.");callbackContext.error(loadAdError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedAdFailedToLoad');");}@Override public void onAdLoaded(@NonNull RewardedAd ad){rewardedAd=ad;isrewardedload=true;Log.d(TAG,"Ad was loaded.");callbackContext.success(ad.getResponseInfo().getMediationAdapterClassName());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedAdLoaded');");}});});return true;case "showRewardedAd":cordova.getActivity().runOnUiThread(()->{if(isrewardedload){rewardedAd.show(cordova.getActivity(),rewardItem ->{Log.d(TAG,"The user earned the reward.");int rewardAmount=rewardItem.getAmount();String rewardType=rewardItem.getType();callbackContext.success("rewardAmount:"+rewardAmount+"rewardType:"+rewardType);});}else{callbackContext.error("The rewarded ad wasn't ready yet");}});return true;case "loadRewardedInterstitialAd":cordova.getActivity().runOnUiThread(()->{final String rewardedInterstitialAdUnitId=args.optString(0);RewardedInterstitialAd.load(cordova.getActivity(),rewardedInterstitialAdUnitId,new AdRequest.Builder().build(),new RewardedInterstitialAdLoadCallback(){@Override public void onAdLoaded(@NonNull RewardedInterstitialAd ad){Log.d(TAG,"Ad was loaded.");rewardedInterstitialAd=ad;isrewardedInterstitialload=true;callbackContext.success(ad.getResponseInfo().getMediationAdapterClassName());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedInterstitialAdLoaded');");}@Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError){Log.d(TAG,loadAdError.toString());rewardedInterstitialAd=null;isrewardedInterstitialload=false;callbackContext.error(loadAdError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedInterstitialAdFailedToLoad');");}});});return true;case "showRewardedInterstitialAd":cordova.getActivity().runOnUiThread(()->{if(isrewardedInterstitialload){rewardedInterstitialAd.show(cordova.getActivity(),rewardItem ->{Log.d(TAG,"The user earned the reward.");int rewardAmount=rewardItem.getAmount();String rewardType=rewardItem.getType();callbackContext.success("rewardAmount:"+rewardAmount+"rewardType:"+rewardType);});}else{Log.d(TAG,"The rewarded ad wasn't ready yet.");callbackContext.error("The rewarded ad wasn't ready yet");}});return true;case "showBannerAd":cordova.getActivity().runOnUiThread(()->{final String bannerAdUnitId=args.optString(0);final String size=args.optString(1);final String position=args.optString(2);final int adaptiveWidth=args.optInt(3);if(isbannerShow){if(bannerViewLayout==null){bannerViewLayout=new RelativeLayout(cordova.getActivity());RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);bannerViewLayout.setLayoutParams(params);((ViewGroup)Objects.requireNonNull(cWebView.getView())).addView(bannerViewLayout);}bannerView=new AdView(cordova.getActivity());if(Objects.equals(size,"BANNER")){bannerView.setAdSize(AdSize.BANNER);}else if(Objects.equals(size,"LARGE_BANNER")){bannerView.setAdSize(AdSize.LARGE_BANNER);}else if(Objects.equals(size,"MEDIUM_RECTANGLE")){bannerView.setAdSize(AdSize.MEDIUM_RECTANGLE);}else if(Objects.equals(size,"FULL_BANNER")){bannerView.setAdSize(AdSize.FULL_BANNER);}else if(Objects.equals(size,"LEADERBOARD")){bannerView.setAdSize(AdSize.LEADERBOARD);}else if(Objects.equals(size,"Anchored_adaptive")){bannerView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(cordova.getActivity(),adaptiveWidth));}else if(Objects.equals(size,"Inline_adaptive")){bannerView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(cordova.getActivity(),adaptiveWidth));}else{bannerView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(cordova.getActivity(),320));}bannerView.setAdUnitId(bannerAdUnitId);AdRequest adRequest=new AdRequest.Builder().build();bannerView.loadAd(adRequest);RelativeLayout.LayoutParams bannerParams=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);switch(position){case "top-right":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);bannerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);break;case "top-center":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);bannerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);break;case "left":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);bannerParams.addRule(RelativeLayout.CENTER_VERTICAL);break;case "center":bannerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);bannerParams.addRule(RelativeLayout.CENTER_VERTICAL);break;case "right":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);bannerParams.addRule(RelativeLayout.CENTER_VERTICAL);break;case "bottom-center":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);bannerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);break;case "bottom-right":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);bannerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);break;default:bannerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);bannerParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);break;}bannerView.setLayoutParams(bannerParams);bannerViewLayout.addView(bannerView);bannerView.setAdListener(new AdListener(){@Override public void onAdClicked(){cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdClicked');");}@Override public void onAdClosed(){cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdClosed');");}@Override public void onAdFailedToLoad(@NonNull LoadAdError adError){callbackContext.error(adError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdFailedToLoad');");}@Override public void onAdImpression(){cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdImpression');");}@Override public void onAdLoaded(){isbannerShow=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdLoaded');");}@Override public void onAdOpened(){cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdOpened');");}});}});return true;case "removeBannerAd":cordova.getActivity().runOnUiThread(()->{if(bannerView==null)return;ViewGroup parentView=(ViewGroup)bannerView.getParent();if(parentView!=null){parentView.removeView(bannerView);bannerView.destroy();bannerView=null;isbannerShow=true;}else{isbannerShow=true;}});return true;}mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){@Override public void onAdClicked(){Log.d(TAG,"Ad was clicked.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdClicked');");}@Override public void onAdDismissedFullScreenContent(){Log.d(TAG,"Ad dismissed fullscreen content.");mInterstitialAd=null;isinterstitialload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdDismissedFullScreenContent');");}@Override public void onAdFailedToShowFullScreenContent(@NonNull AdError adError){Log.e(TAG,"Ad failed to show fullscreen content.");mInterstitialAd=null;isinterstitialload=false;callbackContext.error(adError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdFailedToShowFullScreenContent');");}@Override public void onAdImpression(){Log.d(TAG,"Ad recorded an impression.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdImpression');");}@Override public void onAdShowedFullScreenContent(){Log.d(TAG,"Ad showed fullscreen content.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdShowedFullScreenContent');");}});rewardedAd.setFullScreenContentCallback(new FullScreenContentCallback(){@Override public void onAdClicked(){Log.d(TAG,"Ad was clicked.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdClicked');");}@Override public void onAdDismissedFullScreenContent(){Log.d(TAG,"Ad dismissed fullscreen content.");rewardedAd=null;isrewardedload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdDismissedFullScreenContent');");}@Override public void onAdFailedToShowFullScreenContent(@NonNull AdError adError){Log.e(TAG,"Ad failed to show fullscreen content.");rewardedAd=null;isrewardedload=false;callbackContext.error(adError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdFailedToShowFullScreenContent');");}@Override public void onAdImpression(){Log.d(TAG,"Ad recorded an impression.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdImpression');");}@Override public void onAdShowedFullScreenContent(){Log.d(TAG,"Ad showed fullscreen content.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdShowedFullScreenContent');");}});rewardedInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){@Override public void onAdClicked(){Log.d(TAG,"Ad was clicked.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdClicked');");}@Override public void onAdDismissedFullScreenContent(){Log.d(TAG,"Ad dismissed fullscreen content.");rewardedInterstitialAd=null;isrewardedInterstitialload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdDismissedFullScreenContent');");}@Override public void onAdFailedToShowFullScreenContent(@NonNull AdError adError){Log.e(TAG,"Ad failed to show fullscreen content.");rewardedInterstitialAd=null;isrewardedInterstitialload=false;callbackContext.error(adError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdFailedToShowFullScreenContent');");}@Override public void onAdImpression(){Log.d(TAG,"Ad recorded an impression.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdImpression');");}@Override public void onAdShowedFullScreenContent(){Log.d(TAG,"Ad showed fullscreen content.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdShowedFullScreenContent');");}});return false;}}
|
1
|
+
package emi.indo.cordova.plugin.admob;import org.apache.cordova.CordovaPlugin;import org.apache.cordova.CallbackContext;import org.json.JSONArray;import org.json.JSONException;import android.util.Log;import org.apache.cordova.CordovaInterface;import org.apache.cordova.CordovaWebView;import android.view.ViewGroup;import android.widget.RelativeLayout;import androidx.annotation.NonNull;import com.google.android.gms.ads.AdListener;import com.google.android.gms.ads.MobileAds;import com.google.android.gms.ads.AdError;import com.google.android.gms.ads.AdRequest;import com.google.android.gms.ads.AdSize;import com.google.android.gms.ads.AdView;import com.google.android.gms.ads.FullScreenContentCallback;import com.google.android.gms.ads.LoadAdError;import com.google.android.gms.ads.ResponseInfo;import com.google.android.gms.ads.VersionInfo;import com.google.android.gms.ads.interstitial.InterstitialAd;import com.google.android.gms.ads.interstitial.InterstitialAdLoadCallback;import com.google.android.gms.ads.initialization.AdapterStatus;import com.google.android.gms.ads.rewarded.RewardedAd;import com.google.android.gms.ads.rewarded.RewardedAdLoadCallback;import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAd;import com.google.android.gms.ads.rewardedinterstitial.RewardedInterstitialAdLoadCallback;import com.google.android.ump.ConsentForm;import com.google.android.ump.ConsentInformation;import com.google.android.ump.ConsentRequestParameters;import com.google.android.ump.FormError;import com.google.android.ump.UserMessagingPlatform;import java.util.Map;import java.util.Objects;public class emiAdmobPlugin extends CordovaPlugin{private static final String TAG="emiAdmobPlugin";private InterstitialAd mInterstitialAd;private RewardedAd rewardedAd;private RewardedInterstitialAd rewardedInterstitialAd;private CordovaWebView cWebView;private RelativeLayout bannerViewLayout;private CallbackContext rewardedCallbacks;private AdView bannerView;static boolean isbannerDestroy=false;static boolean isbannerShow=true;static boolean isinterstitialload=false;static boolean isrewardedInterstitialload=false;static boolean isrewardedload=false;private ConsentInformation consentInformation;private ConsentForm consentForm;public void initialize(CordovaInterface cordova,CordovaWebView webView){super.initialize(cordova,webView);cWebView=webView;}public boolean execute(String action,JSONArray args,final CallbackContext callbackContext)throws JSONException{switch(action){case "initialize":VersionInfo mobileAds=MobileAds.getVersion();MobileAds.initialize(cordova.getActivity(),initializationStatus ->{Map<String,AdapterStatus> statusMap=initializationStatus.getAdapterStatusMap();for(String adapterClass:statusMap.keySet()){AdapterStatus status=statusMap.get(adapterClass);if(status!=null){Log.d(TAG,String.format("Adapter name:%s,Description:%s,Latency:%d",adapterClass,status.getDescription(),status.getLatency()));}}callbackContext.success(mobileAds.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.SdkInitializationComplete');");});return true;case "loadInterstitialAd":cordova.getActivity().runOnUiThread(()->{final String interstitialAdAdUnitId=args.optString(0);final boolean responseInfo=args.optBoolean(1);AdRequest adRequest=new AdRequest.Builder().build();InterstitialAd.load(cordova.getActivity(),interstitialAdAdUnitId,adRequest,new InterstitialAdLoadCallback(){@Override public void onAdLoaded(@NonNull InterstitialAd interstitialAd){isinterstitialload=true;mInterstitialAd=interstitialAd;Log.i(TAG,"onAdLoaded");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdLoaded');");if(responseInfo){ResponseInfo responseInfo=interstitialAd.getResponseInfo();callbackContext.success(responseInfo.toString());}}@Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError){Log.d(TAG,loadAdError.toString());mInterstitialAd=null;isinterstitialload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdFailedToLoad');");callbackContext.error(loadAdError.toString());}});});return true;case "showInterstitialAd":if(isinterstitialload){cordova.getActivity().runOnUiThread(()->{mInterstitialAd.show(cordova.getActivity());});}else{callbackContext.error("The Interstitial ad wasn't ready yet");}return true;case "loadRewardedAd":cordova.getActivity().runOnUiThread(()->{final String rewardedAdAdUnitId=args.optString(0);final boolean responseInfo=args.optBoolean(1);AdRequest adRequest=new AdRequest.Builder().build();RewardedAd.load(cordova.getActivity(),rewardedAdAdUnitId,adRequest,new RewardedAdLoadCallback(){@Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError){Log.d(TAG,loadAdError.toString());rewardedAd=null;isrewardedload=false;Log.d(TAG,"The rewarded ad wasn't ready yet.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedAdFailedToLoad');");callbackContext.error(loadAdError.toString());}@Override public void onAdLoaded(@NonNull RewardedAd ad){rewardedAd=ad;isrewardedload=true;Log.d(TAG,"Ad was loaded.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedAdLoaded');");if(responseInfo){ResponseInfo responseInfo=ad.getResponseInfo();callbackContext.success(responseInfo.toString());}}});});return true;case "showRewardedAd":cordova.getActivity().runOnUiThread(()->{if(isrewardedload){rewardedAd.show(cordova.getActivity(),rewardItem ->{Log.d(TAG,"The user earned the reward.");int rewardAmount=rewardItem.getAmount();String rewardType=rewardItem.getType();callbackContext.success("rewardAmount:"+rewardAmount+"rewardType:"+rewardType);});}else{callbackContext.error("The rewarded ad wasn't ready yet");}});return true;case "loadRewardedInterstitialAd":cordova.getActivity().runOnUiThread(()->{final String rewardedInterstitialAdUnitId=args.optString(0);final boolean responseInfo=args.optBoolean(1);RewardedInterstitialAd.load(cordova.getActivity(),rewardedInterstitialAdUnitId,new AdRequest.Builder().build(),new RewardedInterstitialAdLoadCallback(){@Override public void onAdLoaded(@NonNull RewardedInterstitialAd ad){Log.d(TAG,"Ad was loaded.");rewardedInterstitialAd=ad;isrewardedInterstitialload=true;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedInterstitialAdLoaded');");if(responseInfo){ResponseInfo responseInfo=ad.getResponseInfo();callbackContext.success(responseInfo.toString());}}@Override public void onAdFailedToLoad(@NonNull LoadAdError loadAdError){Log.d(TAG,loadAdError.toString());rewardedInterstitialAd=null;isrewardedInterstitialload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.RewardedInterstitialAdFailedToLoad');");callbackContext.error(loadAdError.toString());}});});return true;case "showRewardedInterstitialAd":cordova.getActivity().runOnUiThread(()->{if(isrewardedInterstitialload){rewardedInterstitialAd.show(cordova.getActivity(),rewardItem ->{Log.d(TAG,"The user earned the reward.");int rewardAmount=rewardItem.getAmount();String rewardType=rewardItem.getType();callbackContext.success("rewardAmount:"+rewardAmount+"rewardType:"+rewardType);});}else{Log.d(TAG,"The rewarded ad wasn't ready yet.");callbackContext.error("The rewarded ad wasn't ready yet");}});return true;case "showBannerAd":cordova.getActivity().runOnUiThread(()->{final String bannerAdUnitId=args.optString(0);final String position=args.optString(1);final String size=args.optString(2);final int adaptiveWidth=args.optInt(3);if(isbannerShow){if(bannerViewLayout==null){bannerViewLayout=new RelativeLayout(cordova.getActivity());RelativeLayout.LayoutParams params=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT);bannerViewLayout.setLayoutParams(params);((ViewGroup)Objects.requireNonNull(cWebView.getView())).addView(bannerViewLayout);}bannerView=new AdView(cordova.getActivity());if(Objects.equals(size,"BANNER")){bannerView.setAdSize(AdSize.BANNER);}else if(Objects.equals(size,"LARGE_BANNER")){bannerView.setAdSize(AdSize.LARGE_BANNER);}else if(Objects.equals(size,"MEDIUM_RECTANGLE")){bannerView.setAdSize(AdSize.MEDIUM_RECTANGLE);}else if(Objects.equals(size,"FULL_BANNER")){bannerView.setAdSize(AdSize.FULL_BANNER);}else if(Objects.equals(size,"LEADERBOARD")){bannerView.setAdSize(AdSize.LEADERBOARD);}else if(Objects.equals(size,"Anchored_adaptive")){bannerView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(cordova.getActivity(),adaptiveWidth));}else if(Objects.equals(size,"Inline_adaptive")){bannerView.setAdSize(AdSize.getCurrentOrientationInlineAdaptiveBannerAdSize(cordova.getActivity(),adaptiveWidth));}else{bannerView.setAdSize(AdSize.getCurrentOrientationAnchoredAdaptiveBannerAdSize(cordova.getActivity(),320));}bannerView.setAdUnitId(bannerAdUnitId);AdRequest adRequest=new AdRequest.Builder().build();bannerView.loadAd(adRequest);isbannerShow=false;RelativeLayout.LayoutParams bannerParams=new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT,RelativeLayout.LayoutParams.WRAP_CONTENT);switch(position){case "top-right":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);bannerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);break;case "top-center":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_TOP);bannerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);break;case "left":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);bannerParams.addRule(RelativeLayout.CENTER_VERTICAL);break;case "center":bannerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);bannerParams.addRule(RelativeLayout.CENTER_VERTICAL);break;case "right":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);bannerParams.addRule(RelativeLayout.CENTER_VERTICAL);break;case "bottom-center":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);bannerParams.addRule(RelativeLayout.CENTER_HORIZONTAL);break;case "bottom-right":bannerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);bannerParams.addRule(RelativeLayout.ALIGN_PARENT_RIGHT);break;default:bannerParams.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);bannerParams.addRule(RelativeLayout.ALIGN_PARENT_LEFT);break;}isbannerDestroy=true;bannerView.setLayoutParams(bannerParams);bannerViewLayout.addView(bannerView);bannerView.setAdListener(new AdListener(){@Override public void onAdClicked(){cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdClicked');");}@Override public void onAdClosed(){cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdClosed');");}@Override public void onAdFailedToLoad(@NonNull LoadAdError adError){cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdFailedToLoad');");callbackContext.error(adError.toString());}@Override public void onAdImpression(){isbannerShow=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdImpression');");}@Override public void onAdLoaded(){isbannerShow=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdLoaded');");}@Override public void onAdOpened(){isbannerShow=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.bannerAdOpened');");}});}});return true;case "removeBannerAd":cordova.getActivity().runOnUiThread(()->{if(isbannerDestroy){if(bannerView==null)return;RelativeLayout bannerViewLayout=(RelativeLayout)bannerView.getParent();if(bannerViewLayout!=null){bannerViewLayout.removeView(bannerView);bannerView.destroy();bannerView=null;isbannerDestroy=false;isbannerShow=true;}}});return true;case "getConsentRequest":final boolean setTagForUnderAgeOfConsent=args.optBoolean(0);cordova.getActivity().runOnUiThread(()->{ConsentRequestParameters params=new ConsentRequestParameters .Builder().setTagForUnderAgeOfConsent(setTagForUnderAgeOfConsent).build();consentInformation=UserMessagingPlatform.getConsentInformation(cordova.getActivity());consentInformation.requestConsentInfoUpdate(cordova.getActivity(),params,()->{cWebView.loadUrl("javascript:cordova.fireDocumentEvent('onConsentInfoUpdateSuccess');");if(consentInformation.getConsentStatus()==ConsentInformation.ConsentStatus.NOT_REQUIRED){callbackContext.success(ConsentInformation.ConsentStatus.NOT_REQUIRED);cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.ConsentStatus.NOT_REQUIRED');");}else if(consentInformation.getConsentStatus()==ConsentInformation.ConsentStatus.OBTAINED){callbackContext.success(ConsentInformation.ConsentStatus.OBTAINED);cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.ConsentStatus.OBTAINED');");}else if(consentInformation.getConsentStatus()==ConsentInformation.ConsentStatus.REQUIRED){callbackContext.success(ConsentInformation.ConsentStatus.REQUIRED);cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.ConsentStatus.REQUIRED');");if(consentInformation.isConsentFormAvailable()){UserMessagingPlatform.loadConsentForm(cordova.getContext(),consentForm ->{consentForm.show(cordova.getActivity(),formError ->{cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.ShowError');");callbackContext.error(String.valueOf(formError));});},formError -> callbackContext.error(formError.getMessage()));cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.loadConsentFormError');");}else{cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.ConsentFormNotAvailable');");}}else if(consentInformation.getConsentStatus()==ConsentInformation.ConsentStatus.UNKNOWN){callbackContext.success(ConsentInformation.ConsentStatus.UNKNOWN);cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.ConsentStatus.UNKNOWN');");}},formError ->{cWebView.loadUrl("javascript:cordova.fireDocumentEvent('onConsentInfoUpdateFailure');");callbackContext.error(formError.getMessage());});});return true;case "consentReset":cordova.getActivity().runOnUiThread(()->{consentInformation.reset();});return true;}mInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){@Override public void onAdClicked(){Log.d(TAG,"Ad was clicked.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdClicked');");}@Override public void onAdDismissedFullScreenContent(){Log.d(TAG,"Ad dismissed fullscreen content.");mInterstitialAd=null;isinterstitialload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdDismissedFullScreenContent');");}@Override public void onAdFailedToShowFullScreenContent(@NonNull AdError adError){Log.e(TAG,"Ad failed to show fullscreen content.");mInterstitialAd=null;isinterstitialload=false;callbackContext.error(adError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdFailedToShowFullScreenContent');");}@Override public void onAdImpression(){Log.d(TAG,"Ad recorded an impression.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdImpression');");}@Override public void onAdShowedFullScreenContent(){Log.d(TAG,"Ad showed fullscreen content.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.InterstitialAdShowedFullScreenContent');");}});rewardedAd.setFullScreenContentCallback(new FullScreenContentCallback(){@Override public void onAdClicked(){Log.d(TAG,"Ad was clicked.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdClicked');");}@Override public void onAdDismissedFullScreenContent(){Log.d(TAG,"Ad dismissed fullscreen content.");rewardedAd=null;isrewardedload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdDismissedFullScreenContent');");}@Override public void onAdFailedToShowFullScreenContent(@NonNull AdError adError){Log.e(TAG,"Ad failed to show fullscreen content.");rewardedAd=null;isrewardedload=false;callbackContext.error(adError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdFailedToShowFullScreenContent');");}@Override public void onAdImpression(){Log.d(TAG,"Ad recorded an impression.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdImpression');");}@Override public void onAdShowedFullScreenContent(){Log.d(TAG,"Ad showed fullscreen content.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedAdShowedFullScreenContent');");}});rewardedInterstitialAd.setFullScreenContentCallback(new FullScreenContentCallback(){@Override public void onAdClicked(){Log.d(TAG,"Ad was clicked.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdClicked');");}@Override public void onAdDismissedFullScreenContent(){Log.d(TAG,"Ad dismissed fullscreen content.");rewardedInterstitialAd=null;isrewardedInterstitialload=false;cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdDismissedFullScreenContent');");}@Override public void onAdFailedToShowFullScreenContent(@NonNull AdError adError){Log.e(TAG,"Ad failed to show fullscreen content.");rewardedInterstitialAd=null;isrewardedInterstitialload=false;callbackContext.error(adError.toString());cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdFailedToShowFullScreenContent');");}@Override public void onAdImpression(){Log.d(TAG,"Ad recorded an impression.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdImpression');");}@Override public void onAdShowedFullScreenContent(){Log.d(TAG,"Ad showed fullscreen content.");cWebView.loadUrl("javascript:cordova.fireDocumentEvent('on.rewardedInterstitialAdShowedFullScreenContent');");}});return false;}public void onDestroy(){if(bannerView!=null){bannerView.destroy();isbannerDestroy=false;isbannerShow=true;}}}
|
package/www/emiAdmobPlugin.js
CHANGED
@@ -1,38 +1,45 @@
|
|
1
1
|
var exec = require('cordova/exec');
|
2
2
|
|
3
|
-
|
4
3
|
exports.initialize = function (arg0, success, error) {
|
5
4
|
exec(success, error, 'emiAdmobPlugin', 'initialize', [arg0]);
|
6
5
|
};
|
7
6
|
|
8
|
-
exports.showBannerAd = function (
|
9
|
-
exec(success, error, 'emiAdmobPlugin', 'showBannerAd', [
|
7
|
+
exports.showBannerAd = function (arg0, arg1, arg2, arg3, success, error) {
|
8
|
+
exec(success, error, 'emiAdmobPlugin', 'showBannerAd', [arg0, arg1, arg2, arg3]);
|
10
9
|
};
|
11
10
|
|
12
11
|
exports.removeBannerAd = function (arg0, success, error) {
|
13
12
|
exec(success, error, 'emiAdmobPlugin', 'removeBannerAd', [arg0]);
|
14
13
|
};
|
15
14
|
|
16
|
-
exports.loadInterstitialAd = function (arg0, success, error) {
|
17
|
-
exec(success, error, 'emiAdmobPlugin', 'loadInterstitialAd', [arg0]);
|
15
|
+
exports.loadInterstitialAd = function (arg0, arg1, success, error) {
|
16
|
+
exec(success, error, 'emiAdmobPlugin', 'loadInterstitialAd', [arg0, arg1]);
|
18
17
|
};
|
19
18
|
|
20
19
|
exports.showInterstitialAd = function (arg0, success, error) {
|
21
20
|
exec(success, error, 'emiAdmobPlugin', 'showInterstitialAd', [arg0]);
|
22
21
|
};
|
23
22
|
|
24
|
-
exports.loadRewardedAd = function (arg0, success, error) {
|
25
|
-
exec(success, error, 'emiAdmobPlugin', 'loadRewardedAd', [arg0]);
|
23
|
+
exports.loadRewardedAd = function (arg0, arg1, success, error) {
|
24
|
+
exec(success, error, 'emiAdmobPlugin', 'loadRewardedAd', [arg0, arg1]);
|
26
25
|
};
|
27
26
|
|
28
27
|
exports.showRewardedAd = function (arg0, success, error) {
|
29
28
|
exec(success, error, 'emiAdmobPlugin', 'showRewardedAd', [arg0]);
|
30
29
|
};
|
31
30
|
|
32
|
-
exports.loadRewardedInterstitialAd = function (arg0, success, error) {
|
33
|
-
exec(success, error, 'emiAdmobPlugin', 'loadRewardedInterstitialAd', [arg0]);
|
31
|
+
exports.loadRewardedInterstitialAd = function (arg0, arg1, success, error) {
|
32
|
+
exec(success, error, 'emiAdmobPlugin', 'loadRewardedInterstitialAd', [arg0, arg1]);
|
34
33
|
};
|
35
34
|
|
36
35
|
exports.showRewardedInterstitialAd = function (arg0, success, error) {
|
37
36
|
exec(success, error, 'emiAdmobPlugin', 'showRewardedInterstitialAd', [arg0]);
|
37
|
+
};
|
38
|
+
|
39
|
+
exports.getConsentRequest = function (arg0, success, error) {
|
40
|
+
exec(success, error, 'emiAdmobPlugin', 'getConsentRequest', [arg0]);
|
41
|
+
};
|
42
|
+
|
43
|
+
exports.consentReset = function (arg0, success, error) {
|
44
|
+
exec(success, error, 'emiAdmobPlugin', 'consentReset', [arg0]);
|
38
45
|
};
|
@@ -1,59 +0,0 @@
|
|
1
|
-
<html>
|
2
|
-
<head>
|
3
|
-
<script type="text/javascript" src="cordova.js"></script>
|
4
|
-
</head>
|
5
|
-
<body>
|
6
|
-
|
7
|
-
<script>
|
8
|
-
|
9
|
-
|
10
|
-
/// ( Must be Admob App-id-original. )
|
11
|
-
|
12
|
-
/// The example here tries Interstitial ads.
|
13
|
-
|
14
|
-
var interstitialAdAdUnitId = "Must be the original AdUnitId"
|
15
|
-
|
16
|
-
|
17
|
-
function getMediationAdapterName() {
|
18
|
-
|
19
|
-
cordova.plugins.emiAdmobPlugin.loadInterstitialAd(interstitialAdAdUnitId, success, error);
|
20
|
-
|
21
|
-
function success(AdapterName){
|
22
|
-
|
23
|
-
alert(AdapterName)
|
24
|
-
|
25
|
-
}
|
26
|
-
|
27
|
-
function error(e){
|
28
|
-
|
29
|
-
alert(JSON.stringify(e))
|
30
|
-
|
31
|
-
}
|
32
|
-
|
33
|
-
};
|
34
|
-
|
35
|
-
|
36
|
-
document.addEventListener("deviceready", function(){
|
37
|
-
|
38
|
-
cordova.plugins.emiAdmobPlugin.initialize();
|
39
|
-
|
40
|
-
// event Sdk initialize
|
41
|
-
|
42
|
-
document.addEventListener('on.SdkInitializationComplete', () => {
|
43
|
-
|
44
|
-
alert("get Mediation Adapter Name");
|
45
|
-
|
46
|
-
getMediationAdapterName()
|
47
|
-
|
48
|
-
});
|
49
|
-
|
50
|
-
}, false);
|
51
|
-
|
52
|
-
|
53
|
-
</script>
|
54
|
-
|
55
|
-
<p> <button onclick="getMediationAdapterName();">get Mediation Adapter Name</button></p>
|
56
|
-
|
57
|
-
|
58
|
-
</body>
|
59
|
-
</html>
|