Flutter プラグインインテグレーション
LevelPlay SDK を Flutter アプリケーションに統合して、Android と iOS プラットフォームで広告メディエーションとMonetization化を可能にします。
読み終わるまでの所要時間 14 分最終更新 6日前
前提条件
- Flutter プラグインは、Android および iOS 用の SDK バージョン 7.2.1.2 からサポートされています。
- Flutter 3.0.0+ サポート
LevelPlay Mediation プラグインをプロジェクトに追加する
Pub.dev Integration
pub.dev インターフェースを使用して LevelPlay Flutter プラグインをプロジェクトに追加する方法は 2 つあります。
-
Flutter CLI コマンドの実行flutter pub get unity_levelplay_mediation
-
pubspec.yaml ファイルに定義を追加して、pubspec.yaml ファイルを更新。
unity_levelplay_mediationdependencies (依存関係): flutter: sdk: flutter unity_levelplay_mediation: '>=9.1.0 <9.2.0' -
広告品質 SDK の追加
dependencies { implementation 'com.unity3d.ads-mediation:adquality-sdk:9.3.1'}
手動での統合
LevelPlay アプリケーション
インテグレーション Demo アプリケーションは、Ironsource LevelPlay をアプリケーションに統合する方法を示しています。
iOS の追加設定
SKAdNetworkサポート
SDK 7 以降を使用しているときに Ironsource ネットワークワーク広告のディスプレイを有効にするには、アプリケーションのリスト(Info.plist) に Ironsource 広告ネットワーク ID を必ず含めてください。
-
Xcode のプロジェクトナビゲーターで Info.plist を選択します。
-
プロパティリストエディタでキーの横にある追加ボタン (+) を選択し、Return キーを押します。
-
キー名 SKAdNetworkItems を入力します。
-
ダイアログの「**型」**列で、配列を選択します。
-
ディクショナリ項目と対応する 1 つの刺項目を作成します。
-
キー名 SKAdNetworkIdentifier とキー値を入力します。su67r6k2v3.skadnetwork以下のコードで Info.plist にを追加することもできます。
SKAdNetworkIdentifier
<key>SKAdNetworkItems</key><array> <dict> <key>SKAdNetworkIdentifier</key> <string>su67r6k2v3.skadnetwork</string> </dict></array>
ironsource SKAdNetwork IDs Manager を使用して、Ironsource ネットワークとメディエーションネットワーク ID をサポートするコードスニペットを作成します。
プロパティのリストを編集する方法の詳細については、Xcode のドキュメント を参照してください。
ユニバーサルSKANレポート
宣伝対象のアプリケーションのすべてのデマンドソースからインストール検証の落札ポストバックのコピーを受け取るには、アプリケーションのInfo.plistにNSAdvertisingAttributionReportEndpointキーを追加します。
- Xcode のプロジェクトナビゲーターで Info.plist を選択します。
- プロパティリストエディタでキーの横にある追加ボタン (+) を選択し、Return キーを押します。
- キー名 NSAdvertisingAttributionReportEndpoint を入力します。
- Type カラムのポップアップメニューから文字列を選択します。
- URL を入力します。
https://postbacks-is.com/
アプリケーション転送のセキュリティ設定
すべてのメディエーションネットワークで広告配信のサポートを中断しないようにするには、に以下の変更を加えることが重要です。
info.plist- というディクショナリを追加します。このディクショナリはトップレベルキーに追加してください。
NSAppTransportSecurity - このディクショナリ内で、というブーリアンを追加し、YES に設定します。
NSAllowsArbitraryLoads - info.plist に 以外の例外が含まれていないことを確認してください。競合が発生する可能性があります。
NSAllowsArbitraryLoads - ATS の詳細については、Apple ドキュメントを参照してください。
Android の追加設定
再生サービスの依存関係
以下のように、再生 Services の依存関係をアプリケーションレベルの ビルド.gradle に追加します。
dependencies { implementation 'com.google.android.gms:play-services-ads-identifier:18.2.0' implementation 'com.google.android.gms:play-services-appset:16.1.0'}
Android 12 サポート
ターゲット API レベルを 31(Android 12)に更新するアプリケーションは、マニフェストファイルで次のように Google 再生サービスの法線権限を宣言する必要があります。
<uses-permission android:name="com.google.android.gms.permission.AD_ID"/>
Google Advertising ID の変更については、こちらを参照してください。
AndroidManifest.xml のラベルを置換
AndroidManifest のラベル関連のエラーを回避するには、以下の行います。
- プロジェクトの AndroidManifest.xml に ‘xmls:tools’ を追加します。
- 「アプリケーション」タグに「tools:replace=”Android:ラベル”」を追加します。
LevelPlay SDK の初期化
LevelPlay SDK を初期化するには、以下の手順に従います。
LevelPlay SDK 8.6.0 以降
-
初期化の成功と失敗のコールバックを実装します。
-
セッションで初期化する広告フォーマットのリストを定義します。
-
を使用して init リクエストを作成します。Builder は以下のパラメータを受け取ります。
LevelPlayInitRequest.builder- appKey (必須)
- ユーザーID(任意:サーバー間のコールバックまたは広告品質ユーザー ジャーニーを使用している場合に必要)
-
LevelPlay.init を呼び出し、コンテキストと リクエストを渡します。
class MyLevelPlayInitListener implements LevelPlayInitListener { @override void onInitFailed(LevelPlayInitError error) { // Provided when init is failed } @override void onInitSuccess(LevelPlayConfiguration configuration) { // Provided when init is successfully executed }}LevelPlayInitRequest initRequest = LevelPlayInitRequest.builder([APP_KEY]) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();LevelPlay.init(initRequest, MyLevelPlayInitListener());
LevelPlay SDK before 8.6.0
- 初期化の成功と失敗のコールバックを実装します。
- 古い機能 LevelPlay API のサポートを必要とする広告フォーマットのリストを定義します。これには REWARDED が含まれます。
- appKey、広告フォーマット、およびユーザー ID (必要な場合) を使用して LevelPlay.init API を呼び出します。
サーバー間のコールバックを使用してユーザーに報酬を与える場合や、広告品質ユーザー ジャーニーを使用する場合は、初期化APIの一部としてユーザーIDを追加します。
class MyLevelPlayInitListener implements LevelPlayInitListener { @override void onInitFailed(LevelPlayInitError error) { // Provided when init is failed } @override void onInitSuccess(LevelPlayConfiguration configuration) { // Provided when init is successfully executed }}// Init the SDK when implementing the Multiple Ad Units Interstitial and Banner APIs, and Rewarded using legacy APIs List<AdFormat> legacyAdFormats = [AdFormat.REWARDED];LevelPlayInitRequest initRequest = LevelPlayInitRequest.builder([APP_KEY]) .withLegacyAdFormats(legacyAdFormats) .withUserId("userId") // required for server-to-server callbacks or Ad Quality user journey (optional otherwise) .build();LevelPlay.init(initRequest, MyLevelPlayInitListener());
LevelPlay Init リスナー
- : init が正常に完了し、広告をロードできるようになったときにトリガーされます。
onInitSuccess - : 設定が正常に受信されず、広告をロードできません。推奨されるベストプラクティスは、後で LevelPlay SDK を試行して初期化することです。
onInitFailed
以下のベストプラクティスを検討してください。
- init API の前に呼び出されたすべての API は変更されておらず、機能と構文の点ではそのままになっている必要があります。これには、特定の広告形式に関連する詳細設定、規制設定、その他の API が含まれます。
- 初期化に失敗した場合は、SDK の初期化を再試行できます。初期化プロセスが成功した後にのみ、広告をロードできるようになります。
インテグレーションの確認
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>;}
次のステップ
- インテグレーション ガイドに従って広告フォーマットを実装
- 動画リワード広告、インタースティシャル広告、バナー広告をアプリケーションに統合します。メディエーションに関する記事を参照してください。
- インテグレーションテストスイートとのインテグレーションを確認します。