アドフリくんSDKの導入 - glossom-dev/AdfurikunSDK-Android GitHub Wiki

SDKの導入方法

以下に記載したファイル名やフォルダ名はあくまで例ですので、実際の環境に合わせて正しく設定してください。
また、rootはアプリケーションのルートフォルダを指します。

1. 事前準備

AARファイルを使用して導入する場合 (推奨)

  • アドフリくん管理画面のダウンロードページから
    adfurikunSDK_Android_jointed_{バージョン番号}.zipをダウンロードしてください。
  • ダウンロードしたzipを解凍し、格納されていたlibsフォルダを、
    アプリのroot/app直下にドラッグ&ドロップしてください。
  • root/app/build.gradleに以下の記述を追加してください。
    ※ 'x.y.z' の部分は、使用するアドフリくんのバージョン番号と一致するように書き換えが必要です。
    dependencies {
        implementation files('libs/adfurikunMovieRewardSDK-x.y.z.aar')
    }

Mavenを使用して導入する場合

  • root/build.gradleに以下の記述を追加してください。
    allprojects {
        repositories {
            maven { url 'https://github.com/glossom-dev/AdfurikunSDK-Android/raw/master' }
        }
    }
  • root/app/build.gradleに以下の記述を追加してください。
    ※ 'x.y.z' の部分は、使用するアドフリくんのバージョン番号と一致するように書き換えが必要です。
    dependencies {
        implementation 'jp.adfully:adfurikunsdk:x.y.z'
    }

2. アドネットワークの導入

  • root/app/build.gradleに以下の記述を追加して下さい。
    apply from: 'libs/adfurikunsdk-adnw-maven.gradle'

「1. 事前準備」でAARファイルを使用して導入した場合

  • root/app/libs内にadfurikunsdk-adnw-maven.gradleが存在する事を確認してください。
    ※存在しない場合は「1. 事前準備」からやり直してください。

「1. 事前準備」でMavenを使用して導入した場合

  • root/app/libs内にadfurikunsdk-adnw-maven.gradleを作成し、
    導入したアドフリくんSDKのバージョンに応じて、以下の内容を記載してください。
4.1.0
repositories {
    google()
    mavenCentral()
    maven {url "https://imobile-maio.github.io/maven" }
    maven {url 'https://github.com/amoad/amoad-android-sdk-maven/raw/master/' }
    maven {url 'https://artifact.bytedance.com/repository/pangle' }
    maven {url 'https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea' }
}

dependencies {
    implementation 'com.applovin:applovin-sdk:13.2.0' // AppLovin
    implementation 'com.unity3d.ads:unity-ads:4.16.1' // Unity Ads
    implementation 'com.amoad:amoad-sdk:5.2.30' // Afio
    implementation 'com.maio:android-sdk-v2:2.0.4@aar' // maio
    implementation 'com.vungle:vungle-ads:7.5.0' // Vungle
    implementation 'com.linecorp.adsnetwork:fivead:2.8.20240827' // Five
    implementation 'com.pangle.global:pag-sdk:7.1.0.8' // Pangle
    implementation 'com.unity3d.ads-mediation:mediation-sdk:8.10.0' // IronSource
    implementation 'com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.71' // Mintegral
    implementation 'com.fyber:marketplace-sdk:8.3.7' // Fyber
    implementation 'com.inmobi.monetization:inmobi-ads-kotlin:10.8.3' // InMobi
    implementation 'com.google.android.gms:play-services-ads:23.2.0' // AdMob
}

4.0.0 ~ 4.0.2
repositories {
    google()
    mavenCentral()
    maven {url "https://imobile-maio.github.io/maven" }
    maven {url 'https://github.com/amoad/amoad-android-sdk-maven/raw/master/' }
    maven {url 'https://artifact.bytedance.com/repository/pangle' }
    maven {url 'https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea' }
}

dependencies {
    implementation 'com.applovin:applovin-sdk:13.2.0' // AppLovin
    implementation 'com.unity3d.ads:unity-ads:4.14.2' // Unity Ads
    implementation 'com.amoad:amoad-sdk:5.2.30' // Afio
    implementation 'com.maio:android-sdk-v2:2.0.4@aar' // maio
    implementation 'com.vungle:vungle-ads:7.5.0' // Vungle
    implementation 'com.linecorp.adsnetwork:fivead:2.8.20240827' // Five
    implementation 'com.pangle.global:pag-sdk:7.1.0.8' // Pangle
    implementation 'com.unity3d.ads-mediation:mediation-sdk:8.8.0' // IronSource
    implementation 'com.mbridge.msdk.oversea:mbridge_android_sdk:16.9.71' // Mintegral
    implementation 'com.fyber:marketplace-sdk:8.3.7' // Fyber
    implementation 'com.inmobi.monetization:inmobi-ads-kotlin:10.8.3' // InMobi
    implementation 'com.google.android.gms:play-services-ads:23.2.0' // AdMob
}
3.24.1
repositories {
    google()
    jcenter()
    mavenCentral()
    maven {url "https://jitpack.io" }
    maven {url "https://imobile-maio.github.io/maven" }
    maven {url 'https://github.com/amoad/amoad-android-sdk-maven/raw/master/' }
    maven {url 'https://artifact.bytedance.com/repository/pangle' }
    maven {url 'https://android-sdk.is.com/' }
    maven {url 'https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea' }
}

