Vungle SDK v. 5 スタート ガイド - Unity

目次

はじめに

  • iOS 向け Vungle Unity プラグインは以下の環境をサポートしています。
    • iOS 8
    • Unity 4 および Unity 5.4.1 以降
    • Vungle SDK を使用するには、WebKit.framework フレームワークをプロジェクトにリンクする必要があります。iOS 7 用の開発を行う場合は、このフレームワークを「Optional」に設定します。そのためには、Project Navigator でプロジェクトをクリックし、[General][Linked Frameworks and Libraries] に移動して [WebKit.framework] を選択し、[Status] を「Optional」に設定します。

  • Android 向け Vungle Unity プラグイン:
    • Java 1.7 for Android が必要
    • Unity 4 と Unity 5.3.2 以降の両方がサポートされます

  • Windows 向け Vungle Unity プラグイン:
    • 現在、Windows 上の Vungle SDK では、Unity 2017 はサポートされていません。
    • Windows (Universal 8.1 または Phone 8.1) は、Unity 4 および Unity 5.3.2 以降をサポートしています
    • Windows 10 UWP は Unity 5*.3*.2+ をサポートしています
    • これ以降の手順に進む前に、「Unity Plugin 用に Vungle Windows SDK v.2.0 以降を準備する」に記載されている手順を実行してください。その後、これ以降の手順に進んでください。

  • サンプル アプリをダウンロードしてください。https://github.com/Vungle/Unity-Plugin/tree/sdk5

手順 1. Vungle Unity プラグインで Unity プロジェクトを設定する

Vungle Unity プラグインを Unity プロジェクトに追加する

Unity でプロジェクトを開いて、ダウンロードした VunglePlugin.unitypackage ファイルをダブルクリックして Vungle Unity プラグインをアプリケーションに追加します。[Import Unity Package] ウィンドウが開いたら、インポートする前に [All] をクリックしてすべての項目を選択します。

ビルド設定で正しいプラットフォームをターゲットにする

次の手順でコンパイル エラーが起こらないようにするため、プロジェクトの [Build Settings] (cmd + Shift + B) でターゲットが iOS または Android いずれかのプラットフォームになっていることを確認します。

Amazon Appstore

Vungle Android SDK は Amazon OS 5.4 以上をサポートしています。Unity Amazon Appstore 構成を追加設定した後、Android APK を Amazonn Appstore に送信できます。Unity に関する説明は ここを参照してください。

Google Play Services

プロジェクトに Google Play Services を追加すると、さらにカスタマイズされた広告体験を Vungle からエンド ユーザーに提供できるようになります。ただし、必須ではありません。バージョン 11.0.1 以降の使用を推奨します。

Google Play Services を追加する場合は、 Google のセットアップ ガイドに従うことを推奨します。アプリケーションで、デバイスに最新バージョンの Google Play Services があることを確認してください。Vungle SDK は、Google Play Services からの位置情報と広告 API をオプションで使用します。

  • android.gms:play-services-location:11.0.1
  • android.gms:play-services-ads:11.0.1
  • play-services 7.8.0 以下の場合: サポート ライブラリを維持する
  • play-services 8.4.0 以上の場合: サポート ライブラリは不要

Google Play Services (バージョン 7.8.0、8.4.0、9.8.0、10.2.4、11.0.1.) を使用したコンパイルをサポートする、スタンドアロン SDK のコンパイルに成功しています。

Google Play Services を追加した後、次の権限を AndroidManifest.xml に追加します。Vungle はこの情報を使用して、最適な広告エクスペリエンスを各ユーザーに提供します。

  • <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
  • <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

手順 2: コードを追加する

この説明では、メインの Game Object に添付されたスクリプトで Vungle 関連のすべてのコードを初期化します。Vungle Unity プラグインは、適切と思われる任意のスクリプトから呼び出すことができます。

SDK を初期化する

注意: デフォルトの広告配置はアプリケーションごとに自動的に作成されます。広告配置機能を利用するかどうかにかかわらず、広告配置の参照 ID をこの初期化手順で指定する必要があります。複数の広告配置を作成する場合は、すべての参照 ID を指定してください。

自動キャッシュされる広告配置用に広告をキャッシュするための十分な時間が SDK に与えられるよう、アプリケーションが起動したらすぐに SDK を初期化してください。SDK を初期化するには、以下が必要となります。

  • サポートする必要のあるすべてのアプリケーション ID (プラットフォームを問わない)
  • プラットフォームを問わず、アプリケーションで使用するすべての広告配置参照 ID (アクティブと非アクティブの両方)

