Android ガイドライン |

Android SDKのインテグレーションの基本操作

以下に従ってください。

InMobi SDKの最新バージョンはAndroid OS バージョン4.0.3 (APIレベル15)以降をサポートします。

バージョン 7.2.0
サイズ(.APK Inflation) 370 KB
SDKリンク

プロジェクトへの SDK の追加

メソッド 1: jCenter経由で最新のSDKを取得します。

Gradleを使用してAndroidアプリケーションを構築している場合は、jCenterからSDKの最新バージョンを取得できます。

以下の手順に従ってください。

  1. 以下の記述をトップレベルの build.gradleファイルにインクルードします。
    allprojects {
        repositories {
            jcenter()
        }
    }
    			
  2. 以下の行をアプリケーションモジュールのbuild.gradle内の依存エレメントに追加します。
    compile 'com.inmobi.monetization:inmobi-ads:6.X.X'
    			
  3. Gradleプロジェクトを同期します。

メソッド 2:アプリケーションプロジェクトへの SDKライブラリの追加

InMobiのSDKの最新バージョンを ここからダウンロードして、そのライブラリをお客様のアプリケーションモジュールのlibs/ ディレクトリにコピーすることができます。

ライブラリをプロジェクトの依存設定に追加するには、以下の行を build.gradleファイルのdependenciesに追加する必要があります。

compile fileTree(dir: 'libs', include: ['*.jar'])
		

依存性の追加および確認

InMobi広告SDKで収益化するには、以下の依存設定を追加する必要があります。

  • Google Play Services

    Android用のInMobi SDKには、Google Play Advertising IDを介して効果的に広告を配信できるようにGoogle Play Servicesライブラリが必要です。また、ユーザーがロケーション情報を収集することに同意した場合に、Google Play Servicesを使用しロケーション情報を取得します。

    Google Play Servicesクライアントライブラリをお客様のアプリケーションに追加するには、以下の手順に従います。

    1. 以下の行をアプリケーションモジュールのdependenciesに追加します。
          compile 'com.google.android.gms:play-services-base:11.8.0'    
          compile 'com.google.android.gms:play-services-ads:11.8.0'
          compile 'com.google.android.gms:play-services-location:11.8.0'
          compile 'com.google.android.gms:play-services-plus:11.8.0'
      				
    2. Gradleプロジェクトを同期して、依存設定がインクルードされていることを確認します。
    3. マニフェストファイルに以下を追加します。
      <meta-data android:name="com.google.android.gms.version"
      android:value="@integer/google_play_services_version" />
      				
  • Picasso

    Android向けのInMobi SDKでは、広告アセットをロードするためにPicassoライブラリを使用します。

    アプリケーションにPicassoライブラリを追加するには以下の手順に従います。

    1. Gradle build スクリプト内で以下の行をアプリケーションモジュールのdependenciesに追加します。
      compile 'com.squareup.picasso:picasso:2.5.2'
      				
    2. Gradleプロジェクトを同期して、依存設定がインクルードされていることを確認します。

      注意: Picasso ライブラリが正しく追加されていないと、インタースティシャル広告のリクエストが失敗し、お客様のアプリでの収益化に影響が及びます。

  • サポートライブラリ

    ネイティブストーリーボード広告フォーマットについては、 support-v4ライブラリを追加する必要があります。

    Gradle build スクリプト内で以下の行をアプリケーションモジュールのdependenciesに追加します。

    compile 'com.android.support:support-v4:27.1.0'
    			
  • RecyclerView

    画像や広告のデッキのフルスクロールをサポートするには、 RecyclerViewを使用する必要があります。

    これを実行するには、Gradle構築スクリプト内で以下の行をアプリケーションモジュールの依存エレメントに追加します。

    compile 'com.android.support:recyclerview-v7:27.1.0'
    			

    注意: RecyclerView が正しく追加されていないと、インタースティシャル広告のリクエストが失敗し、お客様のアプリでの収益化に影響が及びます。

  • その他

    InMobi SDKを実装することにより、アプリのメソッド数の上限(64K)を超えることもあるかと思います。特に、お客様のアプリがユーザに対し様々な機能を提供するために既に大量のコードを実装している様なケースです。そういった場合はmultidexサポートライブラリを使用してアプリを正しく構築できます。

    以下の手順を実行します。

    1. defaultConfigを修正して、お客様のアプリケーションのmultidexを有効化します。
      defaultConfig {
      applicationId "com.inmobi.samples"
      minSdkVersion 15
      targetSdkVersion 24
      versionCode 1
      versionName "1.0.0"
      multiDexEnabled true // add this to enable multi-dex
      }
      				
    2. 以下の行をアプリケーションモジュールのbuildスクリプト内のdependenciesに追加します。
      compile 'com.android.support:multidex:1.0.1'
      				

