Android SDKインテグレーション
Gradle または手動ダウンロードを使用して LevelPlay Android SDK を統合し、アプリケーションライフサイクル、権限、広告単位リスナーを設定します。
読み終わるまでの所要時間 15 分最終更新 6日前
前提条件
- Android Operating Systems Version 4.4 (API レベル 19) 以降をサポートします。
- サポートされている Kotlin の最小バージョンは 1.7.0 です。
ステップ 1. LevelPlay SDK をプロジェクトに追加する
LevelPlay SDK は、Gradle の依存関係と SDK を統合するための手動ダウンロードメカニズムの両方をサポートしています。
Gradle
-
アプリケーションの build.gradle ファイル inside repositories セクションに、以下のコードを追加します。repositories { mavenCentral()}
-
dependencies セクションに以下のコードを追加します。
dependencies { implementation 'com.unity3d.ads-mediation:mediation-sdk:9.5.0'}
Gradle バージョン 7 以降
Gradle バージョン 7 以降を使用している場合は、ビルド.gradle ではなく settings.gradle ファイルのリポジトリセクションを更新します。リポジトリ セクションは dependencyResolutionManagement セクションの一部として含める必要があります。
repositories { mavenCentral()}
手動ダウンロード
- Android SDK バージョン 9.5.0 のダウンロード
- .AAR ファイルをライブラリプロジェクトとしてインポートします。
- Android Studio を使用している場合は、.AAR ファイルをダウンロードし、独自のモジュールに依存関係として追加します。
- [File]> [New]> [New Module]> [Import .AAR] の順に選択し、.AAR ファイルがダウンロードされている場所に移動します。
- ノート:マニフェストアクティビティーは AAR に含まれています。
- dependencies セクションの下の build.gradle ファイルに以下を追加することを確認します
implementation(name: 'mediation-sdk-9.5.0', ext:'aar')
- LevelPlay SDK 7.0.4 以降では、Kotlin JAR をプロジェクトに追加する必要があります。Kotlinサポートの詳細については、こちらを参照してください。
任意: 手動 JAR インテグレーション
プロジェクトで mediation-sdk-xxx.jar と adquality-sdk-xxx.jar を使用している場合も、同じ設定を使用できます。
- 新しい mediation-sdk-xxx.aar の名前を mediation-sdk-xxx.zip に変更します。
- 新しい adquality-sdk-xxx.jar の名前を adquality-sdk-xxx.zip に変更します。
- classes.jar の抽出
- 名前を mediation-sdk-xxx.jar と adquality-sdk-xxx.jar に変更します。
- AndroidManifest.xml 更新
Update AndroidManifest.xml for Manual JAR Integration
AndroidManifest.xml を更新するには、以下の手順を実行します。
1.マニフェスト権限
以下の権限を AndroidManifest.xml ファイルのマニフェストタグ内、ただし タグ外に追加します。**
<application><uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
-
マニフェストアクティビティーとプロバイダー AndroidManifest のタグ内にこのセクションを追加します。
<application><activity android:name="com.ironsource.sdk.controller.ControllerActivity" android:configChanges="orientation|screenSize" android:hardwareAccelerated="true" android:theme="@android:style/Theme.NoTitleBar" /> <activity android:name="com.ironsource.sdk.controller.InterstitialActivity" android:configChanges="orientation|screenSize" android:hardwareAccelerated="true" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.ironsource.sdk.controller.OpenUrlActivity" android:configChanges="orientation|screenSize" android:hardwareAccelerated="true" android:theme="@android:style/Theme.Translucent.NoTitleBar" /> <activity android:name="com.ironsource.mediationsdk.testSuite.TestSuiteActivity" android:configChanges="orientation|screenSize" android:hardwareAccelerated="true" android:theme="@android:style/Theme.NoTitleBar" /> <プロバイダー android:name="com.ironsource.lifecycle.IronsourceLifecycleProvider" android:authorities="${applicationId}.IronsourceLifecycleProvider" />
アプリケーション
インテグレーション Demo アプリケーションは、LevelPlay Mediation をアプリケーションに統合する方法を示しています。
ステップ 2. Google 識別子の権限
-
再生サービスの依存関係を dependencies ブロックに追加して、GAID とアプリケーションセット ID 情報を取得できるようにします。dependencies { implementation fileTree(dir: 'libs', include: ['*.jar']) implementation 'com.google.android.gms:play-services-appset:16.0.0' implementation 'com.google.android.gms:play-services-ads-identifier:18.1.0' implementation 'com.google.android.gms:play-services-basement:18.1.0' }Googleのアプリケーション セットIDの詳細については、こちらを参照してください。
-
ターゲット API レベルを 33 (Android 13) に更新するアプリケーションは、マニフェストファイルで次のように Google 再生サービスの法線権限を宣言する必要があります。<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>Google Advertising ID の変更については、こちらを参照してください。
ステップ 3. SDK を初期化する
LevelPlay SDK を初期化するには、以下の手順に従います。
- 初期化の成功と失敗のコールバックを実装します。
- 必要に応じて appKey とユーザー ID を使用して LevelPlay init API を呼び出します。
LevelPlayInitRequest initRequest = new LevelPlayInitRequest.Builder(appKey) .withUserId("UserID") .build();LevelPlayInitListener initListener = new LevelPlayInitListener() { @Override public void onInitFailed(@NonNull LevelPlayInitError error) { //Recommended to initialize again } @Override public void onInitSuccess(LevelPlayConfiguration configuration) { //Create ad objects and load ads }};LevelPlay.init(context, initRequest, initListener);
LevelPlay Init リスナー
OnInitSuccess – 初期化が正常に完了したときにトリガーされます。この通知を受け取ったら、広告を作成してロードできます。
OnInitFailed – 設定が正常に取得されず、広告をロードできません。後で LevelPlay SDK を初期化してみることをお勧めします (インターネット接続が利用可能なとき、または失敗の理由が解決されたとき)。
ProGuard ユーザーのみ
LevelPlay SDK で ProGuard を使用している場合は、ProGuard ファイルに以下のコードを追加する必要があります (Android Studio: proguard-rules.Pro または Eclipse: proguard-project.txt)。
-keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *;}#noinspection ShrinkerUnresolvedReference#unity-keep class com.google.android.gms.ads.** {public *;}-keep class com.google.android.gms.appset.** { *; }-keep class com.google.android.gms.tasks.** { *; }#adapters-keep class com.ironsource.adapters.** { *; }#sdk-dontwarn com.ironsource.**-dontwarn com.ironsource.adapters.**-keepclassmembers class com.ironsource.** { public *; }-public クラス com.Ironsource を保持します。**-keep class com.ironsource.adapters.** { *;}#omid-dontwarn com.iab.omid.**-keep class com.iab.omid.** {*;}#javascript-keepattributes JavascriptInterface-keepclassmembers class * { @android.webkit.JavascriptInterface <methods>; }#For AmazonAps integration-keep class com.amazon.device.ads.DtbThreadService { 静的 *;}-keep public interface com.amazon.device.ads** {*; }#For AppLovin integration-keepclassmembers class com.applovin.sdk.AppLovinSdk { 静的 *;}-keep public interface com.applovin.sdk** {*; }-keep public interface com.applovin.adview** {*; }-keep public interface com.applovin.mediation** {*; }-keep public interface com.applovin.communicator** {*; }#For Bytedance integration-keep public interface com.bytedance.sdk.openadsdk** {*; }#For Facebook integration-keepclassmembers class com.facebook.ads.internal.AdSdkVersion { 静的 *;}-keepclassmembers class com.facebook.ads.internal.settings.AdSdkVersion { 静的 *; }-keepclassmembers class com.facebook.ads.BuildConfig { 静的 *; }-keep public interface com.facebook.ads** {*; }#For Fairbid-keep public interface com.fyber.fairbid.ads.interstitial** {*; }-keep public interface com.fyber.fairbid.ads.rewarded** {*; }-keep class com.fyber.offerwall.*#For Fivead-keep public interface com.five_corp.ad** {*; }#For Fyber(Inneractive) integration-keep public interface com.fyber.inneractive.sdk.external** {*; }-keep public interface com.fyber.inneractive.sdk.activities** {*; }-keep public interface com.fyber.inneractive.sdk.ui** {*; }#For HyprMX integration-keepclassmembers class com.hyprmx.android.sdk.utility.HyprMXProperties { 静的 *;}-keepclassmembers class com.hyprmx.android.BuildConfig { 静的 *;}-keep public interface com.hyprmx.android.sdk.activity** {*; }-keep public interface com.hyprmx.android.sdk.graphics** {*; }# For Inmobi integration##for-inmobi-integration-keep class com.inmobi.*-keep public interface com.inmobi.ads.listeners** {*; }-keep public interface com.inmobi.ads.InMobiInterstitial** {*; }-keep public interface com.inmobi.ads.InMobiBanner** {*; }# For ironSource integration##for-ironsource-integration-keep public interface com.ironsource.mediationsdk.sdk** {*; }-keep public interface com.ironsource.mediationsdk.impressionData.ImpressionDataListener {*; }# For Mintergral integration##for-mintergral-integration-keep public interface com.mbridge.msdk.out** {*; }-keep public interface com.mbridge.msdk.videocommon.listener** {*; }-keep public interface com.mbridge.msdk.interstitialvideo.out** {*; }-keep public interface com.mintegral.msdk.out** {*; }-keep public interface com.mintegral.msdk.videocommon.listener** {*; }-keep public interface com.mintegral.msdk.interstitialvideo.out** {*; }#For MyTarget integration-keep class com.my.target.** {*;}#For Ogury integration-keep public interface io.presage.interstitial** {*; }-keep public interface io.presage.interstitial.PresageInterstitialCallback {*; }#For Pubnative integration-keep public interface net.pubnative.lite.sdk.interstitial.HyBidInterstitialAd** {*; }-keep public interface net.pubnative.lite.sdk.rewarded.HyBidRewardedAd** {*; }-keep public interface net.pubnative.lite.sdk.views.HyBidAdView** {*; }#For Smaato integration-keep public interface com.smaato.sdk.interstitial** {*; }-keep public interface com.smaato.sdk.video.vast** {*; }-keep public interface com.smaato.sdk.banner.widget** {*; }-keep public interface com.smaato.sdk.core.util** {*; }# For Tapjoy integration##for-tapjoy-integration-keep public interface com.tapjoy.** {*; }# For Tencent integration##for-tencent-integration-keep public interface com.qq.e.ads.interstitial2** {*; }-keep public interface com.qq.e.ads.interstitial3** {*; }-keep public interface com.qq.e.ads.rewardvideo** {*; }-keep public interface com.qq.e.ads.rewardvideo2** {*; }-keep public interface com.qq.e.ads.banner2** {*; }-keep public interface com.qq.e.comm.adevent** {*; }#For Verizon integration-keepclassmembers class com.verizon.ads.edition.BuildConfig { 静的 *;}-keep public interface com.verizon.ads.interstitialplacement** {*; }-keep public interface com.verizon.ads.inlineplacement** {*; }-keep public interface com.verizon.ads.vastcontroller** {*; }-keep public interface com.verizon.ads.webcontroller** {*; }#For Vungle integration-keep public interface com.vungle.warren.PlayAdCallback {*; }-keep public interface com.vungle.warren.ui.contract** {*; }-keep public interface com.vungle.warren.ui.view** {*; }#For AndroidX-keep class androidx.localbroadcastmanager.content.LocalBroadcastManager { *;}-keep class androidx.recyclerview.widget.RecyclerView { *;}-keep class androidx.recyclerview.widget.RecyclerView$OnScrollListener { *;}#For Android-keep class * extends android.app.Activity
ステップ 4. インテグレーションの確認
LevelPlay SDK は、LevelPlay インテグレーションテストスイートを使用してインテグレーションが正常に完了したことを簡単に検証する方法を提供します。アプリケーションのインテグレーションのテスト、プラットフォーム設定の確認、および設定されたネットワークに関連する広告のレビューを行います。
アプリケーションでテストスイートを有効にするには、初期化を設定する前に setMetaData API を呼び出します。
LevelPlay.setMetaData("is_test_suite", "enable");
メディエーションの初期化が正常に完了したら、以下のメソッドを呼び出してテストスイートを起動します (アプリケーションコンテキストが必要です)。
LevelPlay.launchTestSuite(context);
LevelPlay インテグレーションテストスイートの詳細と実装例については、この記事を操作してください。
次のステップ
- インテグレーション ガイドに従って広告フォーマットを実装
- 動画リワード広告、インタースティシャル広告、バナー広告をアプリケーションに統合します。メディエーションに関する記事を参照してください。
- インテグレーションテストスイートとのインテグレーションを確認します。