これらの ID は Vungle ダッシュボードから取得できます (「広告配置の設定とレポート作成」を参照してください)。

サンプル コード:

public class VungleScript : MonoBehaviour { string appID = "";
string iosAppID = "ios_app_id";
string androidAppID = "android_app_id";
string windowsAppID = "windows_app_id"; #if UNITY_IPHONE appID = iosAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "ios_placement_id_1", false }, { "ios_placement_id_2", false }, { "ios_placement_id_3", false } }; #elif UNITY_ANDROID appID = androidAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "android_placement_id_1", false }, { "android_placement_id_2", false }, { "android_placement_id_3", false } }; #elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO appID = windowsAppID; Dictionary<string, bool> placements = new Dictionary<string, bool> { { "windows_placement_id_1", false }, { "windows_placement_id_2", false }, { "windows_placement_id_3", false } }; #endif string[] array = new string[placements.Keys.Count]; placements.Keys.CopyTo(array, 0); Vungle.init(appID, array);
}

SDK が正常に初期化されると、次のイベントが呼び出されます。

public static event Action onInitializeEvent;

この記事の「イベント処理」セクションを参照してください。

Vungle SDK が初期化されると、Vungle ダッシュボードで [Auto Cached] として選択した広告配置用の広告が自動的にリクエストされます。閲覧回数の最も多い広告配置を自動キャッシュの対象として選択することをお勧めします。

広告が正常にキャッシュされると、[Auto Cached] で選択した広告配置と一致する広告配置参照 ID で adPlayableEvent イベントが呼び出されます (この記事の「広告が配置可能かどうかを確認する」セクションを参照してください)。

広告配置用の広告を読み込む

自動キャッシュ形式以外の広告配置の場合は、loadAd メソッドを呼び出して広告を読み込みます。

public static void loadAd(string placementID)

正しいプラットフォームにリンクされた placementID を使用していることを確認してください。

サンプル コード:

string placementID; #if UNITY_IPHONE placementID = "ios_placement_id"; #elif UNITY_ANDROID placementID = "android_placement_id"; #elif UNITY_WSA_10_0 || UNITY_WINRT_8_1 || UNITY_METRO placementID = "windows_placement_id"; #endif Vungle.loadAd(placementID);

広告が配置可能かどうかを確認する

広告配置用の広告のキャッシュが完了すると、次のイベントが呼び出されます。

public static event Action<string, bool> adPlayableEvent;

サンプル コード:

Vungle.adPlayableEvent += (placementID, adPlayable) => { if(placementID == ) { layButtonPlacement1.enabled = adPlayable; } };

注意: 自動キャッシュ形式の広告配置の場合は、広告が使用可能になったときにだけ、このイベントが呼び出されます。SDK は、自動キャッシュ形式の広告配置用に広告をリクエストし続けます。それ以外のすべての広告配置では、読み込みが失敗した場合にこのイベントが呼び出されます (この場合、adPlayable は「NO」を返します)。

広告が配置可能かどうかは、次のメソッドを使用して確認することもできます。

public static bool isAdvertAvailable(string placementID);

広告を再生する

重要: 上で説明した adPlayableEvent 関数から true が返されるまで、広告を再生しないでください。adPlayableEvent 関数から true が返される前に広告を再生しようとすると、広告を読み込む際のユーザー エクスペリエンスが影響を受けます。

広告の配置準備ができたら、次のメソッドを使用して、その広告を再生できます。

public static void playAd(string placementID);

サンプル コード:

Vungle.playAd ();

イベント処理

