Android

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

ステップ 1:InMobi アカウントの作成

InMobi アカウントを設定するには以下の手順に従います。

  1. パブリッシャーの登録をします。

  2. お客様のアカウントの電子メール認証を完了してください。

ステップ 2:アプリケーションの登録

  1. [アプリを追加]をクリックして、次に以下に示すリンクをクリックします。
  2. お客様のアプリの名前を入力し、プラットフォーム(OS)を選択して次に進みます。
  3. 13年未満の子供に関するプロパティの諸条件を読み、該当する場合はそのチェックボックスをマークしてください。

    注意: ストア未登録等で、まだURLの準備ができていないアプリについては、デフォルトでテストモードが有効になっています。URLの準備が出来次第、以下に示す様に、リンクをクリックして、ダッシュボード上からURLを入力できます。
    これでアプリを収益化する準備が整いました。

ステップ 3:プレースメントIDの作成

プレースメントIDはAdMobの広告ユニットIDに該当するInMobiの用のIDです。例えば、InMobiネットワークを通じてバナー広告ユニットを収益化しようとすると、タイプ「バナー」のプレースメントIDを作成する必要があります。

失敗なく収益化を行うために、以下の表を参照してください。

AdMobの広告ユニットタイプ InMobiのプレースメントタイプ
バナー バナー広告
インタースティシャル インタースティシャル広告
動画リワード 動画リワード広告
ネイティブ ネイティブ広告
  1. 該当する広告フォーマットを選択してお客様の広告のプレースメントを定義します。

  2. さらに収益化するために、その広告ユニットの場所とアプリにおけるコンテキストに基づき、プレースメントにタグを付けます。

ステップ 4:支払い情報の入力

支払いプロファイルを作成して、確認し、アクティベーションを行って、実際にお客様が収益を得られるようにします。InMobi は、60日の支払いサイクルに従います。すなわち、1か月の収益が 60 日間の支払いサイクルの最終日に入金されることを意味します。PayPal か電信送金(銀行振込)経由で支払いを受け取ることができます。

電信送金(銀行振込)は、月末締め翌々月15日に円建てで振込みます。PayPalはUSドル建てで支払います。

支払条件の詳細については こちらをご参照ください。

ステップ 5:AdMobのダッシュボードで広告ソースとして InMobiを設定

  1. AdMobアカウントにログインします。
  2. InMobi SDKを介して収益化する特定の広告ユニットまで移動します。
  3. メディエーションの下で、広告ソース (AdMobとだけインテグレーションしている場合、広告ソースの数は1となります)まで移動します。[新しい広告ネットワーク] を選択して [InMobi] を広告ソースとして追加します。

  4. InMobiの[ネットワーク設定]ページで、お客様のInMobiアカウントIDとプレースメントIDを挿入します。

    以下のスクリーンショットで示されているように、お客様のアカウント ID は InMobi アカウントで確認できます。

    以下のスクリーンショットで示されているように、プレースメントIDはプレースメントセクションの下にあります。

  5. 広告ネットワークの最適化を設定します。自動eCPMを最適化するために、パブリッシャーは AdMob UI で InMobi のレポート API 資格情報を提供する必要があります。
    この機能に必要となるシークレット キーを生成する場合は、InMobi のサポートまでご連絡ください。

動画リワードの設定

動画リワードはAdMobかInMobiのダッシュボードのどちらかで設定できます。

InMobiのダッシュボードで設定するには、先ずAdMobのダッシュボード上で [第三者広告ネットワーク設定を使用]を選択します。

そしてInMobiのダッシュボード上で、ユーザーがビデオの視聴を完了した時点でInMobi SDK が付与するリワード詳細のキーと値のペアを入力します。ここで設定した値がAdMobのリワードコールバックに渡されます。たとえば、以下のリワード詳細を入力できます。

キー = Coins、値= 1000

InMobi ダッシュボードでのリワードの設定中は、リワードの値は必ず整数となっているようにしてください。

ネイティブ広告の設定

AdMobのダッシュボード上のネイティブ広告ユニットをサポートするために、InMobiダッシュボード上でネイティブ広告プレースメント作成時に、InMobiダッシュボード上のキー名を絶対に変更しないでください。ネイティブ広告フォーマットにおいて、InMobiとAdMobのインテグレーションの連携がでシームレスに稼働することを担保するためです。

注意:

  • InMobiアダプターはAdMob SDKでのネイティブ広告用の shouldRequestMultipleImagesフラグに対応しません。
  • InMobiアダプターはAdMob SDKでの getImageOrientation/preferredImageOrientationフラグに対応しません。

ステップ 6:AdMobアダプターを通じたInMobi SDKのインテグレーション

InMobi SDKとAdMobアダプターのインテグレーションは極めてシームレスです。InMobiから広告を取得するには、InMobi SDKとアダプターの両方を組み込む必要があります。

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

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

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

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

  1. 以下の記述をトップレベルの build.gradleファイルにインクルードします。
    allprojects {
        repositories {
            jcenter()
        }
    }
    			
  2. 以下の行をアプリケーションモジュールのbuild.gradle内の依存エレメントに追加します。
    compile 'com.inmobi.monetization:inmobi-ads:8.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-basement:16.1.0' 
      compile 'com.google.android.gms:play-services-ads:17.2.0'
      compile 'com.google.android.gms:play-services-location:16.0.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.71828'
      				
    2. Gradleプロジェクトを同期して、依存設定がインクルードされていることを確認します。
  • サポートライブラリ

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

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

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

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

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

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

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

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