マニフェストファイルの変更

パーミッションの追加

以下のパーミッションの追加は必須です。

注意: これらのパーミッションを追加していない場合、InMobiネットワーク上での広告配信が正しく機能せず、お客様のアプリケーションの収益化に影響を及ぼします。

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
		

上記のパーミッションに加えて、より効果的に広告が配信されるように ACCESS_COARSE_LOCATIONACCESS_FINE_LOCATION のどちらかをインクルードすることを強くお勧めします。必須ではありませんが、これをインクルードすることで広告配信対象の絞り込みの精度が上がります。

<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
		

広告配信対象の絞り込みを更に強化するために、マニフェストに ACCESS_WIFI_STATECHANGE_WIFI_STATE のパーミッションを追加することができます。

<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
		

リッチメディア広告を掲載する場合は、以下のパーミッションを追加します。

<uses-permission android:name="android.permission.READ_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_CALENDAR" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
		

アプリインストールの計測

強制アクセス許可:

アプリインストールの計測については、以下をマニフェストファイルに追加してください。

<receiver
     android:name="com.inmobi.commons.core.utilities.uid.ImIdShareBroadCastReceiver"
     android:enabled="true"
     android:exported="true"
     tools:ignore="ExportedReceiver">
          <intent-filter>
              <action android:name="com.inmobi.share.id"/>
          </intent-filter>
 </receiver>
		

ハードウェアアクセラレーション

ハードウェアアクセラレーションを使用すれば、HTML5動画広告を表示できるようになります。これを実行するには、 hardwareAccelerated:trueエレメントを applicationタグに追加します。

Proguardの設定

Proguardは未使用のsymbolを削除したり、最終的なアプリケーションフットプリントを小さくしたりするのに役立ちます。以下をお客様のアプリケーションのProguard設定ファイルに追加する必要があります。

-keepattributes SourceFile,LineNumberTable
-keep class com.inmobi.** { *; }
-dontwarn com.inmobi.**
-keep public class com.google.android.gms.**
-dontwarn com.google.android.gms.**
-dontwarn com.squareup.picasso.**
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient{
     public *;
}
-keep class com.google.android.gms.ads.identifier.AdvertisingIdClient$Info{
     public *;
}
# skip the Picasso library classes
-keep class com.squareup.picasso.** {*;}
-dontwarn com.squareup.picasso.**
-dontwarn com.squareup.okhttp.**
# skip Moat classes
-keep class com.moat.** {*;}
-dontwarn com.moat.**
# skip AVID classes
-keep class com.integralads.avid.library.* {*;}
		

Android P向けのアプリの準備

InMobi SDKは、Androidプラットフォームの最新バージョンであるAndroid P(APIレベル28)と互換性があります。 Android P以降のアプリケーションは、デフォルトでHTTPS経由で接続します。 InMobiはHTTPSの採用をサポートしていますが、現在の設定では、デマンドパートナーがHTTPSもサポートする必要があります。 サイト運営者は、収益の可能性に影響を与える場合、設定をHTTPに変更できます。

お客様のアプリが APIレベル24以上を対象としている場合は、以下のように InMobiAdActivityを宣言します。

<activity
    android:name="com.inmobi.rendering.InMobiAdActivity"
    android:configChanges="keyboardHidden|orientation|keyboard|smallestScreenSize|screenSize|screenLayout"
    android:hardwareAccelerated="true"
    android:resizeableActivity="false"
    android:theme="@android:style/Theme.NoTitleBar"
    tools:ignore="UnusedAttribute" />
		

android:resizeableActivity=”false”属性とscreenLayout 用のこのアクティビティの設定が変わることに注意してください。

