Amazon Publisher Services 実装ガイド

⚡ Before you start

Amazon Publisher Services (APS) は、現在インタースティシャル広告とバナー/ MREC 広告をサポートしている招待制プログラムです。 APS を実装するには、ironSource SDK と APS SDK の両方を実装・初期化する必要があります。アプリケーションに APS 広告を表示するには、以下で説明するフローに従って実装してください。

APS iOS オペレーティングシステムのバージョン iOS12 以降をサポートします。

ステップ 1. APS アカウントを作成する

  1. アプリのアカウントを設定するには、APS にお問い合わせください。APS アカウントを作成するには、APS Web サイトにアクセスし、「 Contact Us 」ボタンをクリックしてリクエストを開きます。
  2. リクエストが承認されると、APS にサインアップしてアカウントを作成するための招待リンクが届きます。
  3. LevelPlay で APS の設定へ進む前に、上記の手順を完了する必要があります。

ステップ 2. APS ネットワークでスロットを設定する

  1. アプリメニューから適切なアプリケーションを選択し、「 setup 」をクリックします。
  2. マネタイズサービスの設定メニューとして「 IronSource LevelPlay 」を選択します。
  3. スロットを追加し、各スロットを定義します:
    1. 名前
    2. 広告サイズ
    3. プライスポイント(自動/手動)
  4. すべてのスロットの追加を完了し、認証情報を取得します:
    1. App ID を取得
    2. プライスポイントの CSV ファイルをダウンロード

ステップ 3. APS ネットワークをアクティベートする

LevelPlay プラットフォームで「 SDK Networks 」にアクセスし、APS パラメーターを LevelPlay アカウントに設定します。

  1. 上記の認証情報を取得したら、LevelPlay アカウントにログインし、 MonetizeSetupSDK Networks に移動します。
  2. Available Networks 」から APS を選択し、「 Activate 」ボタンをクリックします。
  3. アドネットワークの設定リストから APS の、「 Setup 」をクリックします。
  4. APS の アプリ ID を入力し、APS でダウンロードした CSV ファイルをそのままアップロードします。

ステップ 4. APS アダプターをビルドに追加する

Cocoapods

APS アダプターと SDK を CocoaPods で実装するには、Podfile に次の行を入力します。

pod 'IronSourceAPSAdapter','4.3.19.0'
  • Light theme
  • Dark theme
  • Copy to clipboard

ステップ 5. SKAdNetworkItems を Info.plist に設定する

次のコードを参考に、Info.plist の SKAdNetworkItems 以下に APS の SKAN ID を定義してください:

<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
</array>
  • Light theme
  • Dark theme
  • Copy to clipboard

ステップ 6. APS SDK の初期化

APS ネットワークで広告を表示するには、ironSource と APS SDK の両方を初期化する必要があります。
アプリケーションを開いた直後、ironSource SDK を初期化する前に APS SDK を初期化します。 この際に APS セットアップのステップ 2 で定義した APS アプリ ID を使用します。

#import <DTBiOSSDK/DTBiOSSDK.h>
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[DTBAds sharedInstance] setAppKey: @"APS_app_id"];
  return YES;
}
  • Light theme
  • Dark theme
  • Copy to clipboard

ステップ 7. 広告ごとの APS 入札情報を LevelPlay メディエーションへ共有する

各広告ユニットをロードする前に、APS API を呼んで ironSource SDK が広告をロードするために必要な情報を取得します。

必要な手順は次のとおりです:

  1. 各広告ユニットをロードする前に、APS 広告をロードします。
  2. SetNetworkData を呼び、APS の入札情報を ironSource へ共有します。
  3. LevelPlay メディエーション API を使用して、関連する広告ユニットをロードします。
Important! APS iOS SDK 5.0.0 以降では、DTBAdLoader オブジェクトは DTBAdNetworkInfo という新しいパラメータを受け取ります。以下の例では実装の違いに注意してください。