イベント ハンドラーは、広告の提示に関連する 5 つすべての Vungle SDK イベントについて設定できます。

  • SDK によって広告の再生が開始されると、以下のイベントが起動します。ゲームのプレイ、音響効果、アニメーションなどを一時停止する場合は、このイベントを使用すると便利です。
    public static event Action onAdStartedEvent;
  • SDK によって広告が終了すると、以下のイベントが起動します。ユーザーに報酬を与える場合や、ゲームのプレイ、音響効果、アニメーションなどを再開する場合は、このイベントを使用すると便利です。
    public static event Action<string, AdFinishedEventArgs> onAdFinishedEvent;

    AdFinishedEventArgs クラスは、以下のプロパティから構成されています。これらのプロパティにより、広告の再生結果を確認することができます。
    public class AdFinishedEventArgs : EventArgs { //Represents a BOOL whether or not the user clicked the download button. public bool WasCallToActionClicked{ get; set;} //Represents a bool whether or not the video can be considered a completed view. public bool IsCompletedView{ get; set;} }
  • SDK によって広告の可用性ステータスが変更されると、以下のイベントが起動します。ブール値の isAdPlayable は、placementID で指定された ID を持つ広告が再生可能かどうかを示します。
    public static event Action<string, bool> adPlayableEvent;
    詳しくは、この記事の「広告が配置可能かどうかを確認する」セクションを確認してください。

  • SDK が正常に初期化されると、以下のイベントが起動します。
    public static event Action onInitializeEvent;
  • SDK によってログが出力されると、以下のイベントが起動します。
    public static event Action onLogEvent;

サンプル コード:

void initializeEventHandlers() { Vungle.onAdStartedEvent += (placementID) => { DebugLog ("Ad " + placementID + " is starting! Pause your game animation or sound here."); }; Vungle.onAdFinishedEvent += (placementID, args) => { DebugLog ("Ad finished - placementID " + placementID + ", was call to action clicked:" + args.WasCallToActionClicked + ", is completed view:" + args.IsCompletedView); }; Vungle.adPlayableEvent += (placementID, adPlayable) => { DebugLog ("Ad's playable state has been changed! placementID " + placementID + ". Now: " + adPlayable); }; Vungle.onLogEvent += (log) => { DebugLog ("Log: " + log); }; Vungle.onInitializeEvent += () => { adInited = true; DebugLog ("SDK initialized"); }; }

OnPause 機能と OnResume 機能

onPause および onResume 機能のコードを追加することで、アプリがバックグラウンドに移動したときに一時停止した広告の再生を再開できます。

void OnApplicationPause(bool pauseStatus) { if (pauseStatus) { Vungle.onPause(); } else { Vungle.onResume(); } }

カスタマイズ オプション

playAd メソッドにオプション ディクショナリーを渡して再生体験をカスタマイズすることもできます。

public static void playAd(Dictionary<string,object> options, string placementID);

注意: 報酬対象の広告は、インセンティブ広告として参照されることがあります。どちらの場合も、同等な広告のことを示しています。SDK のコードと Reporting API では、「インセンティブ」を使用します。

オプション ディクショナリーには以下のキーを含めることができます。

キー

説明

orientation

広告の向きを設定します。

  • iOS の場合は、以下のように VungleAdOrientation を使用します。
    public enum VungleAdOrientation { Portrait = 1, LandscapeLeft = 2, LandscapeRight = 3, PortraitUpsideDown = 4, Landscape = 5, All = 6, AllButUpsideDown = 7 }
  • Android の場合は、matchVideo を true に設定し、autoRotate を false に設定します。

userTag

S2S 呼び出しでユーザーを識別するために渡されるユーザー キー (ある場合)。

alertTitle

ユーザーが途中でインセンティブ広告を閉じたときに表示される警告ダイアログのタイトルとして使用される文字列。

alertText

ユーザーが途中でインセンティブ広告を閉じたときに表示される警告ダイアログの本文として使用される文字列。

closeText

ユーザーが途中でインセンティブ広告を閉じたときに表示される警告ダイアログの閉じるボタンのテキスト。

continueText

ユーザーが途中でインセンティブ広告を閉じたときに表示される警告ダイアログの閉じるボタンのテキスト。

immersive

Android でイマーシブ モードを有効にします。

flexCloseSec

iOS の場合のみ、秒数を指定します、この秒数が経過すると、Flex View 広告が自動的に終了します。このキーを使用できるのは、iOS 上で Flex View 広告を使用する場合だけです (Flex Feed 広告の場合は使用できません)。

 

Flex View 広告

iOS の場合

プログラム経由で Flex View 広告を終了するには、closeAd 関数を使用します。

Vungle.closeAd(placementIdList[1]);

Android の場合、この関数は機能しません。

Android の場合

Android 用 Unity 上の Flex View 広告は、iOS 用 Unity やネイティブ Android の場合と同じようには機能しません。Unity によるアクティビティ処理の制限により、Flex View 広告の表示中は、基本的なゲームを操作できなくなります。Flex View 広告でアクティビティが発生すると、ベースとなるアクティビティが中断されます。Flex View 広告が表示されている状態でアプリケーションから離れ、別の日にそのアプリケーションに戻ると、Flex View 広告は表示されたままになりますが、バックグラウンドで実行されていたゲームは黒で表示されます。Flex View を終了するまでベース アクティビティが中断されたままになるため、こうした状態が発生します。

上記の理由により、Android 用 Unity で Flex View 広告を使用するのは避けてください。

他にご質問がございましたら、リクエストを送信してください

コメント