React ネイティブプラグインのインテグレーション
Unity LevelPlay React ネイティブプラグイン(v8.4.0+)をアプリケーションに統合して、広告メディエーションと Monetization を可能にします。
読み終わるまでの所要時間 15 分最終更新 6日前
前提条件
- React ネイティブプラグインは、Android 用のネイティブ SDK バージョン 7.2.4.1 および iOS 用の 7.2.4 からサポートされています。
- このプラグインは JavaScript と TypeScript の両方をサポートします。型宣言は パッケージに含まれています。
- React ネイティブ 0.66 以降をサポート。
- iOS バージョン サポートはネットワークごとに定義されます。 LevelPlay 広告と LevelPlay メディエーションは、iOS バージョン 12 以上、XCode バージョン 15.4 以上をサポートします。
- Android オペレーティング システム バージョン 5.0(API レベル 21)以上
ステップ 1. Unity LevelPlay React Mediation プラグインをプロジェクトに追加します。
NPM インテグレーション
npm を使用して Unity LevelPlay React ネイティブプラグインをプロジェクトに追加するには、2 つのオプションがあります。
-
npm CLI コマンドの実行npm install Unity-levelplay-mediation
-
パッケージ.json ファイルの更新:Unity レベルの play-mediation 定義をパッケージ.json ファイルに追加します。"dependencies": { "unity-levelplay-mediation":"9.1.0"}
-
広告品質 SDK の追加Android:dependencies { implementation 'com.unity3d.ads-mediation:adquality-sdk:9.3.1'}iOS:pod 'IronSourceAdQualitySDK','9.3.1'
手動での統合
- React ネイティブプラグインバージョンのダウンロード
- Unity レベルの play-mediation 定義をパッケージ.json ファイルに追加します。
"dependencies": { "unity-levelplay-mediation":"Path/To/Local/Directory"}
Unity LevelPlay アプリケーション
インテグレーション Demo アプリケーションは、Unity LevelPlay をアプリケーションに統合する方法を示しています。
ステップ 2. iOS の追加設定
SKAdNetworkサポート
SDK 7 以降を使用しているときに LevelPlay ネットワークワーク広告のディスプレイを有効にするには、アプリケーションのリスト(Info.plist) に LevelPlay 広告ネットワーク ID を必ず含めてください。
-
Xcode のプロジェクトナビゲーターで Info.plist を選択します。
-
プロパティリストエディタのキーの横にある追加ボタン (+) を選択し、Return キーを押します。
-
キー名 SKAdNetworkItems を入力します
-
「型」列のポップアップメニューから配列を選択します。
-
ディクショナリ項目を作成し、その下に 1 つの項目を作成します。
-
キー名 SKAdNetworkIdentifier とキー値を入力します。su67r6k2v3.skadnetwork
次のコードを使用して、SKAdNetworkIdentifier を Info.plist に追加することもできます。
<key>SKAdNetworkItems</key><array> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict></array>
プロパティのリストを編集する方法の詳細については、Xcode のドキュメント を参照してください。
ユニバーサルSKANレポート
宣伝対象のアプリケーションのすべてのデマンドソースからインストール検証の落札ポストバックのコピーを受け取るには、アプリケーションのInfo.plistにNSAdvertisingAttributionReportEndpointキーを追加します。
- Xcode のプロジェクトナビゲーターで Info.plist を選択します。
- プロパティリストエディタでキーの横にある追加ボタン (+) を選択し、Return キーを押します。
- キー名 NSAdvertisingAttributionReportEndpoint を入力します。
- Type カラムのポップアップメニューから文字列を選択します。
- URL を入力します。
https://postbacks-is.com
アプリケーション転送のセキュリティ設定
すべてのメディエーションネットワークで広告配信のサポートを中断しないようにするには、info.plistに以下の変更を加えることが重要です。
- 「NSAppTransportSecurity」というディクショナリを追加します。このディクショナリは「トップレベルキー」に追加してください。
- このディクショナリ内に「NSAllowsArbitraryLoads」というブーリアンを追加し、YES に設定します。
- info.plist に NSAllowsArbitraryLoads 以外の例外が含まれていないことを確認してください。競合が発生する可能性があります。
- ATS の詳細については、こちらを参照してください。
ステップ 3. Android の追加設定
再生サービスの依存関係
以下のように、再生 Services の依存関係をアプリケーションレベルの ビルド.gradle に追加します。
dependencies { implementation 'com.google.android.gms:play-services-ads-identifier:18.0.1' implementation 'com.google.android.gms:play-services-basement:18.3.0' implementation 'com.google.android.gms:play-services-appset:16.0.2'}
Android 12 サポート
ターゲット API レベルを 31(Android 12)に更新するアプリケーションは、マニフェストファイルで次のように Google 再生サービスの法線権限を宣言する必要があります。
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Google ドキュメントの Google Advertising ID の変更に関する詳細を参照してください。
ステップ 4. LevelPlay SDK の初期化
LevelPlay SDK を初期化するには、以下の手順に従います。
LevelPlay SDK 8.7.0+
-
初期化の成功と失敗のコールバックを実装します。
-
LevelPlayInitRequest.Builder を使用して init リクエストを作成します。Builder は以下のパラメータを受け取ります。
- appKey (必須)
- ユーザーID(任意:サーバー間のコールバックまたは広告品質ユーザー ジャーニーを使用している場合に必要)
-
LevelPlay.init を呼び出し、コンテキストと init リクエストを渡します。
const initListener:LevelPlayInitListener = { onInitFailed: (エラー:LevelPlayInitError) => { // Provided when init fails }, onInitSuccess:(設定:LevelPlayConfiguration) => { // Provided when init is successfully executed }}// Init the SDK when implementing the Multiple Ad Units APIs for all ad formatsconst initRequest:LevelPlayInitRequest = LevelPlayInitRequest.builder(APP_KEY) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();LevelPlay.init(initRequest, initListener)
LevelPlay SDK before 8.7.0
- 初期化の成功と失敗のコールバックを実装します。
- 古い機能のIronsource APIからのサポートを必要とする広告フォーマットのリストを定義します。これには REWARDED が含まれます。
- appKey、広告フォーマット、およびユーザー ID (必要な場合) を使用して LevelPlay init API を呼び出します。
const initListener:LevelPlayInitListener = { onInitFailed: (エラー:LevelPlayInitError) => { // Provided when init is failed }, onInitSuccess:(設定:LevelPlayConfiguration) => { // Provided when init is successfully executed }}// Init the SDK when implementing the Multiple Ad Units Interstitial and Banner APIs, and Rewarded using legacy APIs const legacyAdFormats = [AdFormat.REWARDED];const initRequest:LevelPlayInitRequest = LevelPlayInitRequest.builder(APP_KEY) .withLegacyAdFormats(legacyAdFormats) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();await LevelPlay.init(initRequest, initListener)
LevelPlay Init リスナー
- onInitSuccess – init が正常に完了し、広告をロードできるときにトリガーされます。
- **onInitFailed:**設定が正常に受信されず、広告をロードできません。後で LevelPlay SDK を初期化してみることをお勧めします。
init API の前に呼び出されたすべての API は変更されておらず、機能と構文の点ではそのままになっている必要があります。これには、特定の広告形式に関連する詳細設定、規制設定、その他の API が含まれます。
初期化に失敗した場合は、SDK の初期化を再試行できます。初期化プロセスが成功した後にのみ、広告をロードできるようになります。
ステップ 5.インテグレーションの確認
LevelPlay インテグレーションテストスイートを使用して、アプリケーションのインテグレーションのテスト、プラットフォーム設定の確認、構成したネットワークに関連する広告のレビューを行います。
アプリケーションでテストスイートを有効にするには、初期化を設定する前に setMetaData API を呼び出します。
LevelPlay.setMetaData('is_test_suite', ['enable'])
メディエーションの初期化が正常に完了したら、以下のメソッドを呼び出してテストスイートを起動します。
LevelPlay.launchTestSuite()
LevelPlay インテグレーションテストスイートの詳細と実装例については、この記事を操作してください。
Adapters デバッグ
以下の API を呼び出して、メディエーションネットワークワークアダプターと SDK のデバッグを有効にします。
LevelPlay.setAdaptersDebug(true);
ProGuard ユーザーのみ
LevelPlay SDK で ProGuard を使用している場合は、ProGuard ファイルに以下のコードを追加する必要があります (Android Studio: proguard-rules.Pro または Eclipse: proguard-project.txt)。
-keepclassmembers class com.ironsource.sdk.controller.IronSourceWebView$JSInterface { public *;}-keepclassmembers class * implements android.os.Parcelable { public static final android.os.Parcelable$Creator *;}-keep public class com.google.android.gms.ads.** { public *;}-keep class com.ironsource.adapters.** { *;}-keep class com.ironsource.unity.androidbridge.** { *;}-dontwarn com.ironsource.mediationsdk.**-dontwarn com.ironsource.adapters.**-keepattributes JavascriptInterface-keepclassmembers class * { @android.webkit.JavascriptInterface <methods>;}
次のステップ
- インテグレーション ガイドに従って広告フォーマットを実装
- 動画リワード広告、インタースティシャル広告、バナー広告をアプリケーションに統合します。メディエーションに関する記事を参照してください。
- インテグレーションテストスイートとのインテグレーションを確認します。