iOS アドバンスト設定

ユーザー ID の設定

サーバー間コールバックを使用してリワード広告ユニットでユーザーにリワードを提供している場合、または Ad Quality ユーザージャーニーを使用する場合は、setUserID メソッドを使用して各ユーザーにユニークな識別子( UserID )を定義する必要があります。

userID 設定はユーザーデータのロスを防ぐため、init リクエストの前に行う必要があります。userID には、NSString で 1 〜 64 文字のユニークな英数字を使用してください。

[IronSource setUserId:YOUR_USERID];
IronSource.setUserId(userID)
Note: 全てのユーザーにユニークな ID を設定できる事を保証するため、ID に IDFA は使用しないでください。

セグメントの定義

特定のオーディエンスに合わせて広告の配信方法を簡単にカスタマイズできるようになりました。ユーザーが属するセグメントに従って SDK が広告を配信できるように、ユーザーの詳細を ironSource のサーバーに通知する必要があります。

ironSource は、ユーザーセグメントのアウトラインのために、以下の3つの方法で ironSource サーバーへデータを送信することができます:

  • デバイスプロパティ:ironSource SDK は、位置情報、デバイスモデル、デバイスの製造元、アプリのバージョン、OS など、ユーザーのデバイスに関連する特定の標準パラメーターを自動的に収集します。したがって、このデータを手動で送信する必要はありません。
  • ユーザープロパティ:年齢、性別、作成日などの包括的なユーザーデータ(サポートされている全てのセグメントプロパティのリストと以下の説明を参照)は、API で中継する必要があります。ironSource プラットフォームで定義したセグメントに基づいて SDK がさまざまなユーザーを分類できるよう、以下で説明する方法でユーザーの詳細を送信してください。
  • カスタムセグメント:ユーザーの詳細をそのままサーバーへ送信せずに、アプリ側で事前に定義された条件でカスタムセグメントを作成し、ironSource プラットフォームでそのユーザーセグメントの広告設定をカスタマイズすることができます。
ダイナミックセグメント ironSource SDK 7.2.0+ を使用している場合は、ISSegment API を使用してセッション中にセグメントを変更できます。
これは次に読み込まれる広告に影響するので、各広告ユニットを読み込む前に呼び出すことで動的にウォーターフォールへ影響を与えることができます。 ironSource セグメントの詳細については、こちらをご覧ください。

ユーザープロパティを渡す

ironSource プラットフォームでセグメントを定義したら、サーバーにユーザーの詳細を通知する必要があります。

まず、セグメントを初期化します:

ISSegment *segment = [[ISSegment alloc]init];
let segment: ISSegment = ISSegment()

セグメントのベースとするための、サーバーに送信するプロパティを定義します。この情報は、次のいずれかの方法で送信できます:

  1. ユーザーが属するセグメントが分かる場合は、セグメント名を入力します:
    [segment setSegmentName:YOUR_SEGMENT_NAME];
    segment.segmentName = "YOUR_SEGMENT_NAME"
  2. ユーザーの詳細を送信します。ironSource は、セグメントにユーザーを関連付けるために設定できる一連の標準ユーザープロパティを API で提供します。説明については、以下の表を参照してください。
    // Set user age
    [segment setAge:USER_AGE]; 
    // Set user gender
    [segment setGender:USER_GENDER];
    // Set user level
    [segment setLevel:USER_LEVEL];
    // Set user's paying status
    [segment setPaying:USER_PAYING];
    // Set user's total in-app purchase history
    [segment setIapTotal:YOUR_IAP_TOTAL];
    // Set user creation date
    [segment setUserCreationDate:YOUR_DATE];
    // Set user age
    segment.age = USER_AGE
    // Set user gender
    segment.gender = ISGender.IRONSOURCE_USER_FEMALE
    // Set user's total in-app purchases
    segment.iapTotal = USER_IAP_TOTAL
    // Set user's level
    segment.level = USER_LEVEL
    // Set user's paying status
    segment.paying = USER_PAYING_STATUS
    // Set user creation date
    segment.userCreationDate = NSDate() as Date!

    さらに、セグメントごとに最大五つのカスタムユーザープロパティを設定できます:

    [segment setCustomValue:YOUR_CUSTOM_VALUE forKey:YOUR_CUSTOM_KEY];
    segment.setCustomValue("CUSTOM_VALUE", forKey: "CUSTOM_KEY")

    次に、セグメントに基づいて広告ユニットを配信するには、セグメント名またはユーザープロパティを設定し、次の関数を呼び出します:

    [IronSource setSegment:YOUR_SEGMENT];
    IronSource.setSegment(YOUR_SEGMENT);