SDK の初期化

  1. Activityコンテキストとお客様のInMobiアカウントIDを渡すことにより、起動時のアクティビティでSDKを初期化します。
                JSONObject consentObject = new JSONObject();
    try {
       // Provide correct consent value to sdk which is obtained by User
       consentObject.put(InMobiSdk.IM_GDPR_CONSENT_AVAILABLE, true);
      // Provide 0 if GDPR is not applicable and 1 if applicable 
       consentObject.put("gdpr", "0");
    } catch (JSONException e) {
       e.printStackTrace();
    }
    InMobiSdk.init(this, "Insert InMobi Account ID here", consentObject);
    			
    1. consentObject - consentObjectは、パブリッシャーがSDKに提供するすべての同意の辞書的表現です。EEA地域からのトラフィックを収益化する場合はキーは必須です。InMobiは、規制を遵守するためのユーザーからの同意の取得についてはパブリッシャに依存しています。こちらでGDPR規制の詳細についてご覧ください。
      Key Type Inference
      gdpr_consent_available boolean "true":パブリッシャーはユーザーのデータを収集して使用することに同意しました。

      "false" :パブリッシャーはユーザーのデータを収集して使用することに同意しませんでした。

      "true" および "false" 以外の値は無効であり、パブリッシャが提供しない値、つまり空の値として扱われます。

      gdpr Number 要求がGDPR規制の対象であるかどうかの確認。次の値セットからの偏差、0 = No および 1 = Yes は、未知のエンティティを示します。

      The key gdpr_consent_available can be accessed via string constant IM_GDPR_CONSENT_AVAILABLE

      Important

      1. consentObjectは、すべてのセッションで提供される必要があります。SDKはconsentを保持せず、consentObjectをメモリ内に保持するのみです。アプリが再起動またはクラッシュすると、SDKはconsentObjectを失います。.
      2. Within a session, you can update the consent like this:
        InMobiSdk.updateGDPRConsent(JSONObject consentObject)
        					
      3. General Data Protection Regulation (GDPR)の一部として、アプリでデータを収集するパブリッシャーは、European Economic Area(「EEA」)のユーザーの個人情報を収集し処理するための法的根拠を持つ必要があります。ヨーロッパのInMobiへ広告リクエストを行う前に、ユーザーから適切な同意を得て、推奨されるSDK実装に従って同様のことを示してください。ヨーロッパでそのようなユーザーからのユーザーの同意がない場合、ユーザーの人口統計情報を渡さないでください。
    2. 下の画像のように、アカウントのインターフェースからアカウントIDを探してください

    注意: このメソッドはUIスレッド上で呼び出す必要があります。そうしないと初期化に失敗して、お客様のアプリケーションがInMobiで収益化できなくなります。

  2. ロケーションシグナルを渡して、広告配信対象の絞り込みの精度を上げます。

    推奨: お客様のアプリが位置情報を取得している場合、その位置情報を広告リクエストに含めることを主衣装します。位置情報を利用した広告配信はより高額の収益化に繋がります。アプリで位置情報を収集している場合、InMobi SDKが自動的にその情報を広告リクエストに含めます。もしお客様のアプリで位置情報を収集しいても、InMobi に共有し広告に利用したくない様でしたら、管理画面のProperty の設定より、“Location Automation”をOFFにすることによって位置情報をInMobiに共有しない設定が可能です。

    以下のAndroidフレームワークからお客様のアプリケーションが取得した Locationオブジェクトを受け渡しできます。

    InMobiSdk.setLocation(locationObj);
    			

    同様に、以下で市、州、国をの情報を設定することができます。

    InMobiSdk.setLocationWithCityStateCountry("city", "state", "country");
    			
  3. ユーザの属性情報を渡して、広告配信対象の絞り込みの精度をあげます。

    InMobi SDKを介して性別の情報を利用できます 年齢。

    InMobiSdk.setGender(InMobiSdk.Gender.MALE); // or InMobiSdk.Gender.FEMALE
        InMobiSdk.setAge(age); 
        InMobiSdk.setAgeGroup(InMobiSdk.AgeGroup.BELOW_18); 
    // other enums: BETWEEN_18_AND_24, BETWEEN_25_AND_29, BETWEEN_30_AND_34 
    // BETWEEN_35_AND_44, BETWEEN_45_AND_54, BETWEEN_55_AND_65, ABOVE_55
    			

これらの広告フォーマットでお客様のAndroidアプリの収益化を始めましょう。