Android SDK 実装

Before you start ironSource は Android オペレーティングシステムバージョン 4.1( API レベル 16 )以降をサポートしています。

ironSource SDK 7.6.0 の時点でサポートされている Kotlin の最低バージョンは 1.7.0 です。

SDK のダウンロード、使用、およびアクセスには、ironSource Mobile SDK Publisher のオンライン利用規約が適用されます。ironSource Mobile SDK Publisher のオンライン利用規約に同意しない場合は、SDK または基盤となるサービスをダウンロード、アクセス、または使用しないでください。

ステップ 1. プロジェクトに ironSource SDK を追加する

Important! Target SDK レベル 30 を使用してアプリを構築している場合は、必ず ironSource SDK バージョン 6.18.0 以降を使用してください。

ironSource SDK バージョン 6.16.0 以降は、ironSource SDK は AAR としてリリースされています

以下の情報に従って、依存関係セクションを更新してください。

Manifest Activities が AAR に含まれていることに注意してください。

ironSource SDK は、実装のために Gradle dependencies と手動ダウンロードメカニズムの両方をサポートしています:

Gradle

  1. アプリの build.gradle ファイル内のリポジトリセクションに以下を追加します:
    repositories {
        maven {
            url 'https://android-sdk.is.com/'
       }
    }
  2. 次に、dependencies セクションに以下を追加します:
    ironSource SDK バージョン 6.16.0 以降、ironSource SDK は AAR としてリリースされていることに注意してください。

    dependencies {
    implementation ‘com.ironsource.sdk:mediationsdk:7.8.0’
    // ironSource Ad Quality SDK
    implementation ‘com.ironsource:adqualitysdk:7.16.0’
    }

    Ad Quality をプロジェクトからオプトアウトするには、Ad Quality SDK の依存関係を dependencies セクションから削除してください。

Gradle バージョン 7 以降

Gradle バージョン 7 以降を使用している場合は、build.gradle ではなく、settings.gradle ファイルのリポジトリセクションを更新します。リポジトリ セクションは、dependencyResolutionManagement セクションの一部として含める必要があることに注意してください:

dependencyResolutionManagement {
    repositories {
        maven {
            url 'https://android-sdk.is.com/' 
         }
    }
}

