基本的な統合の記事の手順に従って開始し、次に、統合するいずれかの広告フォーマット (インタースティシャル広告またはリワード広告、バナー広告、MREC 広告) の手順に従います。この記事には補足情報が含まれており、基本的な統合が完了していることを前提としています。
2019 年 5 月 25 日より、欧州連合で一般データ保護規則 (GDPR) が施行されました。開発者は、以下に示すいずれかの方法で GDPR に準拠する必要があります。
- 方法 1 (推奨): パブリッシャーが、ユーザー レベルで GDPR 同意プロセスを管理し、ユーザーによる選択内容を Vungle に伝える。これを行うには、開発者が独自のメカニズムを使用してユーザーから同意を取得し、Vungle API を使用して、ユーザーの同意状況の更新や照会を実行します。詳しくは、以下のサンプル コードを参照してください。
- 方法 2: 広告を表示するための要件の処理を Vungle に委任する。この方法の場合、欧州のユーザーに広告を表示する前に、同意ダイアログが表示されます。それ以降は、ユーザーが広告の表示に同意したか拒否したかがシステムに記憶されることになります。
updateConsentStatus
メソッド (オプション 1 で推奨) は、ユーザーの同意ステータスと同意メッセージのバージョンをパラメーターとして受け取ります。
public static void updateConsentStatus(@NonNull Consent status, @NonNull String consentMessageVersion)
同意ステータスは、ユーザーが表示したメッセージ バージョンに対してユーザーが OPTED_IN
または OPTED_OUT
を持っているかどうかを指定します。consentMessageVersion
は、パブリッシャーが管理する同意ポリシーのバージョンを指定します。これにより、メッセージ バージョンごとにユーザーをプールし、GDPR ポリシーが変更されたときに再度同意を求めることができます。
// Usage example of GDPR API
// To set the user's consent status to opted in:
Vungle.updateConsentStatus(Vungle.Consent.OPTED_IN, “1.0.0”);
// To set the user's consent status to opted out:
Vungle.updateConsentStatus(Vungle.Consent.OPTED_OUT, “1.0.0”);
// To find out what the user's current consent status is:
// This will return null if the GDPR Consent status has not been set
// Otherwise, it will return Vungle.Consent.OPTED_IN or Vungle.Consent.OPTED_OUT
Vungle.Consent currentGDPRStatus = Vungle.getConsentStatus();
String consentMessageVersion = Vungle.getConsentMessageVersion();
2020 年 7 月 1 日より、カリフォルニア州消費者プライバシー法 (CCPA) が施行され、パブリッシャーは CCPA に準拠するために Android SDK 6.7.0 にアップデートする必要があります。
updateCCPAStatus
メソッドは、ユーザーの同意ステータスを受け取り、ユーザーが OPTED_IN
または OPTED_OUT
を持っているかどうかを指定し、getCCPAStatus()
メソッドはユーザーの現在の CCPA ステータスを返します。
public static void updateCCPAStatus(@NonNull final Consent status)
public static Consent getCCPAStatus()
// Usage example of CCPA API
// To set the user's CCPA status to opted in:
Vungle.updateCCPAStatus(Consent.OPTED_IN);
// To set the user's CCPA status to opted out:
Vungle.updateCCPAStatus(Consent.OPTED_OUT);
// To find out what the user's current consent status is:
Consent currentCCPAStatus = Vungle.getCCPAStatus();
Vungle Android SDK v6.4.11 以降、Google Advertising ID が利用できない場合に使用される Android ID の送信を制限できるようになりました。
// Set true to opt out for Android ID collection by SDK or false (default) to opt in
VungleSettings vungleSettings = new VungleSettings.Builder()
.setAndroidIdOptOut(true)
.build();
Vungle.init(appId, getApplicationContext(), initCallback, vungleSettings);
プロジェクトに Google Play開発者サービスを追加するのは任意ですが、追加することをお勧めします。これにより、Vungle はエンド ユーザーによりカスタマイズされた広告エクスペリエンスを提供できます。当社はベースメントと ads-identifier API を含め Google Play Services v11.0.1 以降のバージョンを使用することを推奨しています。
Google Play開発者サービスを追加する場合、Google のセットアップ ガイドを参照してください。お使いのアプリで、新しいバージョンの Google Play開発者サービスがインストールされていることを確認してください。Vungle SDK は、必要に応じて、Google Play開発者サービスからの位置情報と広告 API を使用します。
-
google.android.gms:play-services-basement:16.0.0
(推奨) -
google.android.gms:play-services-ads-identifier:16.0.0
(AAID に必須)
Vungle Android SDK v6 をプロジェクトに追加すると、遷移的な依存関係を除き、約 700 個の主要な Vungle メソッドが追加されます。サードパーティ製ライブラリを含めて完全な統合を行うと、平均して 4000 個未満のメソッドが追加されます。プロジェクトに追加されるメソッドの合計数を減らすには、以下の推奨事項を検討してください。
-
ProGuard: ProGuard を有効にすると、プロジェクト コードのサイズを小さくすることができます。使用されていないクラスがコンパイル時に破棄されるため、メソッドの合計数を可能な限り減らすことができます。ProGuard を有効にするには、適切なビルド タイプの
build.gradle
内でminifyEnabled
をtrue
に設定し、プロジェクト内で必要なクラスを保存するためのルールを指定します。 - MultiDex: ProGuard を使用してもまだ 65,000 個を超えるメソッドが残っている場合は、Google が提供する MultiDex を有効にする以外に方法はありません。MultiDex 用にプロジェクトを設定する必要があるのは 1 回だけですが、MultiDex を有効にすると、ビルドとアプリケーションの起動にかかる時間が長くなります。
ProGuard を使用する場合は、ProGuard の構成ファイルに以下のルールを追加します。
# Vungle
# Vungle
-dontwarn com.vungle.warren.downloader.DownloadRequestMediator$Status
-dontwarn com.vungle.warren.error.VungleError$ErrorCode
# Google
-dontwarn com.google.android.gms.common.GoogleApiAvailabilityLight
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient
-dontwarn com.google.android.gms.ads.identifier.AdvertisingIdClient$Info
# Moat SDK
-keep class com.moat.** { *; }
-dontwarn com.moat.**
# GSON
-keepattributes *Annotation*
-keepattributes Signature
# Prevent R8 from leaving Data object members always null
-keepclassmembers,allowobfuscation class * {
@com.google.gson.annotations.SerializedName <fields>;
}
# OkHttp + Okio
-dontwarn javax.annotation.**
-keepnames class okhttp3.internal.publicsuffix.PublicSuffixDatabase
-dontwarn org.codehaus.mojo.animal_sniffer.*
-dontwarn okhttp3.internal.platform.ConscryptPlatform
Vungle SDK が初期化して広告を取得する前に、ユーザーのデバイスで使用可能な領域の制限を設定するための、最小ディスク領域構成が Vungle SDK v6.4.11 で導入されました。setMinimumSpaceForInit
のデフォルト値は 51 MB、setMinimumSpaceForAd
は 50 MB で設定されます。サイズはバイト単位で入力します。
VungleSettings vungleSettings = new VungleSettings.Builder()
.setMinimumSpaceForInit(51L * 1024L * 1024L) // 51 MB
.setMinimumSpaceForAd(50L * 1024L * 1024L) // 50 MB
.build();
Vungle.init(appId, getApplicationContext(), initCallback, vungleSettings);
対象となる API のレベルが 14 以上に設定されている場合、アプリケーションのハードウェア アクセラレーションがデフォルトで有効になります。Dynamic Template 広告と MREC 広告を正しく表示するには、このオプションを SDK で有効にする必要があります。このオプションがプロジェクトのアプリケーション レベルで「true」に設定されていることを確認してください。
<application android:hardwareAccelerated="true" ...>
Vungle に付属している以下のコードにより、実行時にプログラム経由で SDK のバージョン番号を取得することができます (内部的な広告仲介の場合に便利です)。
com.vungle.warren.BuildConfig.VERSION_NAME
InitCallback
、PlayAdCallback
、および LoadAdCallback
は、onError
コールバックの発生時に VungleException
コードを持ちます。このコードを使用してデバッグしたり、プログラムで問題を修正するためのアクションを取ることができます。
if (exception.getExceptionCode() == VungleException.VUNGLE_NOT_INTIALIZED) {
// Call routine to initialize SDK
}
例外コード | 説明 |
CONFIGURATION_ERROR |
構成エラーが発生しました。アプリ ID と広告配置参照 ID を確認し、ネットワーク接続が利用可能なときにもう一度やり直してください。 |
NO_SERVE |
広告サーバーにより、現在の入札用の広告が検出されませんでした。後でもう一度やり直してください。この例外は予期された動作です。 |
UNKNOWN_ERROR |
不明なエラーが発生しました。この例外はまれなものです。 |
AD_EXPIRED |
キャッシュ内の広告が期限切れになり、再生できなくなりました。別の広告を読み込んでください。 |
MISSING_REQUIRED_ARGUMENTS_FOR_INIT |
SDK が機能するために不可欠であるため、Vungle.init() 用のすべてのパラメーターが NonNull としてマークされていることを確認してください。 |
APPLICATION_CONTEXT_REQUIRED |
SDK が Activity ライフサイクルを超えても引き続き API をサポートできるように、アプリケーション Context を提供してください。 |
OPERATION_ONGOING |
要求されたアクションの操作はすでに進行中です。操作が完了するのを待ってから、別の操作を実行してください。 |
VUNGLE_NOT_INTIALIZED |
Vungle が初期化されていないか、初期化されなくなりました。再初期化するには Vungle.init() を呼び出してください。 |
AD_UNABLE_TO_PLAY |
広告を再生できません。 |
AD_FAILED_TO_DOWNLOAD |
広告のダウンロードに失敗しました。 |
PLACEMENT_NOT_FOUND |
広告配置が無効です。 |
SERVER_RETRY_ERROR |
リモートサーバーが HTTP Retry-After で応答しました。SDK はこの要求を再試行します。 |
API 23 以降のアプリケーションでは、「バックアップを許可」設定がデフォルトで有効になっています。このバックアップ ルールにより、Vungle SDK とアプリ自体が適切に動作するように、すべてのアプリケーション データが確実にバックアップされます。「バックアップを許可」設定を無効にしていない場合、独自のバックアップルールを指定していない場合は、追加の XML ルールを指定して、SDK ファイル システム内のどのファイルを自動バックアップから除外するかを定義する必要があります。
<full-backup-content>
<exclude domain="file" path="vungle" />
<exclude domain="file" path="vungle_cache" />
<exclude domain="external" path="vungle_cache" />
<exclude domain="database" path="vungle_db" />
<exclude domain="sharedpref" path="com.vungle.sdk.xml" />
</full-backup-content>
- Vungle 除外ルールを使用して新しい XML ファイルを作成します。
- .xml ファイルを
res/xml
ディレクトリの下に配置します。 - 上で作成された .xml ファイルのファイル名の
AndroidManifest.xml
のアプリケーション タグ内にfullBackupContent
を追加します。<application android:fullBackupContent="@xml/vungle_backup_rule">
アプリにバックアップが必要ない場合は、アプリケーション タグでバックアップを無効にします。
<application
android:allowBackup="false" >