サポートされているセグメントのプロパティ

Segment Properties Type Limitation Description
segmentName String
  • 英数字
  • 32 文字まで
ironSource アカウントで設定したセグメント名
Age Int 1-99 ユーザーの年齢
Gender enum IRONSOURCE_USER_MALE または IRONSOURCE_USER_FEMALE ユーザーの性別
Paying BOOL YES または NO
  • アプリ内課金で購入した事がある場合は YES
  • アプリ内課金で購入した事がない場合は NO
iap_total Double 1-999999.99 ユーザーがアプリ内課金に費やした累計金額
userCreationDate NSDate 0または0以上 ユーザーがアプリをインストールした日付
Custom Parameters key=string, value=string
  • ironSource は最大五つのカスタムパラメータをサポートします
  • 英数字
  • 32 文字まで
サーバーに送信したい追加データ

ユーザーのセグメント名を取得する

  1. クラスでこのインターフェースを採用して、セグメント名プロトコルに準拠し、セグメント名の受信を有効にします:ISSegmentDelegate
  2. ユーザーが属するセグメント名を受け取るため、次のデリゲートに登録します。それにより、SDK はデリゲートにイベントを通知します
    [IronSource setSegmentDelegate:self];
    IronSource.setSegmentDelegate(self)
  3. (void)didReceiveSegement:(NSString *)segment
    func didReceiveSegement(_ segment: String!)

iOS のカスタムパラメーター

ironSource SDK は、動画リワードのカスタムパラメーターをサポートします。広告ユニットの初期化時にカスタムパラメータを渡し、ユーザーの完了イベント時にパラメータを受け取ることができます。

これで、Unity LevelPlay のすべてのメディエーションネットワークにカスタムパラメータを渡すことができます。

Note:
  1. カスタムパラメーターは、サーバー間の完了コールバックのみと連携して機能し、登録したサーバーはコールバック文字列の一部としてパラメータを受け取ります。
  2. init リクエストに複数のカスタムパラメータを挿入できます。

実装コード

動画リワード

  • カスタムパラメータは、セッションごとに複数回設定できます。
  • 値をリセットするには、clearRewardedVideoServerParameters を使用してから、新しい値を設定します。
[IronSource setRewardedVideoServerParameters:(NSDictionary *)parameters];
[IronSource clearRewardedVideoServerParameters];

価格の下限設定

Floor Configuration API を使用すると、特定の広告ユニットに最低価格を設定できます。ユーザーごとに最低価格を設定することで、ターゲティングの効率性を向上させ、レイテンシを短縮し、広告パフォーマンスを最適化できます。

最低価格を広告オブジェクトの作成時に割り当てる必要があり、そのオブジェクトの後続のすべてのロードに適用されます。

Note: SDK 8.9.0 以上
プロパティ 説明
Bid floor double Non-bidder と Bidder インスタンス両方に適用される最低 eCPM を定義する米ドルでの価格

インタースティシャル広告での使用例

// Define a price floor configuration
LPMInterstitialAdConfig *adConfig = [[[LPMInterstitialAdConfigBuilder new] setBidFloor: 1.23] build]; // Set the price floor in USD
// Apply the configuration to an interstitial ad unit
LPMInterstitialAd *interstitialAd = [[LPMInterstitialAd alloc] initWithAdUnitId:@"adUnitId" config:adConfig];
// Define a price floor configuration
let adConfig = LPMInterstitialAdConfigBuilder()
 .set(bidFloor: 1.23) // Set the price floor in USD
 .build()
