質問編集履歴

9

修正

2018/04/22 13:37

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -450,7 +450,7 @@
450
450
 
451
451
  {
452
452
 
453
- //トライなし。ネット環境に移動したら、つなぎ始めるので
453
+ //トライなし
454
454
 
455
455
  case NetworkReachability.NotReachable:
456
456
 

8

追記

2018/04/22 13:37

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -398,8 +398,6 @@
398
398
 
399
399
  bannerView = new BannerView(BANNER_ID, AdSize.SmartBanner, AdPosition.Bottom);
400
400
 
401
- // BannerView bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom);
402
-
403
401
 
404
402
 
405
403
  // Create an empty ad request.

7

修正

2018/04/22 05:59

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -268,7 +268,7 @@
268
268
 
269
269
  ///
270
270
 
271
- public class A_AdScript : MonoBehaviour
271
+ public class AdScript : MonoBehaviour
272
272
 
273
273
  {
274
274
 

6

追記

2018/04/21 19:07

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -241,3 +241,263 @@
241
241
  }
242
242
 
243
243
  ```
244
+
245
+
246
+
247
+
248
+
249
+ ---
250
+
251
+ [追記]いただいた回答を元に修正して書き換えてみました。
252
+
253
+ 広告が表示されてない場合の処理(HandleOnAdFailedToLoad)に追記しました。
254
+
255
+ ```ここに言語を入力
256
+
257
+ using UnityEngine;
258
+
259
+ using System.Collections;
260
+
261
+ using GoogleMobileAds;
262
+
263
+ using GoogleMobileAds.Api;
264
+
265
+ using System;
266
+
267
+ ///
268
+
269
+ ///
270
+
271
+ public class A_AdScript : MonoBehaviour
272
+
273
+ {
274
+
275
+
276
+
277
+ // RequestBannerを呼ぶまでの待機時間
278
+
279
+ public static readonly float REQUEST_INTERVAL = 3;
280
+
281
+ BannerView bannerView;
282
+
283
+ bool IsLoaded;
284
+
285
+ float WaitingForRequestTime;
286
+
287
+
288
+
289
+ string APP_ID
290
+
291
+ {
292
+
293
+ get
294
+
295
+ {
296
+
297
+ #if UNITY_ANDROID
298
+
299
+ return "ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx";
300
+
301
+ #elif UNITY_IOS
302
+
303
+ return "ca-app-pub-xxxxxxxxxxxxxxxx~xxxxxxxxxx";
304
+
305
+ #endif
306
+
307
+ }
308
+
309
+ }
310
+
311
+
312
+
313
+ string BANNER_ID
314
+
315
+ {
316
+
317
+ get
318
+
319
+ {
320
+
321
+ #if UNITY_ANDROID
322
+
323
+ return "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx";
324
+
325
+ #elif UNITY_IOS
326
+
327
+ return "ca-app-pub-xxxxxxxxxxxxxxxx/xxxxxxxxxx";
328
+
329
+ #endif
330
+
331
+ }
332
+
333
+ }
334
+
335
+
336
+
337
+ void Awake()
338
+
339
+ {
340
+
341
+ // イニシャライズ
342
+
343
+ MobileAds.Initialize(APP_ID);
344
+
345
+
346
+
347
+ DontDestroyOnLoad(this);
348
+
349
+ // バナー広告を表示
350
+
351
+ RequestBanner();
352
+
353
+ }
354
+
355
+
356
+
357
+ void Update()
358
+
359
+ {
360
+
361
+ //「広告が読み込み完了していない」且つ「RequestBannerを呼ぶまでの待機時間」が0以上なら処理開始
362
+
363
+ if(!IsLoaded && WaitingForRequestTime > 0) // 3、2、1の間だけupdadeが実行される
364
+
365
+ {
366
+
367
+ //WaitingForRequestTimeが0になるまでTime.deltaTimeで引き続ける
368
+
369
+ WaitingForRequestTime -= Time.deltaTime; // 3から1づつ引いていく
370
+
371
+ //0になったらRequestBannerを呼ぶ
372
+
373
+ if(WaitingForRequestTime <= 0) RequestBanner(); // 0で実行
374
+
375
+ }
376
+
377
+ }
378
+
379
+
380
+
381
+ private void RequestBanner()
382
+
383
+ {
384
+
385
+
386
+
387
+ IsLoaded = false;
388
+
389
+
390
+
391
+ //※すでに存在すれば一度破棄する
392
+
393
+ if(bannerView != null) bannerView.Destroy();
394
+
395
+
396
+
397
+ // Create a smart banner at the bottom of the screen.
398
+
399
+ bannerView = new BannerView(BANNER_ID, AdSize.SmartBanner, AdPosition.Bottom);
400
+
401
+ // BannerView bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom);
402
+
403
+
404
+
405
+ // Create an empty ad request.
406
+
407
+ AdRequest request = new AdRequest.Builder().Build();
408
+
409
+
410
+
411
+ // Load the banner with the request.
412
+
413
+ bannerView.LoadAd(request);
414
+
415
+ //
416
+
417
+ //
418
+
419
+ // Called when an ad request has successfully loaded.
420
+
421
+ bannerView.OnAdLoaded += HandleOnAdLoaded;
422
+
423
+ // Called when an ad request failed to load.
424
+
425
+ bannerView.OnAdFailedToLoad += HandleOnAdFailedToLoad;
426
+
427
+ }
428
+
429
+
430
+
431
+ //広告が表示されてない場合
432
+
433
+ public void HandleOnAdFailedToLoad(object sender, AdFailedToLoadEventArgs args)
434
+
435
+ {
436
+
437
+
438
+
439
+ // WaitingForRequestTime = REQUEST_INTERVAL;//初期値3にもどす
440
+
441
+ // Debug.Log("広告表示なし 再トライ");
442
+
443
+
444
+
445
+ IsLoaded = false;
446
+
447
+
448
+
449
+ // ネットワークにアクセス可能かどうかを取得する
450
+
451
+ switch (Application.internetReachability)
452
+
453
+ {
454
+
455
+ //トライなし。ネット環境に移動したら、つなぎ始めるので
456
+
457
+ case NetworkReachability.NotReachable:
458
+
459
+ Debug.Log( "ネットワークが使えない 広告表示なし 再トライなし" );
460
+
461
+ break;
462
+
463
+
464
+
465
+ case NetworkReachability.ReachableViaCarrierDataNetwork:
466
+
467
+ Debug.Log( "キャリアネットワークでアクセス可能 再トライ" );
468
+
469
+ WaitingForRequestTime = REQUEST_INTERVAL;//初期値3にもどす
470
+
471
+ break;
472
+
473
+
474
+
475
+ case NetworkReachability.ReachableViaLocalAreaNetwork:
476
+
477
+ Debug.Log( "WiFi でアクセス可能 再トライ" );
478
+
479
+ WaitingForRequestTime = REQUEST_INTERVAL;//初期値3にもどす
480
+
481
+ break;
482
+
483
+ }
484
+
485
+ }
486
+
487
+
488
+
489
+ //広告が表示された場合
490
+
491
+ public void HandleOnAdLoaded(object sender, EventArgs args)
492
+
493
+ {
494
+
495
+ IsLoaded = true;
496
+
497
+ Debug.Log("広告が表示されました");
498
+
499
+ }
500
+
501
+ }
502
+
503
+ ```

5

修正

2018/04/21 15:00

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -56,7 +56,7 @@
56
56
 
57
57
    そして最初の広告が表示されっぱなしになる。
58
58
 
59
- 3. その間、下記スクリプトの3秒ごとの広告表示リクエストが実行されており、(Invoke("RequestBanner",0.6f);)
59
+ 3. その間、下記スクリプトの3秒ごとの広告表示リクエストが実行されており、(Invoke("RequestBanner",3.0f);)
60
60
 
61
61
   リクエストが成功した時、2番目の広告が表示されるが、
62
62
 

4

修正

2018/04/20 13:27

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -1,6 +1,6 @@
1
1
  **やりたい事**
2
2
 
3
- Admobのバナー広告が(ネット環境など諸事情により)表示されない場合、
3
+ Admobのバナー広告が(通信環境により)表示されない場合、
4
4
 
5
5
  3秒毎に再度広告表示をリクエストして、できるだけ表示させるようにしたい。
6
6
 
@@ -50,9 +50,11 @@
50
50
 
51
51
  1. 最初の広告が出力される。
52
52
 
53
- 2. アドモブ側が自動的に次の広告にリフレッシュしようとする時に、次の広告のデータを受け取れない。(通信環境により)
53
+ 2. アドモブ側が自動的に次の広告にリフレッシュしようとする時に、
54
+
54
-
55
+   次の広告のデータを受け取れない。(通信環境により)
56
+
55
- そして最初の広告が表示されっぱなしになる。
57
+   そして最初の広告が表示されっぱなしになる。
56
58
 
57
59
  3. その間、下記スクリプトの3秒ごとの広告表示リクエストが実行されており、(Invoke("RequestBanner",0.6f);)
58
60
 

3

修正

2018/04/20 13:26

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -1,14 +1,14 @@
1
1
  **やりたい事**
2
2
 
3
- Admobのバナー広告が表示されない場合、
3
+ Admobのバナー広告が(ネット環境など諸事情により)表示されない場合、
4
-
4
+
5
- 3秒毎に再度広告表示をリクエストしたい。
5
+ 3秒毎に再度広告表示をリクエストして、できるだけ表示させるようにしたい。
6
6
 
7
7
  (Awakeでバナー広告を一番先に読み込んでおりますが、
8
8
 
9
- 電波の悪い場所では、広告が表示されない事がある為、
9
+ 広告が表示されない事がある為、
10
-
10
+
11
- Awakeで読み込めなかった場合に、再度広告表示のリクエストして表示させたい)
11
+ Awakeで読み込めなかった場合に、再度広告表示のリクエストして表示させたい)
12
12
 
13
13
 
14
14
 

2

修正

2018/04/20 13:22

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -116,7 +116,7 @@
116
116
 
117
117
 
118
118
 
119
- public class A_AdScript : MonoBehaviour
119
+ public class AdScript : MonoBehaviour
120
120
 
121
121
  {
122
122
 

1

修正

2018/04/20 12:40

投稿

sukiyakigozens
sukiyakigozens

スコア28

test CHANGED
File without changes
test CHANGED
@@ -42,9 +42,9 @@
42
42
 
43
43
 
44
44
 
45
- 推測ですが、左上の小さい広告も一応、バナー扱いのようです。
45
+ 推測ですが、左上の小さい広告も一応、バナー広告扱いのようです。
46
-
46
+
47
- 問題はリフレッシュがうまくいってないようです。
47
+ 問題は表示のリフレッシュがうまくいってないようです。
48
48
 
49
49
 
50
50
 
@@ -84,6 +84,18 @@
84
84
 
85
85
 
86
86
 
87
+ または、
88
+
89
+ 小さな広告は表示させない、
90
+
91
+ または
92
+
93
+ 小さな広告を通常バナー広告サイズまで拡大するような
94
+
95
+ 制御はできませんでしょうか?
96
+
97
+
98
+
87
99
 
88
100
 
89
101
  ご教授よろしくおねがいいたします。