# APS インテグレーション(legacy)

> 広告スロットの設定、LevelPlayプラットフォームでのAPSの設定、APSアダプターのビルドへの追加によって、Amazonパブリッシャー サービス (APS)を統合します。

> **Important:**
>
> 以下のドキュメントでは、Unity が開発、所有、または運用するものではない製品またはサービス ("サードパーティ製品") を取り上げます。
> その情報は、古かったり、不完全であったりする可能性がありますが、利便性のために提供しています。
> サードパーティ製品を使用する際は、その製品の規約に従うものとします。
> Unity はそれらの製品に関して一切保証を行わず、その使用によって生じた損害や損失 (サードパーティプロバイダーのコンテンツ、広告、製品、資料に関する問題を含む) について責任を負いません。

> **Note:**
>
> このガイドは、LevelPlay SDK の古い機能バージョン (8.0.0 以降) に適用されます。バージョン 9.0.0 以降をカバーする最新のドキュメントは、[APS インテグレーション](aps-v9) を参照してください。

> **Note:**
>
> このメディエーションネットワークのアダプタ変更ログを表示するには、[iOS 用メディエーションネットワーク](/grow/levelplay/sdk/ios/mediation-networks.md.md#integrate-network-adapters) を参照してください。

## 前提条件

Amazonパブリッシャー サービス(APS)は招待制のプログラムです。APS を統合するには、LevelPlay SDK と APS SDK の両方を統合および初期化する必要があります。アプリケーションで APS 広告をディスプレイするには、以下に詳細を示す完全なインテグレーション フローを実行してください。

## ステップ 1. APS アカウントの作成

1. APS に連絡して、アプリケーションのアカウントを設定します。APS アカウントを作成するには、[APS Web サイト](https://aps.amazon.com/aps/contact-us/)に移動し、**接触**を選択してリクエストを開きます。
2. APS リクエストが承認されると、サインアップして APS でアカウントを作成するための招待リンクが送られてきます。
3. LevelPlay で APS を設定する前に、上記の手順を完了する必要があります。 

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

1. Appsメニューから適切なアプリケーションを選択し、**設定**を選択
2. Monetization サービスの設定メニューで **ironsource LevelPlay** を選択します。
3. スロットを追加し、各スロットに定義します。 ：
   1. 名前
   2. 広告サイズ
   3. 価格(自動/手動)
4. すべてのスロットの追加を完了し、認証情報を取得します。
   1. App IDの取得
   2. 価格帯の CSV ファイルをダウンロード

## ステップ 3. APS ネットワークワークのアクティベート

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

1. 上記の認証情報を取得したら、LevelPlay アカウントにログインし、**Monetize** (収益化) > **設定**> **SDK** ****Networks**** に移動します。
2. **Available Networks** のテーブルから APS を選択し、**アクティベート**を選択します。

![APS を選択し、アクティベートを選択します。](/api/media?file=/grow/media/images/Screen-Shot-2021-12-30-at-8.45.52.png)

3. 広告ネットワークのリストから APS を選択し、**設定** を選択します。

![APS を選択し、設定 を選択します。](/api/media?file=/grow/media/images/Screen-Shot-2021-12-30-at-8.47.04.png)

4. APS App ID を入力し、CSV ファイルをそのままアップロードします。

![App IDを入力してCSVをアップロード](/api/media?file=/grow/media/images/Screen-Shot-2021-12-29-at-22.46.02.png)

## ステップ 4. APS アダプタをビルドに追加する##step-4.-add-the-aps-adapter-to-your-build

### CocoaPods##cocoapods

APS SDK を Cocoapods と統合するには、podfile に以下の行を入力して準備完了です。

```objective-c
pod 'IronSourceAPSAdapter','4.3.20.0'
```

## ステップ 5.SKAdNetworkItemsとInfo.plistの更新##step-5.-update-skadnetworkitems-and-info.plist

次のコードを使用して、APS **SKAdNetworkItems** を Info.plist に定義します。

```xml
<key>SKAdNetworkItems</key>
<array>
<dict>
<key>SKAdNetworkIdentifier</key>
<string>p78axxw29g.skadnetwork</string>
</dict>
</array>
```

## ステップ 6.**Init APS SDK**##step-6.-**init-aps-sdk**

APS ネットワークワークでは、APS 広告をディスプレイするために Ironsource SDK と APS SDK の両方を初期化する必要があります。 

アプリケーションを開いた後、LevelPlay SDK を初期化する前に APS SDK を初期化します。APS 設定のステップ 2 で定義した APS App ID を使用します。 

```objective-c
#import <DTBiOSSDK/DTBiOSSDK.h>
- (ブーリアン)アプリケーション:(UIApplication *)アプリケーション didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
  [[DTBAds sharedInstance] setAppKey: @"APS_app_id"];
  return YES;
}
```

> **Note:**
>
> APS iOS SDK 5.0.0 以降では、**DTBAdLoader** オブジェクトは **DTBAdNetworkInfo** という新しいパラメーターを使用します。以下の例の実装の違いに注意してください。

### ロードバナー/MREC 広告##load-banner/mrec-ads

1. 各 Ironsource 広告単位ロード前に APS バナー広告リクエストを呼び出します（幅 320 または 728）。スロット UUID は、ロード広告リクエストの作成時に使用します。
   * APS iOS SDK 5.0.1 以降:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initBannerAdSizeWithWidth:320 高さ:高さ andSlotUUID:slotUID]; 
     DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_Unity_LEVELPLAY];
     DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
     [adLoader setSizes:size, nil]; 
     [adLoader loadAd:self];
     ```

   * APS iOS SDK 5.0.1 未満:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initBannerAdSizeWithWidth:320 高さ:高さ andSlotUUID:slotUID];
     DTBAdLoader *adLoader = [DTBAdLoader new];
     [adLoader setSizes:size, nil];
     [adLoader loadAd:self];

     ```

      