// Apply the configuration to an interstitial ad unit
let interstitialAd = LPMInterstitialAd(adUnitId: "adUnitId", config: adConfig)

インタースティシャルの完全な実装についてはこちら

動画リワードでの使用例

// Define a price floor configuration
LPMRewardedAdConfig *adConfig = [[[LPMRewardedAdConfigBuilder new] setBidFloor: 1.23] build]; // Set the price floor in USD
// Apply the configuration to a rewarded ad unit
LPMRewardedAd *rewardedAd = [[LPMRewardedAd alloc] initWithAdUnitId:@"adUnitId" config:adConfig];
// Define a price floor configuration
val adConfig = LevelPlayRewardedAd.Config.Builder()
 .setBidFloor(1.23) // Set the price floor in USD
 .build()
// Apply the configuration to a rewarded ad unit
val rewardedAd = LevelPlayRewardedAd("adUnitId", adConfig)

動画リワードの完全な実装についてはこちら

バナー広告での使用例

// Define a price floor configuration
LPMBannerAdViewConfig *adConfig = [[[LPMBannerAdViewConfigBuilder new] setBidFloor: 1.23] build]; // Set the price floor in USD
// Apply the configuration to a banner ad unit
LPMBannerAdView *bannerAd = [[LPMBannerAdView alloc] initWithAdUnitId:@"adUnitId" config:adConfig];
// Define a price floor configuration
let adConfig = LPMBannerAdViewConfigBuilder()
 .set(bidFloor: 1.23) // Set the price floor in USD
 .build()
// Apply the configuration to a banner ad unit
let bannerAd = LPMBannerAdView(adUnitId: "adUnitId", adConfig)

動画リワードの完全な実装についてはこちら

ironSource SDK エラーコード

ironSource は、SDK 実装の失敗の説明を提供するエラーフィードバックメカニズムを提供します。何か問題が発生した場合、または実装の一部が正しく完了しなかった場合に、これらのエラーが発生します。

ironSource Error オブジェクトには、error codemessage が含まれています。以下これらはすべて、考えられるエラーとその機能に基づくメッセージです:

Error Codes Ad Unit Description
508 N/A • メディエーション・ネットワークの初期化失敗
• Demand Only モード以外で Demand Only API が呼ばれた
• Demand Only モードで Demand Only ではない API が呼ばれた
509 Interstitial 表示失敗:表示できる広告が無い
Rewarded Video
510 Interstitial ロード失敗:サーバーレスポンス失敗
Rewarded Video
Banner
520 Interstitial 表示失敗:インターネット接続無し( ShouldTrackNetworkState が有効の場合)
Rewarded Video 表示失敗:インターネット接続無し
524 Interstitial 表示失敗:プレースメントがペーシング制限に達している
表示失敗:プレースメントがキャッピング制限に達している
Rewarded Video
526 Interstitial 表示失敗:広告ユニットが一日のキャッピング制限に達している
Rewarded Video
604 Banner ロード失敗:プレースメントがキャッピング制限に達している
605 Banner ロード失敗:バナーのロード中に予期しない例外が発生
606 Banner ロード失敗:全てのアドネットワークインスタンスの在庫無
1007 Interstitial オークション失敗:オークションリクエストに必要な情報を全て含まれていない
Rewarded Video
1022 Rewarded Video 表示失敗:RV 表示中に新たな RV の表示は不可
1023 Rewarded Video 表示失敗:表示できる広告がない時に Show RV が呼ばれた
1036 Interstitial 表示失敗:インタースティシャルの表示中に新たなインタースティシャルの表示は不可
1037 Interstitial ロード失敗:インタースティシャルの表示中に新たなインタースティシャルのロードは不可
1055 Rewarded Video ロード失敗:タイムアウトによるロードキャンセル
1056 Rewarded Video ロード失敗: RV の表示中に新たな RV のロードは不可