iOS SDK 実装
iOS バージョンのサポートはネットワークごとに定義されています。ironSource Ads と Unity LevelPlay メディエーションは iOS バージョン 11 以降をサポートします。
iOS14 と互換性を持たせるために、ironSource は SKAdNetwork アトリビューションをサポートする SDK7+ をリリースしました。SDK7 への更新についての詳細は、こちらをご覧ください。
SDK のダウンロード、使用、およびアクセスには、ironSource Mobile SDK Publisher のオンライン利用規約が適用されます。ironSource Mobile SDK Publisher のオンライン利用規約に同意しない場合は、SDK または基盤となるサービスをダウンロード、アクセス、または使用しないでください。
ステップ 1. プロジェクトに SDK を追加する
ironSource SDK の実装方法は、 CocoaPods と手動ダウンロードメカニズムの両方をサポートしています:
CocoaPods
CocoaPods は、Objective-C と Swift の依存関係マネージャーです。SDK 統合プロセスを自動化および簡素化します。詳細については、CocoaPods の使用開始と使用に関する CocoaPods ガイドを参照してください。
SDK を CocoaPods で実装するには、Podfile に次の行を入力します:
pod 'IronSourceSDK','7.5.1'
pod 'IronSourceAdQualitySDK','7.14.2'
Ad Quality をプロジェクトからオプトアウトするには、Ad Quality SDK の依存関係を dependencies セクションから削除してください。
プロジェクトで Swift を使用していない場合、 Project ➣ BuildSettings ➣ Linking ➣ Runpath Search Paths へ以下を追加してください:
// needs to be first on the list
/usr/lib/swift
手動ダウンロード
次の手順に従って、ironSourceSDK をプロジェクトに追加します:
- Download iOS SDK Version 7.5.1
SDK をダウンロードした後、それを解凍し、IronSource.framework を Xcode プロジェクトに追加します。 - Download Ad Quality SDK
SDK をダウンロードした後、それを解凍し、IronSource.framework を IronSourceAdQualitySDK.xcframework へ変更します。 - Linker Flags を追加
次の Linker Flags をビルド設定に追加します:
Target ➣ Build Settings ➣ Linking ➣ Other Linker Flags:
–ObjC - ライブラリをインポート – “z”,”sqlite3.0″
- フレームワークをインポート – “JavaScriptCore”,”WebKit”,”AdSupport”,”SystemConfiguration”
プロジェクトで Swift を使用していない場合、以下の設定が必要です:
Project ➣ BuildSettings ➣ Defines Module: Yes に設定
Project ➣ BuildSettings ➣ Search path ➣ Library Search Paths を選択し、以下のコードを追加:
$(TOOLCHAIN_DIR)/usr/lib/swift/$(PLATFORM_NAME)
$(TOOLCHAIN_DIR)/usr/lib/swift-5.0/$(PLATFORM_NAME)
Project ➣ BuildSettings ➣ Linking ➣ Runpath Search Paths へ以下のコードを追加:
// need to be first on the list
/usr/lib/swift
Project ➣ BuildSettings ➣ Build option ➣ Always embed swift standard libraries: Yes に設定
ironSource メディエーションデモアプリ
Integration Demo アプリケーションは、Unity LevelPlay メディエーションをアプリに実装する方法を示しています。
Download iOS Demo Applicationステップ 2. プロパティリストファイル( info.plist )を更新する
SKAdNetwork サポート
SDK7 以降で ironSource ネットワーク広告の表示を有効にするには、アプリのプロパティリストファイル( info.plist )に ironSource アドネットワーク ID を含めるようにしてください。
- Xcode のプロジェクトナビゲータで info.plist を選択します
- プロパティリストエディタのキーの横にある追加ボタン(+)をクリックし、Return キーを押します
- キー名「 SKAdNetworkItems 」を入力します
- 「 Type 」列のポップアップメニューから「 Array 」を選択します
- dictionary アイテムを作成し、その下に単一の「 string 」アイテムを作成します
- キー名「 SKAdNetworkIdentifier 」とキー値を入力します:
su67r6k2v3.skadnetwork
次のコードを使用して、SKAdNetworkIdentifier を info.plist に追加することもできます。
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>su67r6k2v3.skadnetwork</string>
</dict>
</array>
プロパティリストの編集の詳細については、Xcode のドキュメントを参照してください。
Universal SKAN レポート
ユーザー獲得を実施しているアプリのすべてから、獲得したインストールポストバックのコピーを受け取るには、アプリの info.plist にNSAdvertisingAttributionReportEndpointキーを追加します。
- Xcode のプロジェクトナビゲーターで info.plist を選択します
- プロパティリストエディタのキーの横にある [追加] ボタン (+) をクリックし、Return キーを押します
- キー名 NSAdvertisingAttributionReportEndpoint を入力します
- 「 Type 」列のポップアップメニューから「 String 」を選択します
- URL を入力します:https://postbacks-is.com
Universal SKAN レポートの詳細については、こちらをご覧ください。
App Transport Security 設定
すべてのメディエーションネットワークで ironSource 広告配信を滞りなくサポートするには、info.plist に次の変更を加えることが重要です:
- 「 NSAppTransportSecurity 」という「 dictionary 」を追加します。これは必ず「 Top Level Key 」に追加してください
- この dictionary 内に、「 NSAllowsArbitraryLoads 」という「 Boolean 」を追加し、「 YES 」に設定します
- 競合が発生する可能性があるため、info.plist に「 NSAllowsArbitraryLoads 」以外の例外が含まれていないことを確認してください
- ATS の詳細については、こちらをご覧ください
ステップ 3. Delegates を設定する
必要なファイルをインポートする
#import "IronSource/IronSource.h"
IronSource.h ファイルをダウンロードします。次に、Targets ➣ Build Settings ➣ Objective-C Bridging Header に移動し、ブリッジヘッダーファイルへのパスを追加します。
Swift の場合は、こちらから詳細な手順を確認してヘッダーファイルをダウンロードしてください。
Delegate を設定する
ironSource SDK は、広告ユニットのアクティビティを通知するためにいくつかのイベントを発火します。これらのイベントを受信するには、ironSource プラットフォームで設定した広告ユニットの delegates を登録します。
動画リワード
[IronSource setLevelPlayRewardedVideoDelegate:yourLevelPlayRewardedVideoDelegate];
IronSource.setLevelPlayRewardedVideoDelegate(yourLevelPlayRewardedVideoDelegate)
インタースティシャル
[IronSource setLevelPlayInterstitialDelegate:yourLevelPlayInterstitialDelegate];
IronSource.setLevelPlayInterstitialDelegate(yourLevelPlayInterstitialDelegate)
バナー
[IronSource setLevelPlayBannerDelegate:yourLevelPlayBannerDelegate];
IronSource.setLevelPlayBannerDelegate(yourLevelPlayBannerDelegate)
オファーウォール
[IronSource setOfferwallDelegate:yourOfferwallDelegate];
IronSource.setOfferwallDelegate(yourOfferwallDelegate)
ステップ 4. ironSource SDK の初期化
- ironSource は、UserID や Segments など、SDK を初期化する前に設定する必要があるオプションをサポートしています。セットアップ手順については、「詳細設定に関するガイド」をご覧ください
- アプリの起動時にポップアップを使用してユーザーの ATT 同意( iOS14 )を取得する場合は、ironSource SDK を初期化する前にこのアクションを実行することをお勧めします。App Tracking Transparency について詳しくは、Apple のドキュメントをご覧ください
- アプリの起動時にユーザーの ATT 同意( iOS14 )を要求しない場合は、起動後すぐに ironSource SDK を初期化してください
- オファーウォール広告ユニットを配信している場合、サーバー間コールバックを使用してユーザーに ironSource SDK リワード広告ユニットのリワードを提供する場合、または Ad Quality User Journey を使用している場合は、UserID を設定します
SDK を初期化する
SDK は二つの方法で初期化できます:
- adUnits パラメータで指定した特定の広告ユニットを取得する、以下の方法をお勧めします。広告ユニットは文字列配列です。
[IronSource initWithAppKey:YOUR_APP_KEY adUnits:YOUR_AD_UNITS];
IronSource.initWithAppKey(kAPPKEY, adUnits:YOUR_AD_UNITS)
Sample:
[IronSource initWithAppKey:APP_KEY adUnits:@[IS_REWARDED_VIDEO]]; // or for all ad units [IronSource initWithAppKey:APP_KEY adUnits:@[IS_REWARDED_VIDEO,IS_INTERSTITIAL,IS_OFFERWALL, IS_BANNER]];
IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_REWARDED_VIDEO]) // or for all ad units IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_REWARDED_VIDEO,IS_INTERSTITIAL,IS_OFFERWALL, IS_BANNER])
この初期化アプローチを使用すると、一つのセッションでアプリフローのさまざまなタッチポイントで各広告ユニットを個別に初期化できるようになります。
// To init Rewarded Video [IronSource initWithAppKey:APP_KEY adUnits:@[IS_REWARDED_VIDEO]]; //To init Interstitial [IronSource initWithAppKey:APP_KEY adUnits:@[IS_INTERSTITIAL]]; // To init Offerwall [IronSource initWithAppKey:APP_KEY adUnits:@[IS_OFFERWALL]]; // To init Banner [IronSource initWithAppKey:APP_KEY adUnits:@[IS_BANNER]];
// To init Rewarded Video IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_REWARDED_VIDEO]) // To init Interstitial IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_INTERSTITIAL]) // To init Offerwall IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_OFFERWALL]) // To init Banner IronSource.initWithAppKey(kAPPKEY, adUnits:[IS_BANNER])
- 上記の方法以外に、以下の様に SDK を初期化すると、SDK は ironSource プラットフォームで設定した広告ユニットを初期化します:
[IronSource initWithAppKey:YOUR_APP_KEY];
IronSource.initWithAppKey(kAPPKEY)
初期化完了コールバック
ironSource SDK 7.2.1 以降は ironSource SDK が正常に初期化されたことを通知するコールバックを発火します。このリスナーは、初期化プロセスが完了したことを示し、広告の読み込みを開始できます。コールバックはセッションごとに 1 回送信され、SDK の最初の初期化を示します。
[IronSource initWithAppKey:_appKey delegate:self];
#pragma mark -ISInitializationDelegate
// Invoked after init mediation completed
- (void)initializationDidComplete {
}
IronSource.initWithAppKey(kAPPKEY, delegate: self)
//MARK: ISInitializationDelegate Functions
/**
called after init mediation completed
*/
public func initializationDidComplete() {
}
ステップ 5. 実装を確認する
ironSource SDK は、SDK とメディエーションの実装が正常に完了したことを確認する簡単な方法を提供しています。ironSource SDK の実装と、実装した追加のアドネットワークを確認するには、次のメソッドをプロジェクトに追加するだけです:
[ISIntegrationHelper validateIntegration];
ISIntegrationHelper.validateIntegration()
ironSource Integration Verification ツールの詳細については、こちらの記事をお読みください。
完了!これで、ironSource SDK がアプリに実装されました。
これで、Unity LevelPlay の広告ユニットと高度なメディエーションプラットフォームの使用を開始する準備が整いました。
Integration Helper で実装を確認したら、実装ガイドに従って、広告ユニットを実装します:
メディエーションに興味がありますか?このメディエーションの記事に従って動画リワードまたはインタースティシャル広告をアプリに実装してください。