Unity 全画面インタースティシャル

主な機能

  • 全画面インタースティシャル広告の表示
  • 全画面インタースティシャル広告からのコールバック対応
  • 各SDKメディエーションのサポート

システム動作環境

  • Android
    • Android SDK 4.1以降
  • iOS
    • iOS 9.0以降
    • 64bit のiOS対象

開発環境

  • Unity 2019.2.12f1
  • JDK 1.8以降
  • Android SDKのビルドターゲット 28

関連SDK

  • Android GNAdSDK 8.5.0
  • iOS GNAdSDK 8.2.1
  • Android GNSFullscreenInterstitialAdapter 4.2.0
  • iOS GNSFullscreenInterstitialAdapter 3.0.1

関連SDKURL

Plugin導入手順

UnityへのGeniee 全画面インタースティシャル広告 SDK Unity Plugin導入手順を説明します。

  1. GNSAdSDK-UnityPlugin-InterstitialのプラグインをUnityプロジェクトへインポート
  2. Plugin APIを使用し、全画面インタースティシャル広告のイベントを登録
  3. 破棄処理を追加
  4. 全画面インタースティシャル広告のロード
  5. 全画面インタースティシャル広告の表示
  6. 広告の事前呼び出しについて
  7. Androidパッケージ名について

1. GNSAdSDK-UnityPlugin-InterstitialのプラグインをUnityプロジェクトへインポート

  1. Pluginを組み込むUnityプロジェクトを開きます。

  2. https://github.com/googlesamples/unity-jar-resolverを参照し、PlayServicesResolverを導入します。

  3. メニューバーの Assets -> Import Package -> Custom Packageの順に選択します。

  4. interstitial側のGNSAdSDK-UnityPlugin-Interstitial-2.0.0ファイルを選択します。

  5. 以下ファイルのチェックボックスがオンになっていることを確認して、Import をクリックします。

    • GNSAdSDK
      • Api
        • FullscreenInterstitialAd.cs
        • FullscreenInterstitialFailedData.cs
      • Clients
        • MockClient.cs
        • FullscreenInterstitialAdClient.cs
      • Platforms
        • AdClientFactory.cs
        • Android
          • FullscreenInterstitialAdClientImpl.cs
          • Utils.cs
        • iOS
          • Externs.cs
          • FullscreenInterstitialAdClientImpl.cs
    • PlayServicesResolver
      • Editor
        • GNDependencies.xml
    • Plugins
      • Android
        • AndroidManifest.xml
        • GNSExtendsUnityPlayerActivity.jar
        • mainTemplate.gradle
      • iOS
        • GNSUInterface.m
        • GNSUObjectCache.h
        • GNSUObjectCache.m
        • GNSUFullscreenInterstitialAd.h
        • GNSUFullscreenInterstitialAd.m
        • GNSUTypes.h

2. Plugin APIを使用し、全画面インタースティシャル広告のイベントを登録

以下は、全画面インタースティシャル広告を作成してイベントを登録するために必要なコードです。 イベントを登録する際は、広告のロードをする前に登録処理を完了させてください。

using GNSAdSDK.Api;

...

static bool isRegistedFullscreenInterstitialEventHandler = false;

void RegistFullscreenInterstitialAdEventHandler()
{
    if (!isRegistedFullscreenInterstitialEventHandler)
    {
        FullscreenInterstitialAd fullscreenInterstitialAd = FullscreenInterstitialAd.Instance;
        fullscreenInterstitialAd.OnAdLoaded += (object sender, System.EventArgs args) =>
        {
            // 全画面広告のロードが完了した際の処理
        };
        fullscreenInterstitialAd.OnAdStarted += (object sender, System.EventArgs args) => {
            // 全画面広告が再生された際の処理
        };
        fullscreenInterstitialAd.OnAdClosed += (object sender, System.EventArgs args) => {
            // 全画面広告が閉じられた際の処理
        };
        fullscreenInterstitialAd.OnAdFailedToLoad += (object sender, FullscreenInterstitialFailedData args) => {
            // 全画面広告のロードが失敗した際の処理
        };
    }
    isRegistedFullscreenInterstitialEventHandler = true;
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
  • FullscreenInterstitialAdインスタンスは、全画面インタースティシャル広告を操作するためのシングルトンオブジェクトとなります。
  • FullscreenInterstitialAdインスタンスがシングルトンオブジェクトのため、イベント重複を避けるためにイベント登録は1回だけにすることを推奨します。

FullscreenInterstitialFailedData は下記プロパティを所持しています。

public class FullscreenInterstitialFailedData : EventArgs
{
    // アドネットワーク名
    // ※ iOSの場合は、常にnullとなります。
    public string AdnetworkName { get; set; }
    // コード
    public int Code { get; set; }
    // メッセージ
    public string Message { get; set; }
}
1
2
3
4
5
6
7
8
9
10
11

3. 破棄処理を追加

Androidの場合OnDestroy時に破棄処理を行うため、下記のようにApplication.Quitのコールバックを設定してください。 ※ iOSのみ作成する場合は、必須ではありません。

using GNSAdSDK.Api;

...

void OnApplicationQuit()
{
    FullscreenInterstitialAd.Instance.DisposeAd();
}
1
2
3
4
5
6
7
8
9

4. 全画面インタースティシャル広告のロード

以下は、全画面インタースティシャル広告のロードに必要なコードです。

using GNSAdSDK.Api;

...

void LoadFullscreenInterstitialAd()
{
    string zoneId = "";
    #if UNITY_ANDROID
        zoneId = "ここにzoneIdを入れてください";
    #elif UNITY_IPHONE
        zoneId = "ここにzoneIdを入れてください";
    #endif
    FullscreenInterstitialAd fullscreenInterstitialAd = FullscreenInterstitialAd.Instance;
    fullscreenInterstitialAd.LoadAd(zoneId);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
  • FullscreenInterstitialAdインスタンスは、全画面インタースティシャル広告を操作するためのシングルトンオブジェクトとなります。
  • ロードには数秒以上かかることがあるので、早い段階で広告をロードしてください。
  • 1つの広告の再生完了後に別の広告を見せる場合、再びロードを行う必要があります。

5. 全画面インタースティシャル広告の表示

以下は、全画面インタースティシャル広告の表示に必要なコードです。広告のロードが完了されるとShowAd()の呼び出しが可能となります。

using GNSAdSDK.Api;

...

void ShowFullscreenInterstitialAd()
{
    FullscreenInterstitialAd fullscreenInterstitialAd = FullscreenInterstitialAd.Instance;
    // 広告が表示出来るか確認
    if (fullscreenInterstitialAd.IsLoaded())
    {
        // 広告の表示
        fullscreenInterstitialAd.ShowAd();
    }
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

6. 広告の事前呼び出しについて

広告表示後、事前に次の広告をロードしたい場合の注意点

広告クローズイベント(OnAdClosed)内へLoadAd(zoneId);を実装してください。

7. Androidパッケージ名について

Assets/Plugins/Android/AndroidManifest.xml内のpackage名は適宜修正ください。

package="jp.co.geniee.GNSUnitySampleFullscreenInterstitial"
1
2
Last Updated: 2020/7/21 14:47:08