2. APS 広告が正常にロードされたら、広告データを Ironsource と共有します。これには以下のパラメータを含める必要があります。

   1. Bid Info (入札情報):Amazon 広告が表示されるために必要な情報
   2. エンコードされた価格:APS から返された落札広告価格
   3. UUIDスロット一意の識別子
   4. 幅:バナーの幅
   5. 高さ:バナーの高ささ

   ```objective-c
   - (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, @"幅":幅, @"高さ":高さ, @"pricePointEncoded":amznPricePoint, @"mediationHints":mediationHints};
       NSDictionary* apsData = @{IS_BANNER:bannerData};
           
       [IronSource setNetworkDataWithNetworkKey:@"APS" andNetworkData:apsData];
   }
   ```

   APS がフィルを返さない場合は、LevelPlay のロードバナーメソッドを呼び出します。
3. Ironsource バナー広告をロードします。詳細については[、こちら](/grow/levelplay/sdk/ios/banner-integration.md)を参照してください。

> **Note:**
>
> Ironsource の自動更新メカニズムを使用する場合は、各インプレッションの後に APS ロード広告を呼び出しようにしてください。  これにより、APS バナーは次のオークションにも参加できるようになります。このロジックを維持しない場合は、更新メカニズムをキャンセルし、前の広告を破棄した後に各広告を手動でロードします。

### インタースティシャル広告のロード##load-interstitial-ads

1. 各 Ironsource 広告単位ロードの前に APS インタースティシャル広告リクエストを呼び出します。スロット UUID は、ロード広告リクエストの作成時に使用します。
   APS iOS SDK 5.0.1 以降:

   ```objective-c
   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];
   ```

   APS iOS SDK 5.0.1 未満:

   ```objective-c
   DTBAdSize *size = [[DTBAdSize alloc] initInterstitialAdSizeWithSlotUUID:slotUUID];
   DTBAdLoader *adLoader = [DTBAdLoader new];
   [adLoader setSizes:size, nil];
   [adLoader loadAd:self];
   ```

   LevelPlay は、APS アダプター 4.3.3 から APS インタースティシャル動画広告をサポートします。インタースティシャルビデオをロードするには、以下のメソッドを呼び出します。

   アプリケーションが縦向きモードの場合：

   * APS iOS SDK 5.0.1 以降:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 高さ:480 スロット UUID:slotUID];
     DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_Unity_LEVELPLAY];
     DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
     [adLoader setSizes:size, nil]; 
     [adLoader loadAd:self];
     ```

      
   * APS iOS SDK 5.0.1 未満:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 高さ:480 スロット UUID:slotUID];
     DTBAdLoader *adLoader = [DTBAdLoader new];
     [adLoader setSizes:size, nil];
     [adLoader loadAd:self];
     ```

   アプリケーションが横向きモードの場合:

   * APS iOS SDK 5.0.1 以降:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 高さ:320 andSlotUUID:slotUUID];
     DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_Unity_LEVELPLAY];
     DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
     [adLoader setSizes:size, nil]; 
     [adLoader loadAd:self];
     ```

      
   * APS iOS SDK 5.0.1 未満:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 高さ:320 andSlotUUID:slotUUID];
     DTBAdLoader *adLoader = [DTBAdLoader new];
     [adLoader setSizes:size, nil];
     [adLoader loadAd:self];
     ```

