Vungle スタート ガイド - Android/Amazon SDK v. 6

この記事では、Android または Amazon 用の Vungle SDK を統合する方法について説明します。v.5.3.0 以降の Android SDK では、バージョン 5.4 以降の Amazon OS がプラットフォームとしてサポートされます。Amazon SDK の統合手順は Android の場合と同じですが、Amazon SDK を統合する場合は、必ず Amazon アプリケーション ID を使用してください。

この記事では、以下の項目について説明します。

EU 一般データ保護規則 (GDPR) に準拠するための推奨事項

5 月 25 日より、欧州連合で一般データ保護規則 (GDPR) が施行されました。開発者は、以下に示すいずれかの方法で GDPR に準拠する必要があります。

  • 方法 1 (推奨): パブリッシャーが、ユーザー レベルで GDPR 同意プロセスを管理し、ユーザーによる選択内容を Vungle に伝える。これを行うには、開発者が独自のメカニズムを使用してユーザーから同意を取得し、Vungle API を使用して、ユーザーの同意状況の更新や照会を実行します。詳しくは、「GDPR に準拠するための推奨手順」を参照してください。

  • 方法 2: 広告を表示するための要件の処理を Vungle に委任する。この方法の場合、欧州のユーザーに広告を表示する前に、同意ダイアログが表示されます。それ以降は、ユーザーが広告の表示に同意したか拒否したかがシステムに記憶されることになります。

はじめに

本リリースのハイライト

  • 高速: 初期化処理とキャッシュ処理の速度が、v5 と比較して最大 5 倍にまで上がりました。
  • 軽量: メソッドの数が削減されました。
    • コア SDK: 750 のメソッド
    • サードパーティ製ライブラリを含む完全な統合: 最大 4000 のメソッド
  • GDPR への準拠: 2 つの方法でユーザーの同意を得ることができます。このプロセスは、Vungle が管理することも、パブリッシャーが管理することもできます。これに伴い、新しい API 呼び出しが導入されました。

要件

  • Android 4.0 (Ice Cream Sandwich - API version 14) またはそれ以降
  • v26 以降の Android 対応ライブラリ
  • Android targetSdkVersion 26 以前

サンプル アプリケーション

手順 1. Vungle SDK をプロジェクトに含める

Vungle SDK を使用する方法は 2 つあります。Maven 経由の AAR として使用する方法と、JAR 統合で使用する方法です。

方法 1. AAR 統合

プロジェクトレベルの build.gradle ファイルを開き、Maven の URL を「allprojects」セクションに追加します。

allprojects {
repositories {
maven {
url 'https://jitpack.io'
}
}
}

使用しているアプリケーションのアプリケーションレベルの build.gradle ファイルを開き、コンパイルの依存関係を「dependencies」セクションに追加します。

dependencies { … // Vungle SDK
compile 'com.github.vungle:vungle-android-sdk:6.2.5'
// Optional Google Play Services - Location and Basement
compile 'com.google.android.gms:play-services-basement:11.0.4'
compile 'com.google.android.gms:play-services-location:11.0.4' … }

Maven 経由で Vungle SDK を含める場合は、「手順 2. Vungle SDK をインポートする」をスキップしてかまいません。

