質問編集履歴

7

目的の具体化

2021/09/13 13:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,7 +32,7 @@
32
32
 
33
33
 
34
34
 
35
- なぜシーンの読み込みを繰り返すと、リワード広告に不具合生じてしまうのでしょうか。
35
+ なぜシーンの読み込みを繰り返すと、リワード広告が停止してしまうのでしょうか。
36
36
 
37
37
  よろしくお願いします。
38
38
 

6

目的の具体化

2021/09/13 13:50

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -32,6 +32,10 @@
32
32
 
33
33
 
34
34
 
35
+ なぜシーンの読み込みを繰り返すと、リワード広告に不具合が生じてしまうのでしょうか。
36
+
37
+ よろしくお願いします。
38
+
35
39
  ### 該当のソースコード
36
40
 
37
41
  読み込まれるステージの変更とシーンの読み込みは、他のスクリプトで行っています。
@@ -301,5 +305,3 @@
301
305
  Unityバージョンは 2020.3.12f1
302
306
 
303
307
  GoogleMobileAdsプラグインのバージョンはv6.1.0です。
304
-
305
- よろしくお願いします。

5

タグの追加

2021/09/13 13:20

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
File without changes

4

バナー広告とインタースティシャル広告の部分を削除

2021/09/13 08:17

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -10,21 +10,15 @@
10
10
 
11
11
  ### 発生している問題
12
12
 
13
- 僕の作ったゲームでは、シーン開始時にバナー、インタースティシャル、リワードの3つのタイプの
13
+ 僕の作ったゲームでは、シーン開始時にリワード広告が読み込まれ、表示する準備がされます。
14
-
15
- 広告が読み込まれ、表示できるようにされます。
14
+
16
-
17
- バナー広告はシーン開始後すぐに表示され、
18
-
19
- インタースティシャル広告はステージクリア後一定確率で表示されます。
20
-
21
- ステージをクリアした際、プレイヤーはリワード広告を視聴してステージクリアの報酬を増やすことができるか選ぶことができます。
15
+ ステージをクリアした際、プレイヤーはリワード広告を視聴して
16
+
22
-
17
+ ステージクリアの報酬を増やすか選ぶことができます。
23
-
24
-
18
+
19
+
20
+
25
- その後「次へ進む」ボタンを押すことでCleanAds()関数が呼び出され、
21
+ その後「次へ進む」ボタンを押すことで読み込まるステージを変更した後
26
-
27
- バナー広告とインタースティシャル広告を削除し、読み込まれるステージを変更した後、
28
22
 
29
23
  同じシーンが再び読み込まれ、次のステージへ進むという仕組みです。
30
24
 
@@ -38,12 +32,6 @@
38
32
 
39
33
 
40
34
 
41
- なおリワード広告の状態にかかわらず、バナー広告とインタースティシャル広告は常に正常に
42
-
43
- 表示され続けました。
44
-
45
-
46
-
47
35
  ### 該当のソースコード
48
36
 
49
37
  読み込まれるステージの変更とシーンの読み込みは、他のスクリプトで行っています。
@@ -68,10 +56,6 @@
68
56
 
69
57
  {
70
58
 
71
- private BannerView bannerView;
72
-
73
- private InterstitialAd interstitial;
74
-
75
59
  private RewardedAd rewardedAd;
76
60
 
77
61
 
@@ -88,17 +72,13 @@
88
72
 
89
73
  //広告の読み込み
90
74
 
91
- RequestBanner();
92
-
93
- RequestInterstitial();
94
-
95
75
  RequestRewardAd();
96
76
 
97
77
  }
98
78
 
99
79
 
100
80
 
101
- private void RequestBanner()
81
+ private void RequestRewardAd()
102
82
 
