VAMP Android SDK Manual - AdGeneration/VAMP-Android-SDK GitHub Wiki
- Android SDK 動画リワード広告(VAMP)
開発環境としてAndroid Studioを利用し、インストール後の各種設定は準備されていることを前提とした手順となります。
Android 4.4以降
ver. | |
---|---|
AndroidStudio | 3.4.2 |
build.gradle(project-level)に以下を追記します。
allprojects {
repositories {
・・・(省略)・・・
maven {
url 'https://AdGeneration.github.io/VAMP-Android-SDK/repository'
}
}
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'jp.supership.vamp:vamp-sdk:[Version]'
implementation 'com.google.android.gms:play-services-base:[Version]'
implementation 'com.google.android.gms:play-services-ads-identifier:[Version]'
implementation 'androidx.legacy:legacy-support-v4:[Version]'
}
revised on 2019-2-22 v3.1.2
接続先アドネットワークSDKについては、下記ページよりダウンロード可能です。
https://github.com/AdGeneration/VAMP-Android-SDK/releases
以下の手順でAndroid Studioに追加してください。
※ 各ライブラリのバージョンについてはサンプルを参考にしてください。
build.gradle(project-level)に以下を追記します。
allprojects {
repositories {
・・・(省略)・・・
maven {
url "https://maven.google.com"
}
}
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'com.google.android.gms:play-services-base:[Version]'
implementation 'com.google.android.gms:play-services-ads:[Version]'
AdMobの新APIを使用するためのAdapterです。
AdMobAdapterを使用しない場合は旧APIを使用します。
build.gradle(project-level)に以下を追記します。
allprojects {
repositories {
・・・(省略)・・・
maven {
url 'https://AdGeneration.github.io/VAMP-Android-SDK/repository'
}
}
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'jp.supership.vamp:vamp-admob-adapter:1.0.0'
}
revised on 2019-11-29 v3.1.6
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'com.applovin:applovin-sdk:[Version]'
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'com.facebook.android:audience-network-sdk:[Version]’
implementation 'androidx.annotation:annotation:[Version]'
}
revised on 2019-08-22 v3.1.5
build.gradle(project-level)に以下のmaven URLを追記します。
allprojects {
repositories {
・・・(省略)・・・
maven {
url "https://imobile-maio.github.io/maven"
}
}
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'com.maio:android-sdk:[Version]@aar'
}
build.gradle(project-level)に以下のmaven URLを追記します。
allprojects {
repositories {
・・・(省略)・・・
maven {
url "http://fan-adn.github.io/nendSDK-Android-lib/library"
}
}
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'net.nend.android:nend-sdk:[Version]'
implementation ('com.google.android.gms:play-services-ads-identifier:[Version]') {
exclude module: 'support-v4'
}
implementation 'androidx.legacy:legacy-support-v4:[Version]' //androidx.appcompatが定義済みの場合は不要
implementation 'com.android.support.constraint:constraint-layout:[Version]'
implementation 'androidx.constraintlayout:constraintlayout:[Version]'
// 広告配信に位置情報を使う場合以下を追加
implementation 'com.google.android.gms:play-services-location:[Version]'
}
revised on 2019-08-22 v3.1.5
build.gradle(project-level)に以下のmaven URLを追記します。
allprojects {
repositories {
・・・(省略)・・・
maven {
name "Tapjoy's maven repo"
url "https://tapjoy.bintray.com/maven"
}
}
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'com.tapjoy:tapjoy-android-sdk:[Version]@aar'
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'com.unity3d.ads:unity-ads:[Version]'
}
build.gradle(project-level)に以下を追記します。
allprojects {
repositories {
・・・(省略)・・・
maven {
url 'https://AdGeneration.github.io/VAMP-Android-SDK/repository'
}
}
}
build.gradle(app-level)に以下を追記します。
dependencies {
・・・(省略)・・・
implementation 'jp.supership.vamp:vamp-unityads-adapter:1.0.0'
}
revised on 2019-08-23 v3.1.5
FiveAd-[VERSION].jarをapp/libs以下に追加します。
AndroidManifest.xmlに、以下のようにActivityとpermissionの設定を追加します。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" android:maxSdkVersion="18" />
revised on 2017-11-09 v2.0
<meta-data
android:name="com.google.android.gms.ads.APPLICATION_ID"
android:value="[ADMOB_APP_ID]"/>
[ADMOB_APP_ID]にAdMobのAppIDを指定してください。
この<meta-data>タグはAdMob 17.0.0から必須です。
この設定に失敗した場合は以下のメッセージがログに表示され、アプリはクラッシュします。
"The Google Mobile Ads SDK was initialized incorrectly."
revised on 2018-11-07 v3.0.6
以下を追記してください。
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
新たに追加するpermissionはありません。
新たに追加するpermissionはありません。
デバッグモードを利用する時
<meta-data
android:name="NendDebuggable"
android:value="true" />
新たに追加するpermissionはありません。
新たに追加するpermissionはありません。
import jp.supership.vamp.AdvancedListener;
import jp.supership.vamp.VAMP;
import jp.supership.vamp.VAMPError;
import jp.supership.vamp.VAMPListener;
public class MainActivity extends AppCompatActivity {
private static final String VAMP_AD_ID = "*****";
private static final String TAG = "Sample";
private VAMP vamp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vamp = VAMP.getVampInstance(this, VAMP_AD_ID);
vamp.setVAMPListener(new AdListener()); // VAMPListenerをセット
vamp.setAdvancedListener(new AdvListener()); // AdvancedListenerをセット
VAMP.setTestMode(true); // テストモードを有効にする
VAMP.setDebugMode(true); // デバッグモードを有効にする
// 広告取得
vamp.load();
}
private class AdListener implements VAMPListener {
@Override
public void onReceive(VAMPAd ad) {
// 広告表示の準備完了
Log.d(TAG, "onReceive(" + ad.getAdnwName() + ")");
// 広告表示
vamp.show();
}
@Override
public void onFailedToLoad(VAMPError error, VAMPAd ad) {
// 広告準備に失敗
Log.e(TAG, "onFailedToLoad() " + error);
}
@Override
public onFailedToShow(VAMPError error, VAMPAd ad) {
// 動画の表示に失敗
Log.e(TAG, "onFailedToShow() " + error);
}
@Override
public void onOpen(VAMPAd ad) {
// 広告表示開始
Log.d(TAG, "onOpen(" + ad.getAdnwName() + ")");
}
@Override
public onComplete(VAMPAd ad) {
// 動画再生正常終了(インセンティブ付与可能)
Log.d(TAG, "onComplete(" + ad.getAdnwName() + ")");
}
@Override
public onClose(VAMPAd ad, boolean adClicked) {
// 動画プレーヤーやエンドカードが表示終了
// <注意:ユーザキャンセルなども含むので、インセンティブ付与はonCompleteで判定すること>
Log.d(TAG, "onClose(" + ad.getAdnwName() + ", Click:" + adClicked + ")");
}
@Override
public void onExpired(String placementId) {
// 有効期限オーバー
// <注意:onReceiveを受けてからの有効期限が切れました。showするには再度loadを行う必要が有ります>
Log.d(TAG, "onExpired()");
}
}
private class AdvListener implements AdvancedListener {
@Override
public void onLoadStart(VAMPAd ad) {
// 優先順位順にアドネットワークごとの広告取得を開始
Log.d(TAG, "onLoadStart(" + ad.getAdnwName() + ")");
}
@Override
public vvoid onLoadResult(VAMPAd ad, boolean success, String message) {
// アドネットワークごとの広告取得結果
Log.d(TAG, "onLoadResult(" + ad.getAdnwName() + ") " + message);
}
}
}
Google Advertising IDを利用することにより収益の向上が見込まれます。
Google Advertising IDを利用するにはAndroidStudio上でのGoogle Play Servicesの導入が必須となります。
導入方法は下記リンク先をご参照ください。
Google Play Serivicesの設定
SDKを導入したアプリを難読化する際は以下の設定値をproguardの設定ファイルに追加してください。
難読化後の表示確認も必ず行ってください。
-keep class jp.supership.vamp.** { *; }
-keep class jp.supership.vamp.unityadsadapter.** { *; }
-keep class com.google.android.gms.** { *; }
-dontwarn com.google.android.gms.**
revised on 2018-01-17 v2.0.3
-keepclasseswithmembers class jp.supership.vamp.** { *; }
-keep class jp.supership.vamp.admobadapter.** { *; }
または
-keep class jp.supership.vamp.** { *; }
-keep class com.applovin.** { *; }
-keep class com.facebook.ads.** { *; }
-keep class jp.maio.sdk.android.** { *; }
-keep class net.nend.android.** { *; }
-dontwarn net.nend.android.**
-keep class com.tapjoy.** { *; }
-keep class com.moat.** { *; }
-keepattributes JavascriptInterface
-keepattributes *Annotation*
-keep class * extends java.util.ListResourceBundle {
protected Object[][] getContents();
}
-keep public class com.google.android.gms.common.internal.safeparcel.SafeParcelable {
public static final *** NULL;
}
-keepnames @com.google.android.gms.common.annotation.KeepName class *
-keepclassmembernames class * {
@com.google.android.gms.common.annotation.KeepName *;
}
-keepnames class * implements android.os.Parcelable {
public static final ** CREATOR;
}
-keep class com.google.android.gms.ads.identifier.** { *; }
-dontwarn com.tapjoy.**
-keep class com.unity3d.ads.android.** { *; }
-keepclasseswithmembers class jp.supership.vamp.** { *; }
-keep class jp.supership.vamp.unityadsadapter.** { *; }
または
-keep class jp.supership.vamp.** { *; }
-keep class com.five_corp.ad.** { *; }
テストモードをONにすることで、テスト広告による表示確認が可能です。
RTB案件は配信されません。
(リリースするときは必ず削除するか、コメントアウトしてください)
VAMP.setTestMode(true);
デバッグモードをONにすることで、Logcatでデバッグレベルのログを確認することが可能になります。
同時に、アドネットワーク各社のSDKデバッグモードも連携してONにすることができます。
(リリースするときは必ず削除するか、コメントアウトしてください)
VAMP.setDebugMode(true);
-
通信状況や動画広告によってはロードに時間がかかる場合があります。特に各アドネットワークの初回のロードは時間がかかる傾向にありますのでご注意ください。
-
FANは、127.0.0.1 (localhost)をキャッシュプロキシとして使用してメディアファイルをキャッシュします。
Android P以降平文トラフィックはデフォルトでブロックされるようになります。
これを回避するには127.0.0.1への平文トラフィックをホワイトリストに登録する必要があります。
以下の手順でホワイトリストに登録することできます。res/xml/network_security_config.xmlファイルに以下を追加します。
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <domain-config cleartextTrafficPermitted="true"> <domain includeSubdomains="true">127.0.0.1</domain> </domain-config> </network-security-config>
AndroidManifest.xmlで、次のようにアプリケーション属性に設定を追加します。
<?xml version="1.0" encoding="utf-8"?> <manifest ... > <application android:networkSecurityConfig="@xml/network_security_config" ...> ... </application> </manifest>
詳しくはこちらを参照してください。
-
targetSdkVersionを30にして実行する場合は下記をAndroidManifestに追記する必要があります。
<queries>
<intent>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="https" />
</intent>
</queries>
その他不明点や各アドネットワークの最新の対応OSバージョンは下記からご確認ください。
https://ad-generation.jp/support/adg-help/ad-type/rewarded-video-ad