方法 2. JAR 統合

  1. Vungle SDK v. 6 をダウンロードして解凍し、libs フォルダーに移動してすべての jar ファイルをコピーし、それらのファイルをプロジェクトの libs フォルダーに追加します。

    image1.png
  2. プロジェクトレベルの build.gradle ファイルを開き、「repositories」セクションを以下のように更新します。

    allprojects {
    repositories {
    jcenter()
    }
    }
  3. 使用しているアプリケーションのアプリケーションレベルの build.gradle ファイルを開き、その他の依存関係を「dependencies」セクションに追加します。

    dependencies { … // Vungle SDK compile files('libs/vungle-android-sdk-6.2.5.jar') // Required Third-party Dependencies compile files('libs/android-job-1.2.0.jar') compile files('libs/cat-1.0.5.jar') compile files('libs/converter-gson-2.2.0.jar') compile files('libs/fetch-1.1.5.jar') compile files('libs/gson-2.7.jar') compile files('libs/logging-interceptor-3.7.0.jar') compile files('libs/okhttp-3.7.0.jar') compile files('libs/okio-1.12.0.jar') compile files('libs/retrofit-2.2.0.jar') compile files('libs/VNG-moat-mobile-app-kit-2.2.0.jar') // Google Play Services compile 'com.google.android.gms:play-services-gcm:11.0.4' // Required compile 'com.google.android.gms:play-services-basement:11.0.4' // Optional compile 'com.google.android.gms:play-services-location:11.0.4' // Optional // Support libraries compile 'com.android.support:support-v4:26.0.1' … } 
  4. Vungle SDK を手動で含める場合は、「手順 2. Vungle SDK をインポートする」に進みます。

  5. 以下のコード行を AndroidManifest.xml ファイルに追加し、アプリケーション項目名を multidex 用のアプリケーション クラス名に割り当てます。
    <!--Required Permissions-->
    <uses-permission android:name="android.permission.INTERNET" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
    <uses-permission android:name="android.permission.WAKE_LOCK" />
    <uses-permission android:name="android.permission.RECEIVE_BOOT_COMPLETED" />

    <!--Optional Permissions-->
    <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
    <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />

    <application
    android:allowBackup="true"
    android:icon="@mipmap/ic_launcher"
    android:label="@string/app_name"
    android:roundIcon="@mipmap/ic_launcher_round"
    android:supportsRtl="true"
    android:theme="@style/AppTheme"
    android:networkSecurityConfig="@xml/network_security_config" >

    <activity android:name=".MainActivity">
    <intent-filter>
    <action android:name="android.intent.action.MAIN" />

    <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
    </activity>

    <!-- Google Play Services -->
    <meta-data android:name="com.google.android.gms.version"
    android:value="@integer/google_play_services_version" />

    <!-- Vungle -->
    <activity
    android:name="com.vungle.warren.ui.VungleActivity"
    android:configChanges="keyboardHidden|orientation|screenSize|screenLayout|smallestScreenSize"
    android:launchMode="singleTop"
    android:theme="@android:style/Theme.Translucent.NoTitleBar" />

    <!-- android-job -->
    <service
    android:name="com.evernote.android.job.v21.PlatformJobService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />
    <service
    android:name="com.evernote.android.job.v14.PlatformAlarmServiceExact"
    android:exported="false" />
    <receiver
    android:name="com.evernote.android.job.v14.PlatformAlarmReceiver"
    android:exported="false" >
    <intent-filter>
    <!-- Keep the filter for legacy intents -->
    <action android:name="com.evernote.android.job.v14.RUN_JOB" />
    <action android:name="net.vrallev.android.job.v14.RUN_JOB" />
    </intent-filter>
    </receiver>
    <receiver
    android:name="com.evernote.android.job.JobBootReceiver"
    android:exported="false" >
    <intent-filter>
    <action android:name="android.intent.action.BOOT_COMPLETED" />
    <action android:name="android.intent.action.QUICKBOOT_POWERON" />
    <action android:name="com.htc.intent.action.QUICKBOOT_POWERON" />
    <action android:name="android.intent.action.MY_PACKAGE_REPLACED" />
    </intent-filter>
    </receiver>
    <service
    android:name="com.evernote.android.job.gcm.PlatformGcmService"
    android:enabled="true"
    tools:replace="android:enabled"/>
    <intent-filter>
    <action android:name="com.google.android.gms.gcm.ACTION_TASK_READY" />
    </intent-filter>
    </service>
    <service
    android:name="com.evernote.android.job.JobRescheduleService"
    android:exported="false"
    android:permission="android.permission.BIND_JOB_SERVICE" />

    </application>

手順 2. Vungle SDK をインポートする

import com.vungle.warren.Vungle; import com.vungle.warren.AdConfig; // Custom ad configurations import com.vungle.warren.InitCallback; // Initialization callback import com.vungle.warren.LoadAdCallback; // Load ad callback import com.vungle.warren.PlayAdCallback; // Play ad callback import com.vungle.warren.VungleNativeAd; // Flex-Feed ad

手順 3. Vungle SDK を初期化する

初期化メソッドでは、以下のパラメーターが使用されます。

  • 使用する広告配置参照 ID のリスト
  • Vungle アプリケーション ID
  • アプリケーション コンテキスト
  • InitCallback
    • onSuccess: SDK が正常に初期化された場合に通知する
    • onError: 初期化が失敗した場合に通知する
      • InitCallback が null の場合に IllegalArgumentException をスローする
      • 必須の引数が指定されていない (または正しくない) 場合に、VungleException をスローする
    • onAutoCacheAdAvailable: 自動的にキャッシュされた配置広告に再生可能な広告が含まれている場合に通知する

広告が事前にキャッシュされていない場合、SDK は自動的にキャッシュされる配置広告に対して継続的に広告をキャッシュしようとするため、初期化コールバックの一環として onAutoCacheAdAvailablecallback を使用することができます。たとえば、SDK を初めて起動する場合や、配置用に事前にキャッシュされた広告を再生する場合などに使用することができます。この動作は、実行中のプロセスが停止するまで、またはガベージ コレクションによって Vungle インスタンスが再要求されるまで継続します。自動的にキャッシュされることがないすべての配置広告の場合、「手順 5. 広告を読み込む」の説明に従い、loadAd を明示的に発行する必要があります。

private final List placement_collection = Arrays.asList("PLACEMENT_1", "PLACEMENT_2", "PLACEMENT_3"); Vungle.init(placement_collection, app_id, this.getApplicationContext(), new InitCallback() { @Override public void onSuccess() { // Initialization has succeeded and SDK is ready to load an ad or play one if there // is one pre-cached already } @Override public void onError(Throwable throwable) { // Initialization error occurred - throwable.getLocalizedMessage() contains error message } @Override public void onAutoCacheAdAvailable(String placementId) { // Callback to notify when an ad becomes available for the auto-cached placement // // NOTE: This callback works only for the auto-cached placement. Otherwise, please use // LoadAdCallback with loadAd API for loading placements. } }; 

isInitialized メソッドを呼び出すことにより、Vungle SDK が初期化されているかどうかをいつでも確認することができます。

public static boolean isInitialized()

手順 4. イベント リスナーを実装する

すべてのイベントで一般的なコールバックを使用する場合、広告読み込みイベントに対して LoadAdCallback を実装し、広告再生イベントに対して PlayAdCallback を実装します。一般的なコールバックを使用しない場合は、この手順をスキップして「手順 5. 広告を読み込む」に進み、インライン コールバックを実装してください。

// Implement LoadAdCallback
private final LoadAdCallback vungleLoadAdCallback = new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) {
// Placement reference ID for the placement to load ad assets
}

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to download ad assets
// Throwable contains error message
}
};
// Implement PlayAdCallback
private final PlayAdCallback vunglePlayAdCallback = new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) {
// Placement reference ID for the placement to be played
}

