Skip to content

SDKの組み込み

ren.fujii edited this page Mar 4, 2024 · 12 revisions

AdfurikunSDK 導入方法(Android)

ファイル名やバージョン番号などが例です、実際のバージョンとファイルを設定してください。 'root'はアプリのルートフォルダーです

0. 事前準備

  • アドフリくん管理画面のダウンロードページから、アドフリくんAndroid SDKをダウンロードして下さい。
  • adfurikunSDK_Android_moviereward_x_y_z内のlibsフォルダーをアプリのroot/app直下に入れて下さい。

1. SDKの導入

root/app/build.gradleを設定する

AAR方式で導入する場合 (推奨)

x.y.zは実際のバージョンへ書き替えてください

//設定箇所root/app/build.gradle
dependencies {
    implementation files('libs/adfurikunMovieRewardSDK-x.y.z.aar')
}

Maven方式で導入する場合

x.y.zは実際のバージョンへ書き替えてください

//設定箇所root/build.gradle
allprojects {
    repositories {
        maven { url 'https://github.com/glossom-dev/AdfurikunSDK-Android/raw/master' }
    }
}

//設定箇所root/app/build.gradle
dependencies {
    implementation 'jp.adfully:adfurikunsdk:x.y.z'
}

2. AdNetworkの導入

「0. 事前準備」を行い、app内のlibsフォルダ内にadfurikunsdk-adnw-maven.gradleファイルがある事を確認して下さい。
build.gradleファイルに以下の記述を追加して下さい。

//設定箇所root/app/build.gradle
apply from: 'libs/adfurikunsdk-adnw-maven.gradle'
  • Maven以外の導入方法はアドフリくん側でサポートしておりません。各AdNetwork公式ドキュメントをご参照ください。
  • 上記のadfurikunsdk-adnw-maven.gradleファイルの内容をapplyせずに、直接build.gradleにコピー&ペーストしても問題ありません。
  • 使わないAdNetworkは各gradleファイルからコメントアウトをお願いします。

3. AndroidX Support Libraryの導入

「0. 事前準備」を行い、app内のlibsフォルダ内にadfurikunsdk-support-androidx.gradleファイルがある事を確認して下さい。
build.gradleファイルに以下の記述を追加して下さい。

//設定箇所root/app/build.gradle
apply from: 'libs/adfurikunsdk-support-androidx.gradle'

Dependency Treeを出力するコマンド

./gradlew app:dependencies
  • AdfurikunSDKはKotlin言語を使っている為、kotlin-stdlibに依存します、アプリのkotlin-stdlibバージョンは、gradleファイルに記載しているバージョンと同じかそれ以上にする必要があります。アプリ側はJava言語を使ってる場合はそのままのkotlin-stdlibバージョンで問題ありません。

  • サポートライブラリーのバージョンについて、アプリ使っている他のサポートライブラリーのバージョンは、 gradleファイルに記載しているバージョンと同じかそれ以上にする必要があります。

4. AndroidManifest.xmlの設定

5. ProGuardの設定

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

ProGuard内容
-dontskipnonpubliclibraryclassmembers

-keep public class * extends android.app.Activity
-keep public class * extends android.app.Application
-keep public class * extends android.app.Service
-keep public class * extends android.content.BroadcastReceiver
-keep public class * extends android.content.ContentProvider
-keep public class * extends android.app.backup.BackupAgentHelper
-keep public class * extends android.preference.Preference

-keepattributes SourceFile,LineNumberTable
-keepattributes Signature

# Needed to keep generic types and @Key annotations accessed via reflection
-keepattributes Signature,RuntimeVisibleAnnotations,AnnotationDefault

-keepclassmembers class * {
  @com.google.api.client.util.Key <fields>;
}

# Needed by google-http-client-android when linking against an older platform version

-dontwarn com.google.api.client.extensions.android.**

# Needed by google-api-client-android when linking against an older platform version