103
83
  {
104
84
 
@@ -118,27 +98,43 @@
118
98
 
119
99
 
120
100
 
121
- // Create a 320x50 banner at the top of the screen.
122
-
123
- this.bannerView = new BannerView(adUnitId, AdSize.Banner, AdPosition.Bottom);
101
+ this.rewardedAd = new RewardedAd(adUnitId);
124
-
125
-
126
-
102
+
103
+
104
+
127
- // Create an empty ad request.
105
+ // Load成功時に実行する関数の登録
106
+
107
+ this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
108
+
109
+ // Load失敗時に実行する関数の登録
110
+
111
+ this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
112
+
113
+ // 表示時に実行する関数の登録
114
+
115
+ this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
116
+
117
+ // 表示失敗時に実行する関数の登録
118
+
119
+ this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
120
+
121
+ // 報酬受け取り時に実行する関数の登録
122
+
123
+ this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
124
+
125
+ // 広告を閉じる時に実行する関数の登録
126
+
127
+ this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;
128
+
129
+
128
130
 
129
131
  AdRequest request = new AdRequest.Builder().Build();
130
132
 
131
-
132
-
133
- // Load the banner with the request.
134
-
135
- this.bannerView.LoadAd(request);
133
+ this.rewardedAd.LoadAd(request);
136
-
134
+
137
- }
135
+ }
138
-
139
-
140
-
136
+
141
- private void RequestInterstitial()
137
+ public void CreateAndLoadRewardedAd()
142
138
 
143
139
  {
144
140
 
@@ -158,116 +154,24 @@
158
154
 
159
155
 
160
156
 
161
- // Initialize an InterstitialAd.
162
-
163
- this.interstitial = new InterstitialAd(adUnitId);
157
+ this.rewardedAd = new RewardedAd(adUnitId);
164
-
158
+
159
+
160
+
165
- // Create an empty ad request.
161
+ this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
162
+
163
+ this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
164
+
165
+ this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;
166
+
167
+
166
168
 
167
169
  AdRequest request = new AdRequest.Builder().Build();
168
170
 
169
- // Load the interstitial with the request.
170
-
171
- this.interstitial.LoadAd(request);
172
-
173
- }
174
-
175
-
176
-
177
- private void RequestRewardAd()
178
-
179
- {
180
-
181
- #if UNITY_ANDROID
182
-
183
- string adUnitId = "ここにIDを記入";
184
-
185
- #elif UNITY_IPHONE
186
-
187
- string adUnitId = "ここにIDを記入";
188
-
189
- #else
190
-
191
- string adUnitId = "unexpected_platform";
192
-
193
- #endif
194
-
195
-
196
-
197
- this.rewardedAd = new RewardedAd(adUnitId);
198
-
199
-
200
-
201
- // Load成功時に実行する関数の登録
202
-
203
- this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
204
-
205
- // Load失敗時に実行する関数の登録
206
-
207
- this.rewardedAd.OnAdFailedToLoad += HandleRewardedAdFailedToLoad;
208
-
209
- // 表示時に実行する関数の登録
210
-
211
- this.rewardedAd.OnAdOpening += HandleRewardedAdOpening;
212
-
213
- // 表示失敗時に実行する関数の登録
214
-
215
- this.rewardedAd.OnAdFailedToShow += HandleRewardedAdFailedToShow;
216
-
217
- // 報酬受け取り時に実行する関数の登録
218
-
219
- this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
220
-
221
- // 広告を閉じる時に実行する関数の登録
222
-
223
- this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;
224
-
225
-
226
-
227
- AdRequest request = new AdRequest.Builder().Build();
228
-
229
171
  this.rewardedAd.LoadAd(request);
230
172
 
231
173
  }
232
174
 
233
- public void CreateAndLoadRewardedAd()
234
-
235
- {
236
-
237
- #if UNITY_ANDROID
238
-
239
- string adUnitId = "ここにIDを記入";
240
-
241
- #elif UNITY_IPHONE
242
-
243
- string adUnitId = "ここにIDを記入";
244
-
245
- #else
246
-
247
- string adUnitId = "unexpected_platform";
248
-
249
- #endif
250
-
251
-
252
-
253
- this.rewardedAd = new RewardedAd(adUnitId);
254
-
255
-
256
-
257
- this.rewardedAd.OnAdLoaded += HandleRewardedAdLoaded;
258
-
259
- this.rewardedAd.OnUserEarnedReward += HandleUserEarnedReward;
260
-
261
- this.rewardedAd.OnAdClosed += HandleRewardedAdClosed;
262
-
263
-
264
-
265
- AdRequest request = new AdRequest.Builder().Build();
266
-
267
- this.rewardedAd.LoadAd(request);
268
-
269
- }
270
-
271
175
 
272
176
 