@Override
public void onAdEnd (String placementReferenceId, boolean completed, boolean isCTAClicked) {
// Placement reference ID for the placement that has completed ad experience
// completed has value of true or false to notify whether video was
// watched for 80% or more
// isCTAClkcked has value of true or false to indicate whether download button
// of an ad has been clicked by the user
}

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Placement reference ID for the placement that failed to play an ad
// Throwable contains error message
}
};

手順 5. 広告を読み込む

Vungle Android SDK v5 では、グローバルな VungleAdEventListener が使用されていましたが、Vungle Android SDK v6 では、広告を読み込むたびにコールバックを実行できるようになりました。割り当てられているコールバックについて、広告の読み込み状況が LoadAdCallback に通知されます。v6 の SDK は、このコールバックだけを参照します。このコールバックはどこにも保存されないため、呼び出し側で、このコールバックを適切に管理する必要があります。

public static void loadAd(@NonNull final String id, @Nullable LoadAdCallback callback) 

自動キャッシュ配置用の広告アセットのダウンロードは SDK によって管理されるため、自動キャッシュ配置用にこのメソッドを呼び出す必要はありません。それ以外のすべての配置広告については、SDK で配置用の広告を再生できるように、loadAd メソッドを呼び出して正しく実行する必要があります。このメソッドを呼び出すと、onAdLoad コールバックがトリガーされます。