バナー/MREC 広告をロードする

  1. 各広告ユニットをロードする前に、320 または 728 を width に指定して APS バナー広告リクエストを呼びます。スロット UUID を使用して広告ロードリクエストを作成します。
    • APS iOS SDK 5.0.1 以降:
      DTBAdSize *size = [[DTBAdSize alloc] initBannerAdSizeWithWidth:320 height:height andSlotUUID:slotUUID]; 
      DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_UNITY_LEVELPLAY];
      DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
      [adLoader setSizes:size, nil]; 
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    • APS iOS SDK 5.0.1 以前:
      DTBAdSize *size = [[DTBAdSize alloc] initBannerAdSizeWithWidth:320 height:height andSlotUUID:slotUUID];
      DTBAdLoader *adLoader = [DTBAdLoader new];
      [adLoader setSizes:size, nil];
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

  2. APS 広告のロードに成功した場合は、広告データを LevelPlay メディエーションへ共有します。これには次のパラメータを含める必要があります:
    1. 入札情報:Amazon 広告を表示するために必要な情報
    2. エンコードされたプライスポイント:APS から返された落札広告価格
    3. UUID:スロットのユニーク ID
    4. 幅:バナーの幅
    5. 高さ:バナーの高さ

    - (void)onSuccess:(DTBAdResponse *)adResponse{ 
      
        NSString* amznPricePoint = [adResponse amznSlots];
        NSDictionary* mediationHints = [adResponse mediationHints];
        
        NSNumber* width = [NSNumber numberWithInt:adSize.width];
        SNumber* height = [NSNumber numberWithInt:adSize.height];
            
        NSDictionary* bannerData = @{@"uuid":slotUUID, @"width":width, @"height":height,  @"pricePointEncoded":amznPricePoint, @"mediationHints":mediationHints};
        NSDictionary* apsData = @{IS_BANNER:bannerData};
            
        [IronSource setNetworkDataWithNetworkKey:@"APS" andNetworkData:apsData];
       
    }
    • Light theme
    • Dark theme
    • Copy to clipboard

    APS がフィルを返さない場合は、LevelPlay の loadBanner を呼びます。

  3. ironSource バナー広告をロードします。
    詳細はこちら
バナーリロードメカニズム LevelPlay の自動リロードメカニズムの使用を選択した場合は、各インプレッションの後に必ず APS 広告をロードしてください。これにより、APS バナーも次回のオークションに確実に参加できるようになります。このロジックを維持したくない場合は、リロードメカニズムをキャンセルし、前の広告を破棄した後に次の広告を手動でロードしてください。

インタースティシャル広告をロードする

  1. 各広告ユニットをロードする前に、APS インタースティシャル広告リクエストを呼びます。ロード広告リクエストを作成するときは「 Slot UUID 」を使用します。
    • APS iOS SDK 5.0.1 以降:
      DTBAdSize *size = [[DTBAdSize alloc] initInterstitialAdSizeWithSlotUUID:slotUUID]; 
      DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_UNITY_LEVELPLAY];
      DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
      [adLoader setSizes:size, nil]; 
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    • APS iOS SDK 5.0.1 以前:
      DTBAdSize *size = [[DTBAdSize alloc] initInterstitialAdSizeWithSlotUUID:slotUUID];
      DTBAdLoader *adLoader = [DTBAdLoader new];
      [adLoader setSizes:size, nil];
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

  2. LevelPlay は、APS インタースティシャルビデオ広告を APS アダプター 4.3.3 以降サポートしています。インタースティシャルビデオをロードするには、以下のメソッドを呼びます:

    アプリがポートレートモードの場合:

    • APS iOS SDK 5.0.1 以降:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 height:480 andSlotUUID:slotUUID];
      DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_UNITY_LEVELPLAY];
      DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
      [adLoader setSizes:size, nil]; 
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    • APS iOS SDK 5.0.1 以前:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 height:480 andSlotUUID:slotUUID];
      DTBAdLoader *adLoader = [DTBAdLoader new];
      [adLoader setSizes:size, nil];
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    アプリがランドスケープモードの場合:

    • APS iOS SDK 5.0.1 以降:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 height:320 andSlotUUID:slotUUID];
      DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_UNITY_LEVELPLAY];
      DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
      [adLoader setSizes:size, nil]; 
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    • APS iOS SDK 5.0.1 以前:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 height:320 andSlotUUID:slotUUID];
      DTBAdLoader *adLoader = [DTBAdLoader new];
      [adLoader setSizes:size, nil];
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

  3. APS 広告がロードに成功した場合は、広告データを LevelPlay メディエーションへ共有します。これには次のパラメータを含める必要があります:
    1. 入札情報:Amazon 広告を表示するために必要な情報
    2. エンコードされたプライスポイント:APS から返された落札広告価格
    3. UUID:スロットのユニーク ID

    - (void)onSuccess:(DTBAdResponse *)adResponse{ //svt on onSuccess
        
        NSString* amznPricePoint = [adResponse amznSlots];
        NSDictionary* mediationHints = [adResponse mediationHints];
        NSDictionary* isData = @{@"uuid":slotUUID, @"pricePointEncoded":amznPricePoint, @"mediationHints":mediationHints};
        NSDictionary* apsData = @{IS_INTERSTITIAL:isData};
            
        [IronSource setNetworkDataWithNetworkKey:@"APS" andNetworkData:apsData];
    }
    • Light theme
    • Dark theme
    • Copy to clipboard

    APS がフィルを返さない場合は、LevelPlay の loadInterstitial() を呼びます。

  4. LevelPlay インタースティシャル広告を読み込みます。
    詳細はこちら

