iOS アドバンスト設定
ユーザー ID の設定
サーバー間コールバックを使用してリワード広告ユニットでユーザーにリワードを提供している場合、または Ad Quality ユーザージャーニーを使用する場合は、setUserID メソッドを使用して各ユーザーにユニークな識別子( UserID )を定義する必要があります。
userID 設定はユーザーデータのロスを防ぐため、init リクエストの前に行う必要があります。userID には、NSString で 1 〜 64 文字のユニークな英数字を使用してください。
[IronSource setUserId:YOUR_USERID];
IronSource.setUserId(userID)
セグメントの定義
特定のオーディエンスに合わせて広告の配信方法を簡単にカスタマイズできるようになりました。ユーザーが属するセグメントに従って SDK が広告を配信できるように、ユーザーの詳細を ironSource のサーバーに通知する必要があります。
ironSource は、ユーザーセグメントのアウトラインのために、以下の3つの方法で ironSource サーバーへデータを送信することができます:
- デバイスプロパティ:ironSource SDK は、位置情報、デバイスモデル、デバイスの製造元、アプリのバージョン、OS など、ユーザーのデバイスに関連する特定の標準パラメーターを自動的に収集します。したがって、このデータを手動で送信する必要はありません。
- ユーザープロパティ:年齢、性別、作成日などの包括的なユーザーデータ(サポートされている全てのセグメントプロパティのリストと以下の説明を参照)は、API で中継する必要があります。ironSource プラットフォームで定義したセグメントに基づいて SDK がさまざまなユーザーを分類できるよう、以下で説明する方法でユーザーの詳細を送信してください。
- カスタムセグメント:ユーザーの詳細をそのままサーバーへ送信せずに、アプリ側で事前に定義された条件でカスタムセグメントを作成し、ironSource プラットフォームでそのユーザーセグメントの広告設定をカスタマイズすることができます。
これは次に読み込まれる広告に影響するので、各広告ユニットを読み込む前に呼び出すことで動的にウォーターフォールへ影響を与えることができます。 ironSource セグメントの詳細については、こちらをご覧ください。
ユーザープロパティを渡す
ironSource プラットフォームでセグメントを定義したら、サーバーにユーザーの詳細を通知する必要があります。
まず、セグメントを初期化します:
ISSegment *segment = [[ISSegment alloc]init];
let segment: ISSegment = ISSegment()
セグメントのベースとするための、サーバーに送信するプロパティを定義します。この情報は、次のいずれかの方法で送信できます:
- ユーザーが属するセグメントが分かる場合は、セグメント名を入力します:
[segment setSegmentName:YOUR_SEGMENT_NAME];
segment.segmentName = "YOUR_SEGMENT_NAME"
- ユーザーの詳細を送信します。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 |
|
ironSource アカウントで設定したセグメント名 |
Age | Int | 1-99 | ユーザーの年齢 |
Gender | enum | IRONSOURCE_USER_MALE または IRONSOURCE_USER_FEMALE | ユーザーの性別 |
Paying | BOOL | YES または NO |
|
iap_total | Double | 1-999999.99 | ユーザーがアプリ内課金に費やした累計金額 |
userCreationDate | NSDate | 0または0以上 | ユーザーがアプリをインストールした日付 |
Custom Parameters | key=string, value=string |
|
サーバーに送信したい追加データ |
ユーザーのセグメント名を取得する
- クラスでこのインターフェースを採用して、セグメント名プロトコルに準拠し、セグメント名の受信を有効にします:
ISSegmentDelegate
- ユーザーが属するセグメント名を受け取るため、次のデリゲートに登録します。それにより、SDK はデリゲートにイベントを通知します
[IronSource setSegmentDelegate:self];
IronSource.setSegmentDelegate(self)
-
(void)didReceiveSegement:(NSString *)segment
func didReceiveSegement(_ segment: String!)
iOS のカスタムパラメーター
ironSource SDK は、動画リワードのカスタムパラメーターをサポートします。広告ユニットの初期化時にカスタムパラメータを渡し、ユーザーの完了イベント時にパラメータを受け取ることができます。
これで、Unity LevelPlay のすべてのメディエーションネットワークにカスタムパラメータを渡すことができます。
- カスタムパラメーターは、サーバー間の完了コールバックのみと連携して機能し、登録したサーバーはコールバック文字列の一部としてパラメータを受け取ります。
- init リクエストに複数のカスタムパラメータを挿入できます。
実装コード
動画リワード
- カスタムパラメータは、セッションごとに複数回設定できます。
- 値をリセットするには、clearRewardedVideoServerParameters を使用してから、新しい値を設定します。
[IronSource setRewardedVideoServerParameters:(NSDictionary *)parameters]; [IronSource clearRewardedVideoServerParameters];
ウォーターフォールコンフィギュレーションを使用した価格制限( beta )
ウォーターフォールコンフィギュレーション は、ウォーターフォールの上限価格と下限価格の制限を動的に設定する事ができる API です。これを使用して設定された制限は、ユーザーごとに返されるウォーターフォールに対して動的に作用し、ロード時間やレイテンシーを短縮する事ができます。
制限設定には以下のパラメータが含まれ、これらを任意に組み合わせることもできます:
プロパティ | 型 | 説明 |
ceiling | double | Non-bidder インスタンスに適用される最大 eCPM を定義する米ドルでの価格 |
floor | double | Non-bidder インスタンスとBidder インスタンスに適用される最小 eCPM を定義する米ドルでの価格 |
ウォーターフォールコンフィギュレーションを作成する
WaterfallConfiguration クラスは、ウォーターフォールをカスタマイズまたはフィルタリングするための構成オブジェクトを表します。
ウォーターフォールコンフィギュレーションを作成するには、WaterallConfigurationBuilder を定義します:
// define a WaterallConfigurationBuilder
ISWaterfallConfigurationBuilder *builder = [ISWaterfallConfiguration builder];
// Build the WaterfallConfiguration and add data to constrain or control a waterfall
[builder setCeiling:@ceiling];
[builder setFloor:@floor];
ISWaterfallConfiguration *configuration = [builder build];
// set a configuration for an ad unit
[IronSource setWaterfallConfiguration:configuration forAdUnit:[ISAdUnit IS_AD_UNIT_REWARDED_VIDEO]];
ウォーターフォールコンフィギュレーションをリセットする
セッション中にウォーターフォールコンフィギュレーションを変更することができます。特定の広告ユニットの設定をリセットするには、ISWaterfallConfiguration.clear() 関数を使用します。
ISWaterfallConfiguration *clearConfiguration = [ISWaterfallConfiguration clear];
[IronSource setWaterfallConfiguration:clearConfiguration forAdUnit:[ISAdUnit IS_AD_UNIT_REWARDED_VIDEO]];
ウォーターフォールコンフィギュレーションを上書きする
構築された WaterfallConfiguration は不変であるため、既存の設定を変更するには、新しいウォーターフォールコンフィギュレーションを作成する必要があります。ビルダーをインライン化し、ビルダーパターンに合わせて定義を設定することもできます。
...
[IronSource setWaterfallConfiguration:configuration forAdUnit:[ISAdUnit IS_AD_UNIT_REWARDED_VIDEO]];
ISWaterfallConfigurationBuilder *builder2 = [ISWaterfallConfiguration builder];
[builder2 setCeiling:@ceiling];
[builder2 setFloor:@floor];
ISWaterfallConfiguration *configuration2 = [builder build];
[IronSource setWaterfallConfiguration:configuration2 forAdUnit:[ISAdUnit IS_AD_UNIT_REWARDED_VIDEO]];
ironSource SDK エラーコード
ironSource は、SDK 実装の失敗の説明を提供するエラーフィードバックメカニズムを提供します。何か問題が発生した場合、または実装の一部が正しく完了しなかった場合に、これらのエラーが発生します。
ironSource Error オブジェクトには、error code と message が含まれています。以下これらはすべて、考えられるエラーとその機能に基づくメッセージです:
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 | ||
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 のロードは不可 |