// Load Ad Implementation
if (Vungle.isInitialized()) {
Vungle.loadAd("PLACEMENT_ID", new LoadAdCallback() {
@Override
public void onAdLoad(String placementReferenceId) { }

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Load ad error occurred - throwable.getLocalizedMessage() contains error message
}
};
}

手順 6. 広告の状況を確認する

playAd() method を呼び出す前に、静的なメソッド canPlayAdmethod を使用して、配置用の広告を再生できるかどうかを確認します。

public static boolean canPlayAd(@NonNull String id)

手順 7. 広告を再生する

広告を再生するには、配置参照 ID、AdConfig (オプション。使用していない場合は null)、PlayAdCallback イベント リスナー を指定して playAd メソッドを呼び出します。再生が成功したか失敗したかが、このメソッドに通知されます。

public static void playAd(@NonNull final String id, final AdConfig settings, @Nullable final PlayAdCallback listener) 

playAd メソッドを呼び出す前に必ず canPlayAd メソッドを呼び出して、広告が再生可能な状態になっているかどうかを確認する必要があります。また、playAd を短時間に続けて呼び出すと広告が正しくレンダリングされないため、最初に呼び出した playAd から onAdEnd コールバックまたは onError コールバックを受け取る前に、別の playAd が呼び出されていないかどうかを確認する必要があります。

if (Vungle.canPlayAd("PLACEMENT_ID")) {
Vungle.playAd("PLACEMENT_ID", new AdConfig, new PlayAdCallback() {
@Override
public void onAdStart(String placementReferenceId) { }

@Override
public void onAdEnd(String placementReferenceId, boolean completed, boolean isCTAClicked) { }

@Override
public void onError(String placementReferenceId, Throwable throwable) {
// Play ad error occurred - throwable.getLocalizedMessage() contains error message
}
});
}

onError コールバックを受け取った場合に SDK をもう一度初期化する

まれに、リソースの使用量が制限されることがあります。その場合、Vungle SDK の一部、または SDK で必要なサードパーティ製品の一部について、割り振りが解除されます。その際、‘VungleException.VUNGLE_NOT_INTIALIZED’ というコードが記述された Throwable オブジェクトを使用して、LoadAdCallback and PlayAdCallback によって onError() コールバックが起動されます。この場合、Vungle SDK が動作不能な状態になっているため、もう一度初期化する必要があります。

@Override public void onError(String placementReferenceID, Throwable throwable) { try { VungleException ex = (VungleException) throwable; if (ex.getExceptionCode() == VungleException.VUNGLE_NOT_INTIALIZED) { initializeVungleSDK(); } } catch (ClassCastException cex) { Log.d(LOG_TAG, cex.getMessage()); } } 

ネイティブ Flex 広告

Flex View 広告

Flex View 広告は、通常のフルスクリーン広告と同じ方法で読み込まれて再生されます。「Flex-View」という配置タイプが設定された配置参照 ID をダッシュボードから呼び出すだけです。

Flex View 広告は、プログラム経由で終了することができます。これを行うには、現在再生されている Flex View 広告の配置参照 ID を指定して closeFlexViewAd メソッドを呼び出します。

public static boolean closeFlexViewAd(@NonNull final String placementReferenceId)

一定時間表示してから、Flex View 広告を自動的に終了する方法もあります。詳しくは、「広告設定オプション」セクションを参照してください。