パーミッションの追加

以下のパーミッションの追加は必須です。これらのパーミッションを追加していない場合、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に変更できます。

プロジェクトへのInMobi アダプターの追加

こちらからアダプターをダウンロードします。お客様のAndroid StudioプロジェクトにInMobi アダプターを追加します。

コーディングの手順

コーディングの手順は、広告を取得したり読み込んだりするための通常のAdMobインテグレーション用と同じです。AdMobアカウントIDを使用して、AdMob SDK とAdMob “ad unit id”を初期化して広告をリクエストして取得します。

Passing user consent information to InMobi SDK

The publishers monetizing in EEA region will have to pass user consent to InMobi SDK. The publishers can use consent gathering mechanism of their choice (like Consent SDK), and they will have to pass on this consent information to InMobi.

To pass consent information, the publisher has to call:

 [InMobiConsent updateGDPRConsent:consentObj];
		

The consentObj will be a JSON object with the following keys:

Key Type Inference
gdpr_consent_available boolean true - Publisher has provided consent to collect and use user’s data.

false - Publisher has not provided consent to collect and use user’s data.

Note: Any value other than true and false is invalid and will be treated as value not provided by publisher, i.e. empty value.

gdpr Number Whether or not the request is subjected to GDPR regulations, deviation from the set values true and false, indicate an unknown entity.

詳細情報

こちらからサンプルコードをダウンロードします。

AdMob SDK 用の最新のドキュメントおよびコード サンプルは、 こちらからご利用いただけます。

ステップ 7:インテグレーションのテスト

広告リクエストがAdMob SDK経由でInMobiに確実にリレーされていることをテストするために以下の手順に従います。

  • 広告ネットワークの最適化チェックボックスのチェックを解除し、AdMobネットワークを含め、全てのネットワークの広告ネットワークの最適化を手動設定にします。
  • InMobi 用のeCPMフロアが他のネットワークよりも高くなる様に、全てのネットワークのeCPMフロアを手動で設定します。この設定により、広告のリクエストが必ずInMobiにリレーされるようになります。以下の例では、 InMobiフロアは$5に設定され、AdMobネットワークは$0.01に設定されています。

上記の手順を実行すると、広告リクエストをInMobi SDKにリレーし、広告表示をテストできます。

重要なSDKログの出力

広告ユニットをインテグレーションしているアクティビティに以下の行を追加して、重要なSDKログを出力できます。

InMobiSdk.setLogLevel(LogLevel.DEBUG);
		

[診断]タブ上でテストモード時の広告ユニット別のレポート値を確認できます。実装が正しく行われたか確認するのに役立ちます。


ステップ 8:高度な設定

位置情報と属性データを受け渡す

InMobi SDKには、広告の配信先絞り込みの精度向上と、より良いeCPMをお届けするために、広告リクエストを強化するための対応機能があります。これを活用するには、お客様の広告ユニットのカスタムイベントクラスを修正してInMobi SDK APIを使用し、データを渡す必要があります。詳細についてはサンプルコードを参照してください。

InMobi は、以下のパラメーターに対応しています。

メソッド名 説明

setAgeGroup

AgeGroupBelow18

AgeGroupBetween18And24

AgeGroupBetween25And29

AgeGroupBetween30And34

AgeGroupBetween35And44

AgeGroupBetween45And54

AgeGroupBetween55And65

AgeGroupAbove65

ユーザーの年齢グループ

setEducationType

EducationHighSchoolOrLess

EducationCollegeOrGraduate

EducationPostGraduateOrAbove

最終学歴:

  • 高等学校卒業、またはそれ以下
  • 単科大学卒業、または大学卒業
  • 大学院卒業、またはそれ以上

setIncome

整数

おおよその年間世帯所得 (米ドル)

setAge

整数

ユーザーの年齢

setInterests

文字列

ユーザーに関するその他の説明や設定を、コンマで区切って記入してください。受理できる有効値は以下の通りです。

setPostalCode

文字列

郵便番号 (通常 5 桁の数字)

setAreaCode

文字列

市外局番 (電話番号の一部)

setLanguage

文字列

ユーザーの母国語 (わかる場合)

setLocationWithCityStateCountry

文字列

受け渡された国名、都道府県、市区町村を設定します。

setKeywords


文字列

広告リクエストに引き継がれるキーワード

InMobi SDKの属性パラメーターの設定のサンプルです。パブリッシャーは希望のパラメーターの値を渡す必要があります。

InMobiSdk.setAreaCode("080");
InMobiSdk.setEducation(Education.HIGH_SCHOOL_OR_LESS);
InMobiSdk.setGender(Gender.MALE);
InMobiSdk.setAge(23);
InMobiSdk.setPostalCode("122009");
InMobiSdk.setLogLevel(LogLevel.DEBUG);
InMobiSdk.setLocationWithCityStateCountry("blore", "kar", "india");
InMobiSdk.setLanguage("ENG");
InMobiSdk.setInterests("dance");
InMobiSdk.setYearOfBirth(1980);