【Swift】 NendSDK_iOSライブラリで広告を実装

###インタースティシャル広告、バナー広告、動画広告を実装する方法
#####まずはこちらのライブラリをpod installします。
pod 'NendSDK_iOS'
#####次に下記のサイトにログインして下さい。(新規登録は審査もありますので３日程かかる場合があります。)
https://nend.net/
*新規登録どこからすればええの？ってなったので一応記載しておきます。
メディア様からです。
#####リリース前のアプリの場合AppStoreURLは下記のURLを代用して下さい。
https://itunes.apple.com/app/id12345678
#####ログイン後広告枠の管理から設定して下さい。
![スクリーンショット 2021-02-19 20.35.22.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656839/4b08d72b-dcd3-bbbe-d1d6-8e8a4f922d78.png)
![スクリーンショット 2021-02-19 20.38.56.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656839/b6a65675-b692-3728-29ad-3764fa5f003e.png)

#####apikeyとspotIDは必要になりますのでメモしておいて下さい！
####Xcodeに戻ります。
#####バナー広告を表示するViewとインタースティシャル広告、動画広告を出すボタンを用意します。
####あとは下記を記載するだけです。
```swift
import UIKit
import NendAd

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        //インタースティシャル広告
        NADInterstitial.sharedInstance()?.loadAd(withSpotID: , apiKey: "")

        return true
    }
}
```
#####バナー広告を表示するViewのClassをNADViewにします。
Viewの大きさは広告サイズと同じにして下さい。
![スクリーンショット 2021-02-19 17.31.14.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/656839/ad82aff7-75fc-0d87-4a24-12e0c09d727e.png)

```swift
import UIKit
import NendAd

final class ViewController: UIViewController,　NADViewDelegate, NADInterstitialVideoDelegate {

   //バナー広告を表示するView
   @IBOutlet weak var nadView: NADView!

   //動画広告
    let adVideo = NADInterstitialVideo(spotID: , apiKey: "")
    
    override func viewDidLoad() {
        super.viewDidLoad()
        
        //バナー広告
        nadView.setNendID( , apiKey: "")
        nadView.delegate = self
        nadView.load()
        //動画広告
        adVideo.delegate = self
        adVideo.loadAd()
    }

   func nadViewDidFinishLoad(_ adView: NADView!) {

        print("delegate nadViewDidFinishLoad:")
    }
    
    func nadViewDidReceiveAd(_ adView: NADView!) {

        print("delegate nadViewDidReceiveAd")
    }
    
    func nadViewDidFail(toReceiveAd adView: NADView!) {
          // エラーごとに処理を分岐する場合
          let error: NSError = adView.error as NSError

          switch (error.code) {

          case NADViewErrorCode.NADVIEW_AD_SIZE_TOO_LARGE.rawValue:
              // 広告サイズがディスプレイサイズよりも大きい
              break
          case NADViewErrorCode.NADVIEW_INVALID_RESPONSE_TYPE.rawValue:
              // 不明な広告ビュータイプ
              break
          case NADViewErrorCode.NADVIEW_FAILED_AD_REQUEST.rawValue:
              // 広告取得失敗
              break
          case NADViewErrorCode.NADVIEW_FAILED_AD_DOWNLOAD.rawValue:
              // 広告画像の取得失敗
              break
          case NADViewErrorCode.NADVIEW_AD_SIZE_DIFFERENCES.rawValue:
              // リクエストしたサイズと取得したサイズが異なる
              break
          default:
              break
          }
   
  @IBAction func interstitialButton(_ sender: Any) {
   //インタースティシャル広告を表示する時に使うボタン
   private let showResult = NADInterstitial.sharedInstance()?.showAd(from: self)
      
        switch(showResult){

               case .AD_SHOW_SUCCESS:
                   print("広告の表示に成功しました。")
                   break
               case .AD_SHOW_ALREADY:
                   print("既に広告が表示されています。")
                   break
               case .AD_FREQUENCY_NOT_REACHABLE:
                   print("広告のフリークエンシーカウントに達していません。")
                   break
               case .AD_LOAD_INCOMPLETE:
                   print("抽選リクエストが実行されていない、もしくは実行中です。")
                   break
               case .AD_REQUEST_INCOMPLETE:
                   print("抽選リクエストに失敗しています。")
                   break
               case .AD_DOWNLOAD_INCOMPLETE:
                   print("広告のダウンロードが完了していません。")
                   break
               case .AD_CANNOT_DISPLAY:
                   print("指定されたViewControllerに広告が表示できませんでした。")
                   break
               @unknown default:
                   break
            }
 }

 @IBAction func tap(_ sender: Any) {
        
        //動画広告を表示
        if interstitialVideo.isReady{
           
            interstitialVideo.showAd(from: self)
        }
    }
    
    //広告の受信
    func nadInterstitialVideoAdDidReceiveAd(_ nadInterstitialVideoAd: NADInterstitialVideo!) {
        //動画広告
        print("受信完了") 
    }
   
    //エラー
    func nadInterstitialVideoAd(_ nadInterstitialVideoAd: NADInterstitialVideo!, didFailToLoadWithError error: Error!) {
        //動画広告
        print(error.debugDescription)
    }
    
    //表示がされない
    func nadInterstitialVideoAdDidFailed(toPlay nadInterstitialVideoAd: NADInterstitialVideo!) {
        //動画広告
        print("表示がされない")
    }
  }
}
```