Flex Feed 広告

Flex Feed 広告の場合、全画面表示する必要はありません。代わりに、パブリッシャー側のアプリケーションで、広告コンテナの正確なサイズと位置を指定することになります。これらの広告コンテナは、コレクション ビュー、テーブル ビュー、リスト ビューに含めることができます。

Flex Feed 広告を読み込む

パブリッシャーは、Flex Feed 広告コンテナに対して広告を読み込む必要があります。Flex Feed 広告は、フルスクリーン広告やインタースティシャル広告と同じ方法で読み込むことができますが、Flex Feed 広告をサポートするための配置を設定する必要があります。Flex Feed 広告用の配置設定を有効にする方法については、Vungle アカウント マネージャーに問い合わせてください。

Flex Feed 広告を表示する

Flex Feed 広告の表示方法は、フルスクリーン広告の表示方法とは異なります。Flex Feed 広告の場合、最初に広告用のコンテナを作成する必要があります。このコンテナが、広告のレイアウトになります。たとえば、RelativeLayout というレイアウトを画面上の任意の場所に配置することができます。コンテナのサイズに合わせて広告のサイズを自由に調整できますが、非常に低い解像度を設定すると、広告が見にくくなることに注意してください。コンテナを作成したら、Vungle.getNativeAd を呼び出して Flex Feed 広告オブジェクトを取得し、addView 関数を呼び出してコンテナを Flex Feed 広告に関連付ける必要があります。

private RelativeLayout flexfeed_container = findViewById(...); VungleNativeAd vungleNativeAd = Vungle.getNativeAd("FLEXFEED_ID", vunglePlayAdCallback); View nativeAdView = vungleNativeAd.renderNativeView(); flexfeed_container.addView(nativeAdView); 

Flex Feed 広告を終了する

Flex Feed 広告ビューはコンテナ ビューに追加されるため、広告ビューを画面から消す場合、アクティビティやフラグメントを破棄する場合、親のビュー コンテナを再利用する場合や破棄する場合は、Flex Feed 広告ビューも終了する必要があります。終了しなかった場合、アプリケーション内で予期しない動作が発生します。

private VungleNativeAd vungleNativeAd; // Calling finishDisplayingAd when you want to finish displaying Flex-Feed Ad will onAdEnd をトリガーすると、子の Flex Feed コンテナが削除可能になったときに、通知を受け取ります
vungleNativeAd.finishDisplayingAd(); // And removing empty ad view from container @Override public void onAdEnd(String id, boolean completed) { … parentView.remove(nativeAdView); vungleNativeAd = null; … }

Flex Feed 広告再生の一時停止と再開を切り替える

ユーザーが、画面上に動画広告が表示されない場所までスクロールした場合、パブリッシャーは動画を一時停止する必要があります。その後、表示可能な場所までスクロールされた場合は、動画を再開する必要があります。この一時停止と再開を制御するには、VungleNativeAd インスタンスから setAdVisibility() メソッドを呼び出し、動画を表示する場合はこのメソッドを true に設定し、動画を画面から消す場合は false に設定します。setAdVisibility を View visibility と混同しないようにしてください。View visibility は、ネイティブ広告ビューの表示/非表示の状態を Vungle SDK に通知します。SDK は、その状態に応じて、動画再生の一時停止と再開を切り替えます。

Flex Feed 広告を一時停止するには、以下のように指定します。

vungleNativeAd.setAdVisibility(false);

Flex Feed 広告を再開するには、以下のように指定します。

vungleNativeAd.setAdVisibility(true);

詳細設定

Google Play Services (オプション)

Google Play Services をプロジェクトに追加すると、より詳細にカスタマイズされた広告をエンド ユーザーに提供することができます。Google Cloud Messaging は必須の API で、Google Location and Activity Recognition と Google Location and Basement は オプションの API です。バージョン 11.0.1 以降を使用することをお勧めします。

