# iOS でのバナー広告の実装

> iOS アプリケーションにバナー広告を実装します。ビュー階層内でバナービューオブジェクトを作成および表示し、デリゲートを使用して広告イベントを管理します。

> **Important:**
>
> [application-ads.txt](/monetization/dashboard/app-ads-txt.md) は、詐欺に対処し広告エコシステムに透明性をもたらす [IAB](https://www.iab.com/) イニシアチブです。記載されているとおりに app-ads.txt を実装してください。そうしないと、バナーの需要が大幅に減るおそれがあります。

他のビューと同様に、バナービューオブジェクトはビュー階層に配置できます。これにより、各バナーインスタンスの位置をカスタマイズしたり、複数のバナーを表示したりできます。

> **Note:**
>
> [Apple のガイドライン](https://developer.apple.com/documentation/uikit/uiview/positioning_content_relative_to_the_safe_area) に記載されているように、バナーコンテンツはセーフエリア外ではレンダリングされません。

## スクリプトの実装##script-implementation

以下のスクリプトサンプルは、画面に 2 つのバナー広告を表示するための実装例です。参照されているクラスの詳細については、`UADSBannerAd` API のセクションを参照してください。

### MREC バナー形式の実装##implementing-the-mrec-banner-format

> **Note:**
>
> バナー広告を表示する前に、Unity Ads を [初期化](/ads-ios/4.19.0/sdk-integration/initialize-sdk.md) する必要があります。

アプリでミディアムレクタングル (MREC) サイズの広告フォーマットを表示するには、300 x 250、300 x 300、450 x 450 など、適切なサイズを使用する必要があります。具体的には、300 x 250 の MREC バナー広告の場合、以下のコード例のサイズを

```objective-c
CGSizeMake(320, 50)
```

以下の調整されたサイズに置き換えます。

```objective-c
CGSizeMake(300, 250)
```

#### バナー広告ロード例##banner-ad-load-example

1. **Objective-C**

   ```objective-c
   @インターフェース MyDelegate ：NSObject <UADSBannerAdDelegate>
   @end

   @implementation MyDelegate
   - (void)bannerImpression:(UADSBannerAd *)banner {
   }
   - (void)bannerDidClick:(UADSBannerAd *)banner {
   }
   - (void)bannerDidFailShow:(UADSBannerAd *)banner
                   error:(id<UnityAdsError>)error {
   }
   @end

   @プロパティ （strong） UADSBannerAd *bannerAd;

   UADSBannerLoadConfigurationBuilder *builder =
   [[UADSBannerLoadConfigurationBuilder alloc]
   initWithPlacementId:placementId
               bannerSize:CGSizeMake(320, 50)
               デリゲート:デリゲート];
   builder = [builder withMediationInfo:self.mediationInfo];
   builder = [builder withAdMarkup:bidResponse];

   [UADSBannerAd load:[builder build]
       completion:^(UADSBannerAd *ad, id<UnityAdsError> error) {
   if (!error) {
       self.bannerAd = ad;
       [container addSubview:ad.view];
   }
   }];
   ```

2. **Swift**

   ```swift
   クラス MyDelegate：NSObject, UADSBannerAdDelegate {
   func bannerImpression(_ banner:UADSBannerAd) {
   }

   func bannerDidClick(_ banner:UADSBannerAd) {
   }

   func bannerDidFailShow(
      _ banner:UADSBannerAd,
      error：UnityAdsError
   ) {
    }
   }

   var bannerAd:UADSBannerAd?

   let config = UADSBannerLoadConfigurationBuilder(
   placementId: placementId,
   bannerSize：CGSize(幅:320， 高さ：50),
   デリゲート:デリゲート
   )
   .with(mediationInfo: mediationInfo)
   .with(adMarkup: bidResponse)
   .build()

   UADSBannerAd.load(config) { ad, error in
   if let ad = ad {
         self.bannerAd = ad
         container.addSubview(ad.view)
       }
   }
   ```

**次のステップ**: [収益化戦略](/monetization/getting-started/monetization-strategy.md) ガイドを確認し、[実装をテスト](/ads-ios/4.19.0/sdk-integration/test-integration.md) します。