-dontwarn com.google.api.client.googleapis.extensions.android.**

# Needed by google-play-services when linking against an older platform version
# -dontwarn com.google.android.gms.**

# com.google.client.util.IOUtils references java.nio.file.Files when on Java 7+
-dontnote java.nio.file.Files, java.nio.file.Path

# Suppress notes on LicensingServices
-dontnote **.ILicensingService

# <!-- 動画リワード 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.**
-dontnote

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

## Adcolony
-keep class com.adcolony.sdk.** {*;}
-keepclassmembers class * {
    @android.webkit.JavascriptInterface <methods>;
}
 # targetSdkVersionが24以下の設定にしている場合は、以下の記述が必要です。
-dontwarn android.app.Activity

## UnityAds
## AARに含まれます。

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

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

## nend
-keep class net.nend.android.** { *; }
-dontwarn net.nend.android.**

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

# Vungle
-keep class com.vungle.warren.** { *; }

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

# Google Android Advertising ID
-keep class com.google.android.gms.internal.** { *; }
-dontwarn com.google.android.gms.ads.identifier.**
-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 { *; }

# 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) //アドフリくんの初期化
    }
}
  • この実装を行わない場合、アプリがバックグラウンド状態でも広告の読み込みが行われる事があります。通信量や端末への負荷が増えるので実装追加をお願いします。
  • 特に、広告枠のロードモードが「自動」の場合は、常時広告の読み込みが行われるので必ず実装をお願いします。

SDK検証

SDK導入後、テストモードにてSDKが正常に導入されているかを、下記手順にてチェックすることができます

1, AndroidManifest.xmlのテストモード設定をtrueにします

<!-- アドフリくんデバッグログ -->
<meta-data
    android:name="adfurikun_test"
    android:value="true" />

2, SDKを初期化する(詳しくは”実装方法”をご参考に)

AdfurikunSdk.init()
//或いは
mReward = new AdfurikunMovieReward()

3, アプリを実行してログを確認します

******** AdfurikunAdNetworkChecker start ********
******** AdfurikunAdNetworkChecker finish ********

4, アプリで使用するAdNetworkの「Result」の個所の「Adapter」、「Activity」、「MetaData」、「Permission」 が全てOKになっていることをご確認ください。

*** Result ***
Adapter:OK
Activity:OK
MetaData:OK
Permission:OK

NGの場合は、下記をご確認ください。

項目 対応方法
Adapter 該当AdNetworkを配置します
Activity Activitesの項目に必須なActivityが表示されます
--MISSINGとなっているActivityをAndroidManifest.xmlに追加してください
MetaData MetaDataの項目に必須なMetaDataが表示されます
--MISSINGとなっているMetaDataをAndroidManifest.xmlに追加してください
Permission Permissionの項目に必須なPermissionが表示されます
--MISSINGとなっているPermissionをAndroidManifest.xml追加してください

*アドフリくんで使用できる全てのアドネットワークの検証がされます。 アプリでご使用されないアドネットワークの結果がNGでも問題ございません。

付録

A. AARからJARファイルを取得

  • aarファイルの拡張子を".zip"に変更し、解凍します
  • classes.jarファイルを"adfurikunsdk-x.y.z.jar"にリネーム
  • AndroidManifest.xmlの内容をご自分のプロジェクト設定にコピー
  • proguard.txtの内容をご自分のプロジェクト設定にコピー
  • resフォルダーに画像など有れば、ご自分のプロジェクトresフォルダーにコピー

B. 64Kを超えるメソット数に逹した時の設定

  • AdfurikunSDK1.13.0以降、64Kを超えるメソッド数に逹し、minSdkVersionが21以下の場合MultiDexの設定が必要です。詳しくはAndroid公式ドキュメント をご参考下さい。

C. minSdkVersion / compileSdkVersionの設定

AdfurikunSDK Android について

SDKの組み込み

広告SDKの実装

その他

トラブルシューティング

Clone this wiki locally