iOS SDK 実装

Before you start

iOS バージョンのサポートはネットワークごとに定義されています。ironSource Ads と Unity LevelPlay メディエーションは iOS バージョン 11 以降、Xcode バージョン 14.3.1 以降をサポートします。

Apple のプライバシー要件と互換性を保つために、ironSource SDK は SKAdNetwork アトリビューションと iOS プライバシーマニフェストの両方をサポートしています。詳細については、こちらをご覧ください。

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','8.4.0.0'
pod 'IronSourceAdQualitySDK','7.22.0'

Ad Quality をプロジェクトからオプトアウトするには、Ad Quality SDK の依存関係を dependencies セクションから削除してください。

プロジェクトで Swift を使用していない場合、 Project ➣ BuildSettings ➣ Linking ➣ Runpath Search Paths へ以下を追加してください:

// needs to be first on the list
 /usr/lib/swift

手動ダウンロード

次の手順に従って、ironSourceSDK をプロジェクトに追加します:

  1. Download iOS SDK Version 8.4.0
    SDK をダウンロードした後、それを解凍し、IronSource.xcframework を Xcode プロジェクトに追加します。
  2. Download Ad Quality SDK
    SDK をダウンロードした後、それを解凍し、IronSourceAdQualitySDK.xcframework を Xcode プロジェクトに追加します。
  3. Linker Flags を追加
    次の Linker Flags をビルド設定に追加します:
    Target ➣ Build Settings ➣ Linking ➣ Other Linker Flags:
    ObjC
  4. ライブラリをインポート – “z”,”sqlite3.0″
  5. フレームワークをインポート – “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 メディエーションをアプリに実装する方法を示しています。

ステップ 2. プロパティリストファイル( info.plist )を更新する

SKAdNetwork サポート

SDK7 以降で ironSource ネットワーク広告の表示を有効にするには、アプリのプロパティリストファイル( info.plist )に ironSource アドネットワーク ID を含めるようにしてください。

  1. Xcode のプロジェクトナビゲータで info.plist を選択します
  2. プロパティリストエディタのキーの横にある追加ボタン(+)をクリックし、Return キーを押します
  3. キー名「 SKAdNetworkItems 」を入力します
  4. 「 Type 」列のポップアップメニューから「 Array 」を選択します
  5. dictionary アイテムを作成し、その下に単一の「 string 」アイテムを作成します
  6. キー名「 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キーを追加します。

  1. Xcode のプロジェクトナビゲーターで info.plist を選択します
  2. プロパティリストエディタのキーの横にある [追加] ボタン (+) をクリックし、Return キーを押します
  3. キー名 NSAdvertisingAttributionReportEndpoint を入力します
  4. 「 Type 」列のポップアップメニューから「 String 」を選択します
  5. URL を入力します:https://postbacks-is.com

Universal SKAN レポートの詳細については、こちらをご覧ください。

App Transport Security 設定

すべてのメディエーションネットワークで ironSource 広告配信を滞りなくサポートするには、info.plist に次の変更を加えることが重要です:

  • NSAppTransportSecurity 」という「 dictionary 」を追加します。これは必ず「 Top Level Key 」に追加してください
  • この dictionary 内に、「 NSAllowsArbitraryLoads 」という「 Boolean 」を追加し、「 YES 」に設定しますats
Note:
  • 競合が発生する可能性があるため、info.plist に「 NSAllowsArbitraryLoads 」以外の例外が含まれていないことを確認してください
  • ATS の詳細については、こちらをご覧ください

iOS プライバシーマニフェスト

ironSource SDK 7.9.0+ には、ironSource Ads で使用される API の概要を説明するプライバシーマニフェストファイルが実装されています。 Apple の新しいプライバシーマニフェストフレームワークに準拠するには、このファイルをアプリケーションに含める必要があります。

プライバシーマニフェストの IronSource SDK の実装とファイルの手動実装方法については、こちらをご覧ください。

ステップ 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.setLevelPlayInterstitialDelegate(yourLevelPlayBannerDelegate)

ステップ 4. ironSource SDK の初期化

SDK を初期化する

SDK を初期化するには、以下の手順に従ってください:

  1. セッションで初期化する広告フォーマットのリストを定義します。REWARDED ユニットはマルチ広告ユニット API では正式にサポートされていないため、このリストに含める必要があります。
  2. appKey、広告フォーマット、および必要に応じて UserID を使用して、LevelPlay init API を呼び出します。
  3. 初期化完了ハンドラーの Success と Failure を定義します。
ユーザー ID サーバー間コールバックを使用してユーザーに ironSource SDK リワード広告ユニットのリワードを提供する場合、または Ad Quality User Journey を使用している場合は、UserID を設定します。
// Create a request builder with app key and ad formats. Add User ID if available
LPMInitRequestBuilder *requestBuilder = [[LPMInitRequestBuilder alloc] initWithAppKey:@"appKey"];
[requestBuilder withLegacyAdFormats:@[IS_REWARDED_VIDEO]];
[requestBuilder withUserId:@"UserId"];

// Build the initial request
LPMInitRequest *initRequest = [requestBuilder build];
// Initialize LevelPlay with the prepared request
[LevelPlay initWithRequest:initRequest completion:^(LPMConfiguration *_Nullable config, NSError *_Nullable error){
    if(error) {
        // There was an error on initialization. Take necessary actions or retry
    } else {
        // Initialization was successful. You can now create ad objects and load ads or perform other tasks
    }
}];
// Create a request builder with app key and ad formats. Add User ID if available
let requestBuilder = LPMInitRequestBuilder(appKey: "appKey")
        .withLegacyAdFormats([IS_REWARDED_VIDEO])
        .withUserId("UserId")
// Build the initial request
let initRequest = requestBuilder.build()
// Initialize LevelPlay with the prepared request 
LevelPlay.initWith(initRequest) 
{ config, error in
    if let error = error {
        // There was an error on initialization. Take necessary actions or retry
    } else {
        // Initialization was successful. You can now create ad objects and load ads or perform other tasks
    }
}

初期化の結果

Success – 初期化が正常に完了するとトリガーされます。この通知を受け取ったら、広告を作成して読み込むことができます。

Error – 設定が正常に取得されなかったため、広告を読み込むことができません。後で (インターネット接続が利用可能なとき、または失敗の理由が解決されたとき)、ironSource SDK の初期化を再試行することをお勧めします。

ステップ 5. 実装を確認する

ironSource SDK は、SDK とメディエーションの実装が正常に完了したことを確認する簡単な方法を提供しています。ironSource SDK の実装と、実装した追加のアドネットワークを確認するには、次のメソッドをプロジェクトに追加するだけです:

[ISIntegrationHelper validateIntegration];
ISIntegrationHelper.validateIntegration()

ironSource Integration Verification ツールの詳細については、こちらの記事をお読みください。

完了!これで、ironSource SDK がアプリに実装されました。
これで、Unity LevelPlay の広告ユニットと高度なメディエーションプラットフォームの使用を開始する準備が整いました。


次のステップは?

Integration Helper で実装を確認したら、実装ガイドに従って、広告フォーマットを実装します:

メディエーションに興味がありますか?このメディエーションの記事に従って動画リワードまたはインタースティシャル広告をアプリに実装してください。