2. APS 広告が正常にロードされたら、広告データを Ironsource と共有します。これには以下のパラメータを含める必要があります。
   1. Bid Info (入札情報):Amazon 広告が表示されるために必要な情報
   2. エンコードされた価格:APS から返された落札広告価格
   3. UUIDスロット一意の識別子

      ```objective-c
      - (void)onSuccess:(DTBAdResponse *)adResponse{ //svt 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];
      }
      ```

      APS がフィルを返さない場合は、LevelPlay のロード インタースティシャルメソッドを呼び出します。

3. Ironsource インタースティシャル広告をロードします。詳細については[、こちら](/grow/levelplay/sdk/ios/interstitial-integration.md)を参照してください。

### リワード広告##rewarded-ads

APS インテグレーションは、アプリケーションに実装するリワード広告の動作モードによって異なります。 

1. 手動読み込みモード:これは、APS と統合するために推奨される設定です。この場合、リワード広告がロードされるたびに APS 広告リクエストを呼び出し必要があります。
2. リワード広告デフォルトモード(自動):リワード広告の表示に LevelPlay デフォルト モードを使用する場合は、LevelPlay SDK の初期化前と APS SDK の初期化後に最初の APS 広告をロードする必要があります。さらに、各ショーの前に次の APS ロードリクエストを呼び出して、次のウォーターリクエストに影響を与えることをお勧めします。

### ロードリワード広告##load-rewarded-ads

1. 各 Ironsource 広告単位ロード前（または自動モードでの表示前）に APS リワード広告リクエストを呼び出します。スロット UUID は、ロード広告リクエストの作成時に使用します。****アプリケーションが****&#x7E26;向きモードの場合

   * APS iOS SDK 5.0.1 以降:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 高さ:480 スロット UUID:slotUID];
     DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_Unity_LEVELPLAY];
     DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
     [adLoader setSizes:size, nil]; 
     [adLoader loadAd:self];
     ```

      
   * APS iOS SDK 5.0.1 未満:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:320 高さ:480 スロット UUID:slotUID];
     DTBAdLoader *adLoader = [DTBAdLoader new];
     [adLoader setSizes:size, nil];
     [adLoader loadAd:self];
     ```

   アプリケーションが横向きモードの場合:

   * APS iOS SDK 5.0.1 以降:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 高さ:320 andSlotUUID:slotUUID];
     DTBAdNetworkInfo *adNetworkInfo = [[DTBAdNetworkInfo alloc] initWithNetworkName:DTBADNETWORK_Unity_LEVELPLAY];
     DTBAdLoader *loader = [[DTBAdLoader alloc]initWithAdNetworkInfo:adNetworkInfo];
     [adLoader setSizes:size, nil]; 
     [adLoader loadAd:self];
     ```

      
   * APS iOS SDK 5.0.1 未満:

     ```objective-c
     DTBAdSize *size = [[DTBAdSize alloc] initVideoAdSizeWithPlayerWidth:480 高さ:320 andSlotUUID:slotUUID];
     DTBAdLoader *adLoader = [DTBAdLoader new];
     [adLoader setSizes:size, nil];
     [adLoader loadAd:self];
     ```

2. APS 広告が正常にロードされたら、広告データを Ironsource と共有します。これには以下のパラメータを含める必要があります。
   1. メディエーションのヒント:Amazon 広告が表示されるために必要な情報
   2. エンコードされた価格:APS から返された落札広告価格
   3. UUIDスロット一意の識別子

```objective-c
- (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];
}
```

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

これで、アプリケーション内で APS の需要を提供できるようになりました。

## 次のステップ##next-steps

LevelPlay を通じて追加の広告ネットワークを活用するには、ネットワーク[アダプタ](/grow/levelplay/sdk/ios/mediation-networks.md)を統合し、インテグレーションガイドに従ってください。