Google Play Services をプロジェクトに追加する場合は、Google のセットアップ ガイドを参照することをお勧めします。アプリケーションで、最新バージョンの Google Play Services がデバイスにインストールされていることを確認してください。Vungle SDK は、必要に応じて、Google Play Services の位置情報 API と広告 API を使用します。

  • google.android.gms:play-services-gcm:11.0.1 // Required
  • google.android.gms:play-services-basement:11.0.1 // Recommended
  • google.android.gms:play-services-location:11.0.1 // Recommended

メソッド数の削減

Vungle Android SDK v6 をプロジェクトに追加すると、遷移的な依存関係を除き、約 750 個の主要な Vungle メソッドが追加されます。サードパーティ製ライブラリを含めて完全な統合を行うと、平均して 4000 個未満のメソッドが追加されます。プロジェクトに追加されるメソッドの合計数を減らすには、以下の推奨事項を検討してください。

  • ProGuard: ProGuard を有効にすると、プロジェクト コードのサイズを小さくすることができます。使用されていないクラスがコンパイル時に破棄されるため、メソッドの合計数を可能な限り減らすことができます。ProGuard を有効にするには、適切なビルド タイプの build.gradle ファイルで minifyEnabled true を指定し、プロジェクト内で必要なクラスを保存するためのルールを指定します。

  • Multidex: ProGuard を使用してもまだ 65,000 個を超えるメソッドが残っている場合は、Google が提供する multiDex を有効にする以外に方法はありません。multiDex 用にプロジェクトを設定する必要があるのは 1 回だけですが、multiDex を有効にすると、ビルドとアプリケーションの起動にかかる時間が長くなります。

Proguard

Proguard を使用する場合は、ProGuard の構成ファイルに以下のルールを追加します。

# Vungle -keep class com.vungle.warren.** { *; } # Evernote -dontwarn com.evernote.android.job.gcm.** -dontwarn com.evernote.android.job.GcmAvailableHelper -dontwarn com.google.android.gms.ads.identifier.** -keep public class com.evernote.android.job.v21.PlatformJobService -keep public class com.evernote.android.job.v14.PlatformAlarmService -keep public class com.evernote.android.job.v14.PlatformAlarmReceiver -keep public class com.evernote.android.job.JobBootReceiver -keep public class com.evernote.android.job.JobRescheduleService -dontwarn org.codehaus.mojo.animal_sniffer.IgnoreJRERequirement -keep class com.google.android.gms.internal.** { *; } # Moat SDK -keep class com.moat.** { *; } -dontwarn com.moat.**

UI スレッドに関する注意

コールバックはバックグラウンド スレッドで実行されるため、イベント コールバックから生じる UI 上の操作や更新は、実行前にメイン UI スレッドに渡す必要があります。UI スレッドでコードを実行する方法は、次の 2 つが一般的です。

広告設定オプション

広告の設定

新しい adConfig オブジェクトを playAd に渡すことにより、再生する個々の広告をカスタマイズすることができます。AdConfig オブジェクトは、null にすることができます。null にした場合、デフォルト設定を使用して広告が再生されます。null ではなく、AdConfig セッターに対するオーバーライドを指定することもできます。以下に、AdConfig の使用例を示します。

Vungle.playAd(placementReferenceID, null, vunglePlayAdCallback);

この例では、adConfig オブジェクトとして null が使用されています。別の設定を追加したくない場合は、このように指定します。AdConfig オブジェクトは、以下のように使用します。

AdConfig adConfig = new AdConfig(); adConfig.setAutoRotate(true); adConfig.setMuted(true); Vungle.playAd(placementReferenceID, adConfig, vunglePlayAdCallback);

以下の表に、すべての有効な AdConfig オプションを示します。

オプション

説明

setBackButtonImmediatelyEnabled

広告を終了するためのボタンを表示する前に [戻る] ボタンを有効にする場合は true、それ以外の場合は false を設定します。

setFlexViewCloseTime

秒数を 0 以上の整数値で指定します。この秒数が経過すると、Flex View 広告が自動的に終了します。