動画リワード広告

APS の実装は、アプリに実装する動画リワードの操作モードによって異なります。

  1. 手動ロードモード:APS の実装に推奨されるモードです。これには、各動画リワード広告をロードする前に APS 広告リクエストを呼ぶ必要があります。
  2. 動画リワードのデフォルトモード(自動ロード):動画リワードの表示に LevelPlay デフォルトモードを使用する場合、APS SDK を初期化した後、ironSource SDK を初期化する前に、最初の APS 広告をロードする必要があります。さらに、次のウォーターフォールリクエストのために、広告表示の前に次の APS ロードリクエストを呼ぶことをお勧めします。

動画リワード広告をロードする

  1. 各広告ユニットをロードする前(自動モードでは広告表示の前)に、APS の動画リワード広告リクエストを呼びます。ロード広告リクエストを作成するときは「 Slot UUID 」を使用します。

    アプリがポートレートモードの場合:

    • APS iOS SDK 5.0.1 以降:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 height:480 andSlotUUID:slotUUID];
      DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_UNITY_LEVELPLAY];
      DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
      [adLoader setSizes:size, nil]; 
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    • APS iOS SDK 5.0.1 以前:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 height:480 andSlotUUID:slotUUID];
      DTBAdLoader *adLoader = [DTBAdLoader new];
      [adLoader setSizes:size, nil];
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    アプリがランドスケープモードの場合:

    • APS iOS SDK 5.0.1 以降:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 height:320 andSlotUUID:slotUUID];
      DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_UNITY_LEVELPLAY];
      DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
      [adLoader setSizes:size, nil]; 
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

    • APS iOS SDK 5.0.1 以前:
      DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 height:320 andSlotUUID:slotUUID];
      DTBAdLoader *adLoader = [DTBAdLoader new];
      [adLoader setSizes:size, nil];
      [adLoader loadAd:self];
      • Light theme
      • Dark theme
      • Copy to clipboard

  2. APS 広告がロードに成功した場合は、広告データを LevelPlay メディエーションへ共有します。これには次のパラメータを含める必要があります:
    1. 入札情報:Amazon 広告を表示するために必要な情報
    2. エンコードされたプライスポイント:APS から返された落札広告価格
    3. UUID:スロットのユニーク ID

- (void)onSuccess:(DTBAdResponse *)adResponse{
    
    NSString* amznPricePoint = [adResponse amznSlots];
    NSDictionary* mediationHints = [adResponse mediationHints];
    NSDictionary* rvData = @{@"uuid":slotUUID, @"pricePointEncoded":amznPricePoint, @"mediationHints":mediationHints};
    NSDictionary* apsData = @{IS_REWARDED_VIDEO:rvData};
        
    [IronSource setNetworkDataWithNetworkKey:@"APS" andNetworkData:apsData];
}
  • Light theme
  • Dark theme
  • Copy to clipboard

APS がフィルを返さない場合は、LevelPlay の load rewarded video メソッドを呼びます。

完了!
これで、アプリで APS 広告を配信する準備が整いました。


次のステップは?
Unity LevelPlay でさらに他のアドネットワークを活用するには、アダプターを実装し、ガイドに従って設定してください。