dependencies {
    implementation 'com.applovin:applovin-sdk:12.6.0'
    implementation 'com.unity3d.ads:unity-ads:4.12.4'
    implementation 'com.amoad:amoad-sdk:5.2.28'
    implementation 'com.maio:android-sdk-v2:2.0.2@aar'
    implementation 'com.vungle:vungle-ads:7.4.2'
    implementation 'com.linecorp.adsnetwork:fivead:2.8.20240827'
    implementation 'com.pangle.global:ads-sdk:6.1.0.9'
    implementation 'com.ironsource.sdk:mediationsdk:8.4.0'
    implementation 'com.mbridge.msdk.oversea:mbridge_android_sdk:16.8.81'
    implementation 'com.fyber:marketplace-sdk:8.3.5'
    implementation 'com.inmobi.monetization:inmobi-ads-kotlin:10.7.8'
}
3.24.0
repositories {
    google()
    jcenter()
    mavenCentral()
    maven {url "https://jitpack.io" }
    maven {url "https://imobile-maio.github.io/maven" }
    maven {url 'https://github.com/amoad/amoad-android-sdk-maven/raw/master/' }
    maven {url 'https://artifact.bytedance.com/repository/pangle' }
    maven {url 'https://android-sdk.is.com/' }
    maven {url 'https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea' }
}

dependencies {
    implementation 'com.applovin:applovin-sdk:12.6.0'
    implementation 'com.unity3d.ads:unity-ads:4.12.4'
    implementation 'com.amoad:amoad-sdk:5.2.28'
    implementation 'com.maio:android-sdk-v2:2.0.2@aar'
    implementation 'com.vungle:vungle-ads:7.4.2'
    implementation 'com.linecorp.adsnetwork:fivead:2.8.20240827'
    implementation 'com.pangle.global:ads-sdk:6.1.0.9'
    implementation 'com.ironsource.sdk:mediationsdk:8.4.0'
    implementation 'com.mbridge.msdk.oversea:mbridge_android_sdk:16.8.81'
    implementation 'com.fyber:marketplace-sdk:8.3.3'
    implementation 'com.inmobi.monetization:inmobi-ads-kotlin:10.7.8'
}
3.23.0
repositories {
    google()
    jcenter()
    mavenCentral()
    maven {url "https://jitpack.io" }
    maven {url "https://imobile-maio.github.io/maven" }
    maven {url 'https://github.com/amoad/amoad-android-sdk-maven/raw/master/' }
    maven {url 'https://artifact.bytedance.com/repository/pangle' }
    maven {url 'https://android-sdk.is.com/' }
    maven {url 'https://dl-maven-android.mintegral.com/repository/mbridge_android_sdk_oversea' }
}

dependencies {
    implementation 'com.applovin:applovin-sdk:12.6.0'
    implementation 'com.unity3d.ads:unity-ads:4.12.0'
    implementation 'com.amoad:amoad-sdk:5.2.26'
    implementation 'com.maio:android-sdk:1.1.16@aar'
    implementation 'com.vungle:vungle-ads:7.3.2'
    implementation 'com.linecorp.adsnetwork:fivead:2.8.20240808'
    implementation 'com.pangle.global:ads-sdk:6.1.0.9'
    implementation 'com.ironsource.sdk:mediationsdk:7.4.0'
    implementation 'com.mbridge.msdk.oversea:reward:16.8.11'
    implementation 'com.mbridge.msdk.oversea:newinterstitial:16.8.11'
    implementation 'com.mbridge.msdk.oversea:mbnativeadvanced:16.8.11'
    implementation 'com.mbridge.msdk.oversea:mbbanner:16.8.11'
    implementation 'com.mbridge.msdk.oversea:mbsplash:16.8.11'
    implementation 'com.fyber:marketplace-sdk:8.3.0'
}

3. AndroidX Support Libraryの導入

  • root/app/build.gradleに以下の記述を追加して下さい。
    apply from: 'libs/adfurikunsdk-support-androidx.gradle'
  • root/gradle.propertiesに以下の記述を追加して下さい。(既に記述済みの場合は不要です)
android.useAndroidX=true
android.enableJetifier=true

「1. 事前準備」でAARファイルを使用して導入した場合

  • root/app/libs内にadfurikunsdk-support-androidx.gradleが存在する事を確認してください。
    ※存在しない場合は「1. 事前準備」からやり直してください。