setImmersiveMode

KitKat 以降のデバイスでイマーシブ モードを有効にする場合は true、それ以外の場合は false を設定します。

setAutoRotate

動画広告を自動的に繰り返し再生する場合は true、動画広告の再生方向に従って再生する場合は false を設定します。

setMuted

対象のアプリケーションに一致するオーディオ設定を使用して動画を開始する場合は true、アプリケーションに関係なくミュート状態で動画を開始する場合は false を設定します。

setOrdinal

同じセッション内で再生された広告の数をトラッキングするための序数カウントを整数値で指定します。

setTransitionAnimationEnabled

動画の遷移アニメーションを有効にする場合は true、無効にする場合は false を設定します。

再生する広告の複数の配置参照 ID に対して、同じ AdConfig オブジェクトを使用することができます。

追加の報酬型広告の設定

Vungle オブジェクトを使用して、報酬型の動画を設定することができます。

オプション

説明

setIncentivizedFields(@Nullable String userID, @Nullable String title, @Nullable String body, @Nullable String keepWatching, @Nullable String close)

報酬型の動画をユーザーが閉じようとすると、ユーザーの興味を惹くポップアップ画面が表示されます。この設定を使用して、ポップアップ画面をカスタマイズすることができます。デフォルト値をそのまま使用する場合は、null を指定します。たとえば、ユーザー ID だけを変更するような場合です。

報酬型広告は、以下のように設定します。

Vungle.setIncentivizedFields("user1","title1","body1","keepwatching1","close1"); Vungle.playAd("YOUR_APP_ID", AdConfig, vunglePlayAdCallback);

有効な配置広告のリスト

現在のセッションで有効なすべての配置参照 ID が含まれた一連の文字列を返すヘルパー メソッドを以下に示します。

public static Collection getValidPlacements()

EU 一般データ保護規則 (GDPR) に準拠するための推奨手順

EU 一般データ保護規則 (GDPR) に準拠するための推奨事項」セクションの「方法 1」で説明したように、Vungle API を使用して、ユーザーの同意状況の更新や照会を行うことをお勧めします。そのためには、以下の関数を使用します。

 // To set the user's consent status to opted in: Vungle.updateConsentStatus(Vungle.Consent.OPTED_IN); // To set the user's consent status to opted out: Vungle.updateConsentStatus(Vungle.Consent.OPTED_OUT); // To find out what the user's current consent status is: Vungle.Consent currentStatus = Vungle.getConsentStatus(); 

ハードウェア アクセラレーション

対象となる API のレベルが 14 以上に設定されている場合、ハードウェア アクセラレーションオプションがデフォルトで有効になります。Dynamic Template 広告とネイティブ Flex 広告を正しく表示するには、このオプションを有効にする必要があります。以下のように、プロジェクト内でこのオプションが「true」に設定されていることを確認してください。

<application android:hardwareAccelerated="true" ...>

SDK のバージョン番号を取得する

Vungle に付属している以下のコードにより、実行時にプログラム経由で SDK のバージョン番号を取得することができます (内部的な広告仲介の場合に便利です)。

com.vungle.warren.BuildConfig.VERSION_NAME

その他の注記

Android Studio には、以下に示すクラッシュを引き起こす可能性がある既知の問題が存在しています。最新の Android Studio を使用している場合は、Instant Run 機能を無効にして以下のクラッシュを回避してください。

1-20 13:53:03.649 27642-27828/com.publisher.sample W/GooglePlayServicesUtil: Google Play services out of date. Requires 10240000 but found 9879438 11-20 13:53:03.659 27642-27828/com.publisher.sample W/VungleDevice: Google Play Services not available: SERVICE_VERSION_UPDATE_REQUIRED 11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class com.vungle.publisher.lu 11-20 13:53:05.679 27642-27642/com.publisher.sample D/Event: No subscribers registered for event class de.greenrobot.event.NoSubscriberEvent
他にご質問がございましたら、リクエストを送信してください

コメント