SDK ダウンロード

  1. Download Android SDK Version 7.9.0
  2. Download Ad Quality SDK
  3. AAR ファイルをライブラリプロジェクトとしてインポートします。
  4. Android Studio を使用している場合は、ironSource .AAR ファイルをダウンロードし、依存関係として独自のモジュールに追加します。
  5. FileNewNew ModuleImport .AAR に移動し、ironSource.AAR ファイルがダウンロードされた場所を指定します。
  6. 注:ironSource Manifest Activities は AAR に含まれています。
  7. build.gradle ファイルの dependencies セクションに以下を追加してください。
    implementation(name: 'mediationsdk-7.8.0', ext:'aar')
    implementation(name: 'IronSourceAdQuality-v7.16.0', ext:'aar')
  8. ironSource SDK 7.0.4 以降では、Kotlin JAR をプロジェクトに追加する必要があります。 Kotlin のサポートについて詳しくは、こちらをご覧ください。
  9. オプション:手動 JAR 実装

    プロジェクトで mediationsdk_xxx.jarIronSourceAdQuality_xxx.jar を使用している場合でも、同じ構成を使用できます。

    1. 新しい mediationsdk-xxx.aar の名前を mediationsdk-xxx.zip へ変更します
    2. 新しい IronSourceAdQuality-xxx.jar の名前を IronSourceAdQuality-xxx.zip へ変更します
    3. Classes.jar を抽出します
    4. 名前を mediationsdk_xxx.jar に変更します
    5. AndroidManifext.xml を更新します

    手動 JAR 実装のために AndroidManifest.xml を更新する

    AndroidManifest.xml を更新するには、次の手順を実行してください:

      1. Manifest Permissions
        AndroidManifest.xml ファイルにマニフェストタグ内で <application> タグ外に次の権限を追加します:
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
      2. Manifest Activities and Provider
        AndroidManifest<application> タグ内に次のアクティビティを追加します:
        <activity
            android:name="com.ironsource.sdk.controller.ControllerActivity"
            android:configChanges="orientation|screenSize"
            android:hardwareAccelerated="true" />
        <activity
            android:name="com.ironsource.sdk.controller.InterstitialActivity"
            android:configChanges="orientation|screenSize"
            android:hardwareAccelerated="true"
            android:theme="@android:style/Theme.Translucent" />
        <activity
            android:name="com.ironsource.sdk.controller.OpenUrlActivity"
            android:configChanges="orientation|screenSize"
            android:hardwareAccelerated="true"
            android:theme="@android:style/Theme.Translucent" />
        <provider
            android:authorities="${applicationId}.IronsourceLifecycleProvider"
            android:name="com.ironsource.lifecycle.IronsourceLifecycleProvider" />

    デモアプリケーション

    実装デモアプリケーションは、LevelPlay Mediation をアプリに実装する方法を示しています。

    Download Android Demo Application

    ステップ 2. Google ID パーミッション

    1. Play Services の依存関係を dependencies ブロックに追加して、GAID と App Set 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.0.1' 
          implementation 'com.google.android.gms:play-services-basement:18.1.0' 
      }

      App Set IDについての詳細はこちら

    2. ターゲット API レベルを 33( Android 13 )に更新するアプリは、次のようにマニフェストファイルで Google Play サービスの通常のアクセス許可を宣言する必要があります:
      <uses-permission android:name="com.google.android.gms.permission.AD_ID"/>

      Google Advertising ID についての詳細はこちら

    Amazon デバイスは Google Play Services を利用していません。 Amazon プラットフォーム用にビルドする場合は上記の手順をスキップしてください。

    ステップ 3. アクティビティライフサイクルメソッドをオーバーライドする

    Application Lifecycle
    各アクティビティの onPause()onResume() メソッドをオーバーライドして、対応する ironSource メソッドを次のように呼びます

    protected void onResume() {
        super.onResume();
        IronSource.onResume(this);
    }
    protected void onPause() {
        super.onPause();
        IronSource.onPause(this);
    }

    ステップ 4. リスナーを設定する

    ironSource SDK は、広告ユニットのアクティビティを通知するためにいくつかのイベントを発火します。これらのイベントを受信するには、LevelPlay プラットフォームで設定した広告ユニットのリスナーを登録します。

    情報の損失を防ぐために、リスナーは必ずSDKを初期化する前に設定してください。

      • 動画リワード
        IronSource.setLevelPlayRewardedVideoListener(mLevelPlayRewardedVideoListener);
      • インタースティシャル
        IronSource.setLevelPlayInterstitialListener(mLevelPlayInterstitialListener);
      • バナー
        mBannerLayout.setLevelPlayBannerListener(mLevelPlayBannerListener);

      ステップ 5. SDK を初期化する

      Important! ironSource は、SDK を初期化する前に設定する必要がある UserID や Segments などのオプションをサポートしています。セットアップ手順については、SDK の「詳細設定に関するガイド」をご覧ください。
      オファーウォール広告ユニットを配信している場合、サーバー間コールバックを使用してユーザーにリワード広告ユニットのリワードを提供している場合、または Ad Quality User Journey を使用している場合は、UserID を設定する必要があります。

      SDK を初期化する

      SDK は二つの方法で初期化できます:

      1. adUnits パラメータで指定した特定の広告ユニットを取得するため、この方法をお勧めします。広告ユニットは文字列配列です。
        /**
         * Ad Units should be in the type of IronSource.Ad_Unit.AdUnitName, example 
         */
        IronSource.init(this, appKey, IronSource.AD_UNIT.INTERSTITIAL, IronSource.AD_UNIT.REWARDED_VIDEO, IronSource.AD_UNIT.BANNER);

        この初期化アプローチを使用すると、一つのセッションでアプリフローのさまざまなタッチポイントで各広告ユニットを個別に初期化できるようになります。

        // Rewarded Video
        IronSource.init(this, appKey, IronSource.AD_UNIT.REWARDED_VIDEO);
        // Init Interstitial 
        IronSource.init(this, appKey, IronSource.AD_UNIT.INTERSTITIAL); 
        // Init Banner
        IronSource.init(this, appKey,IronSource.AD_UNIT.BANNER);
      2. または、以下の様に SDK を初期化すると、SDK は LevelPlay プラットフォームで設定した広告ユニットを初期化します:
        IronSource.init(this, appKey);

      初期化完了コールバック

      ironSource SDK 7.2.1 以降は ironSource SDK が正常に初期化されたことを通知するコールバックを発火します。このリスナーは、初期化プロセスが完了したことを示し、広告の読み込みを開始できます。コールバックはセッションごとに1 回送信され、SDK の最初の初期化を示します。

      IronSource.init(this, APP_KEY, new InitializationListener() {
         @Override
         public void onInitializationComplete() {
           // ironSource SDK is initialized  
         }
      });
      
      IronSource.init(this, APP_KEY) {
         // ironSource SDK is initialized 
      }
      

      ProGuard ユーザーのみ

      ironSource 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 *; }
      -keep public class 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 {
          static *;
      }
      -keep public interface com.amazon.device.ads** {*; }
      #For AppLovin integration
      -keepclassmembers class com.applovin.sdk.AppLovinSdk {
          static *;
      }
      -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 {
          static *;
      }
      -keepclassmembers class com.facebook.ads.internal.settings.AdSdkVersion {
          static *;
       }
      -keepclassmembers class com.facebook.ads.BuildConfig {
          static *;
       }
      -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 {
          static *;
      }
      -keepclassmembers class com.hyprmx.android.BuildConfig {
          static *;
      }
      -keep public interface com.hyprmx.android.sdk.activity** {*; }
      -keep public interface com.hyprmx.android.sdk.graphics** {*; }
      # 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
      -keep public interface com.ironsource.mediationsdk.sdk** {*; }
      -keep public interface com.ironsource.mediationsdk.impressionData.ImpressionDataListener {*; }
      #For Maio integration
      -keep public interface jp.maio.sdk.android.MaioAdsListenerInterface {*; }
      # 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
      -keep public interface com.tapjoy.** {*; }
      # 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 {
          static *;
      }
      -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

      ステップ 6. 実装を確認する

      ironSource SDK は、動画リワードメディエーションの実装が正常に完了したことを確認する簡単な方法を提供しています。ironSource SDK の実装と、実装した追加のアドネットワークを確認するには、次のメソッドをプロジェクトに追加するだけです:

      IntegrationHelper.validateIntegration(activity);

      ironSource Integration Verification ツールの詳細については、こちらの記事をお読みください。

      完了!これで、ironSource SDK がアプリに実装されました
      これで、ironSource の広告ユニットとメディエーションツールの使用を開始する準備が整いました。


      次のステップは?
      1. 実装ガイドに従って、広告ユニットを実装します:
        動画リワード
        インタースティシャル
        バナーメディエーション
      2. メディエーションに興味がありますか?こちらのメディエーションの記事に従って動画リワード、インタースティシャル、またはバナー広告をアプリに実装してください。
      3. Integration Helper を使用して実装を確認します。