273
177
 
@@ -288,20 +192,6 @@
288
192
 
289
193
  }
290
194
 
291
- public void ShowInterstitial()
292
-
293
- {
294
-
295
- if (this.interstitial.IsLoaded())
296
-
297
- {
298
-
299
- this.interstitial.Show();
300
-
301
- }
302
-
303
- }
304
-
305
195
 
306
196
 
307
197
  public void HandleRewardedAdLoaded(object sender, EventArgs args)
@@ -372,33 +262,15 @@
372
262
 
373
263
  {
374
264
 
265
+ string type = args.Type;
266
+
267
+ double amount = args.Amount;
268
+
375
- MonoBehaviour.print("リワード取得!");
269
+ MonoBehaviour.print(
376
-
377
- }
270
+
378
-
379
-
380
-
381
- //広告のクリーンアップ
382
-
383
- public void CleanAds()
384
-
385
- {
386
-
387
- if (this.bannerView != null)
388
-
389
- {
390
-
391
- this.bannerView.Destroy();
271
+ "HandleRewardedAdRewarded event received for "
392
-
393
- }
272
+
394
-
395
- if (this.interstitial != null)
396
-
397
- {
398
-
399
- this.interstitial.Destroy();
273
+ + amount.ToString() + " " + type);
400
-
401
- }
402
274
 
403
275
  }
404
276
 
@@ -406,23 +278,15 @@
406
278
 
407
279
  }
408
280
 
409
-
410
-
411
281
  ```
412
282
 
413
283
 
414
284
 
415
285
  ### 試したこと
416
286
 
417
- 広告の削除をシーン読み込み前だけでなく、読み込みなおされて新しい広告の読み込みが行われる直前にも
418
-
419
- 行われるようにしましたが、問題は解決しませんでした。
420
-
421
-
422
-
423
- CleanAds()関数リワード広告も削除すること試しましたが、
287
+ シーン読み込み前にリワード広告でDestroy()を呼ぶこと試しましたが、
424
-
288
+
425
- これでも問題は解決しませんでした。Admobの公式ガイドでは、
289
+ 問題は解決しませんでした。Admobの公式ガイドでは、
426
290
 
427
291
  リワード広告の削除について書かれていなかったため、
428
292
 

3

文章の推敲

2021/09/13 06:07

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -22,7 +22,7 @@
22
22
 
23
23
 
24
24
 
25
- その後「次へ進む」ボタンを押すことでCleanAds()関数が呼び出され
25
+ その後「次へ進む」ボタンを押すことでCleanAds()関数が呼び出され
26
26
 
27
27
  バナー広告とインタースティシャル広告を削除し、読み込まれるステージを変更した後、
28
28
 

2

試したことに追記

2021/09/13 01:53

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -414,11 +414,17 @@
414
414
 
415
415
  ### 試したこと
416
416
 
417
-
417
+ 広告の削除をシーン読み込み前だけでなく、読み込みなおされて新しい広告の読み込みが行われる直前にも
418
+
418
-
419
+ 行われるようにしましたが、問題は解決しませんでした。
420
+
421
+
422
+
419
- CleanAds()関数にてリワード広告も削除すること試しましたが、
423
+ CleanAds()関数にてリワード広告も削除すること試しましたが、
420
-
424
+
421
- 問題は解決しませんでした。Admobの公式ガイドではリワード広告の削除について書かれていなかったため
425
+ これでも問題は解決しませんでした。Admobの公式ガイドでは、
426
+
427
+ リワード広告の削除について書かれていなかったため、
422
428
 
423
429
  このスクリプトでは行っていません。
424
430
 

1

曖昧な表現の修正

2021/09/12 13:09

投稿

退会済みユーザー
test CHANGED
File without changes
test CHANGED
@@ -30,7 +30,7 @@
30
30
 
31
31
 
32
32
 
33
- しかし、シーン読み込みが繰り返し行われると、(リワード広告をどれだけ視聴したかどうかにかかわらず)
33
+ しかし、シーン読み込みが繰り返し行われると、(リワード広告を何回視聴し、何回無視したかどうかにかかわらず)
34
34
 
35
35
  リワード広告が視聴できなくなってしまいます。イベント関数の呼び出しの状態を見てみると、
36
36