「1. 事前準備」でMavenを使用して導入した場合

  • root/app/libs内にadfurikunsdk-support-androidx.gradleを作成し、
    導入したアドフリくんSDKのバージョンに応じて、以下の内容を記載してください。
4.0.0 ~ 4.0.2
dependencies {
    implementation 'androidx.appcompat:appcompat:1.4.0'                         // Afio
    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' // Afio
    implementation "androidx.constraintlayout:constraintlayout:2.1.0"

    implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0'                   // Adfurikun
    implementation 'com.google.android.gms:play-services-ads-identifier:18.1.0' // Adfurikun
}
3.24.0 ~ 3.24.1
dependencies {
    implementation 'androidx.appcompat:appcompat:1.4.0'                         // Afio
    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' // Afio
    implementation "androidx.constraintlayout:constraintlayout:2.1.0"

    implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.8.0'          // Adfurikun
    implementation 'com.google.android.gms:play-services-ads:23.2.0'    // Adfurikun
}
3.23.0
dependencies {
    implementation 'androidx.appcompat:appcompat:1.4.0'                         // Afio
    implementation 'androidx.localbroadcastmanager:localbroadcastmanager:1.1.0' // Afio
    implementation "androidx.constraintlayout:constraintlayout:2.1.0"

    implementation 'org.jetbrains.kotlin:kotlin-stdlib:1.7.0'          // Adfurikun
    implementation 'com.google.android.gms:play-services-ads:23.2.0'    // Adfurikun
}

4. AdMob関連の設定

AdMobを利用する場合

バージョン3.22.0以降のアドフリくんSDKでは、AndroidManifest.xml の<meta-data>
AdMobから割り当てられたアプリIDを設定する必要があります。
以下のコードを AndroidManifest.xml に追加し、ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy
実際のアプリIDに置き換えてください。アプリIDの取得方法は公式マニュアルをご参照ください。

<meta-data
    android:name="com.google.android.gms.ads.APPLICATION_ID"
    android:value="ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy"/>

AdMobを利用しない場合

上記の記述は不要です。
代わりに、root/app/libs/adfurikunsdk-support-androidx.gradleに記載されている
com.google.android.gms:play-services-adsの依存関係を以下のようにコメントアウトしてください。

dependencies {
    // implementation 'com.google.android.gms:play-services-ads:23.2.0'
}

5. ProGuardの設定

アプリ側でProGuardを使用する場合、以下の内容をコピー&ペーストしてください。

ProGuard内容
# <!-- 動画リワード ProGuard設定 ->
# Support for Adfurikun Movie Reward
-keep interface jp.tjkapp.adfurikunsdk.moviereward.**
-keep class jp.tjkapp.adfurikunsdk.moviereward.** {
	public *;
}
-dontwarn jp.tjkapp.adfurikunsdk.moviereward.**
-dontwarn android.webkit.**

## Support for Adfurikun Movie Reward Unity
-keep interface com.unity3d.player.**
-keep class com.unity3d.player.**
-dontwarn com.unity3d.player.**

## Applovin
-keep interface com.applovin.sdk.**
-keep class com.applovin.** { *; }
-dontwarn com.applovin.**

## Maio
-keep class jp.maio.** { *; }
-keep interface jp.maio.** { *; }
-dontwarn jp.maio.**

##Five
-keep class com.five_corp.ad.** { *; }

## Afio
-keep class com.amoad.** { *; }
-keep interface com.amoad.** { *; }
-dontwarn com.amoad.**

# AdMob
-keep class com.google.ads.** { *; }
-keep class com.google.android.gms.ads.** { *; }

# Google Android Advertising ID
-keep class com.google.android.gms.internal.** { *; }
-keep class com.google.android.gms.common.GooglePlayServicesUtil { *; }
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient { *; }
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info { *; }
-dontwarn com.google.android.gms.ads.identifier.**

# Pangle
-keep class com.bytedance.sdk.** { *; }
-keep class com.pgl.sys.ces.* {*;}

6. アドフリくんの初期化

Applicationを継承したクラスのonCreate内でAdfurikunSdk.init(context:)を呼び出します。

class SampleApplication : Application() {
    override fun onCreate() {
        super.onCreate()
        AdfurikunSdk.init(this) //アドフリくんの初期化
    }
}

Warning

上記の実装を行わなかった場合、アプリがバックグラウンド状態でも広告の読み込みが行われる事があります。
そうなった場合、通信量や端末への負荷が増大してしまいます。
必ず上記の実装をお願いいたします。

付録

A. minSdkVersion / compileSdkVersionの設定

  • minSdkVersion(またはminSdk)は、アプリがサポートする最小限のAndroid OSバージョンを指定します。
    詳しくはAndroid公式ドキュメントをご参考にしてください。

  • compileSdkVersion(またはcompileSdk)は、
    アプリのコンパイル時に使用するAndroid SDKのバージョンを指定します。
    通常は最新バージョンを使用することが推奨されます。

⚠️ **GitHub.com Fallback** ⚠️