AdMobメディエーションを利用した実装方法
AdMobメディエーションを利用してアドフリくんの広告を表示することができます。
実装手順に従い、各広告を導入してください。
追加情報については、AdMob公式ガイドを参照してください。
AdMobメディエーション作成
① メニューからメディエーションを選択して「メディエーショングループを作成」を行います。
② 広告フォーマットとプラットフォームを選択します。
広告種類によるAdMobの広告フォーマット
広告種類 | AdMobの広告フォーマット |
---|---|
動画リワード | リワード |
インタースティシャル | インタースティシャル |
ネイティブ | ネイティブアドバンス |
レクタングル | バナー |
モバイルバナー | バナー |
③ 広告のソースから「カスタムイベントを追加」を行います。
④ カスタムイベントの「ラベル」と「eCPM」を設定します。
⑤ 広告ユニットのマッピングから「Class name」と「Parameter」を設定します。
広告種類によるClass nameとParameter
広告種類 | Class name | Parameter |
---|---|---|
動画リワード | AdfurikunAdMobReward | アドフリくんの広告ID |
インタースティシャル | AdfurikunAdMobInterstitial | アドフリくんの広告ID |
ネイティブ | AdfurikunAdMobNativeAd | アドフリくんの広告ID |
レクタングル | AdfurikunAdMobRectangle | アドフリくんの広告ID |
モバイルバナー | AdfurikunAdMobBanner | アドフリくんの広告ID |
AdMobMediationAdapterフォルダをプロジェクトに追加
① adnetworkフォルダにある「AdMobMediationAdapter」をXcodeプロジェクトに追加します。
各広告の実装例
class ViewController: UIViewController {
var rewardedAd: GADRewardedAd?
override func viewDidLoad() {
super.viewDidLoad()
//動画リワードインスタンスを生成
rewardedAd = GADRewardedAd(adUnitID: "AdMob管理画面で設定したUnitID")
//広告を読み込む
rewardedAd?.load(GADRequest()) { error in
self.adRequestInProgress = false
if let error = error {
//広告読み込み失敗
} else {
//広告読み込み成功
}
}
}
//広告再生ボタン
@IBAction func playRewardedAd(sender: UIButton) {
if rewardedAd?.isReady == true {
rewardedAd?.present(fromRootViewController: self, delegate:self)
}
}
}
extension ViewController: GADRewardedAdDelegate {
func rewardedAdDidPresent(_ rewardedAd: GADRewardedAd) {
//広告再生開始時に呼ばれます
}
func rewardedAdDidDismiss(_ rewardedAd: GADRewardedAd) {
//広告を閉じた時に呼ばれます
}
func rewardedAd(_ rewardedAd: GADRewardedAd, didFailToPresentWithError error: Error) {
//広告表示失敗時に呼ばれます
}
}
class ViewController: UIViewController {
var interstitial: GADInterstitial!
override func viewDidLoad() {
super.viewDidLoad()
//インタースティシャル広告インスタンスを生成
interstitial = GADInterstitial(adUnitID: "AdMob管理画面で設定したUnitID")
interstitial.delegate = self
//広告をロード
interstitial.load(GADRequest())
}
//広告再生ボタン
@IBAction func playInterstitial(_ sender: AnyObject) {
if interstitial.isReady {
interstitial.present(fromRootViewController: self)
}
}
}
extension ViewController: GADInterstitialDelegate{
func interstitialDidReceiveAd(_ ad: GADInterstitial) {
//広告ロード成功時に呼ばれます
}
func interstitial(_ ad: GADInterstitial, didFailToReceiveAdWithError error: GADRequestError) {
//広告ロード失敗時に呼ばれます
}
func interstitialWillPresentScreen(_ ad: GADInterstitial) {
//広告再生時に呼ばれます
}
func interstitialDidDismissScreen(_ ad: GADInterstitial) {
//広告を閉じる時に呼ばれます
}
}
class ViewController: UIViewController {
IBOutlet weak var mediaView: GADMediaView!
var adLoader: GADAdLoader!
override func viewDidLoad() {
super.viewDidLoad()
//広告のロード
adLoader = GADAdLoader(adUnitID: YOUR_AD_UNIT_ID, rootViewController: self,
adTypes: [GADAdLoaderAdType.unifiedNative],
options: [])
adLoader.delegate = self
adLoader.load(GADRequest())
}
}
extension ViewController: GADUnifiedNativeAdLoaderDelegate {
//広告ロード成功時に呼ばれます
func adLoader(_ adLoader: GADAdLoader, didReceive nativeAd: GADUnifiedNativeAd) {
//広告を表示します
mediaView.mediaContent = nativeAd.mediaContent
}
func adLoader(_ adLoader: GADAdLoader, didFailToReceiveAdWithError error: GADRequestError) {
//広告ロード失敗時に呼ばれます
}
}
class ViewController: UIViewController {
//BannerViewインスタンスを定義、レイアウトを設定
var bannerView: GADBannerView!
override func viewDidLoad() {
super.viewDidLoad()
//広告のサイズを設定
// バナー:kGADAdSizeBanner レクタングル:kGADAdSizeMediumRectangle
bannerView = GADBannerView(adSize: kGADAdSizeBanner)
addBannerViewToView(bannerView)
bannerView.adUnitID = "AdMob管理画面で設定したUnitID"
bannerView.rootViewController = self
bannerView.delegate = self
//広告を読み込む
bannerView.load(GADRequest())
}
func addBannerViewToView(_ bannerView: GADBannerView) {
bannerView.translatesAutoresizingMaskIntoConstraints = false
view.addSubview(bannerView)
view.addConstraints(
[NSLayoutConstraint(item: bannerView,
attribute: .bottom,
relatedBy: .equal,
toItem: bottomLayoutGuide,
attribute: .top,
multiplier: 1,
constant: 0),
NSLayoutConstraint(item: bannerView,
attribute: .centerX,
relatedBy: .equal,
toItem: view,
attribute: .centerX,
multiplier: 1,
constant: 0)
])
}
}
extension ViewController: GADBannerViewDelegate {
func adViewDidReceiveAd(_ bannerView: GADBannerView) {
//広告の読み込み成功時に呼ばれます
}
func adView(_ bannerView: GADBannerView,
didFailToReceiveAdWithError error: GADRequestError) {
//広告の読み込み失敗時に呼ばれます
}
}