AdExchangeネイティブ広告 - united-adstir/AdStir-Integration-Guide-iOS GitHub Wiki

対応OS

iOS 8.0以上

Google Mobile Ads SDKは7.28.0以上をご利用ください

プロジェクトへのSDKの追加

CocoaPodsの利用(推奨)

CocoaPodsを利用すると、adstir SDKを簡単プロジェクトに追加できます。 まだCocoaPodsを利用されていない場合は、CocoaPodsのサイトをご覧頂き、導入してください。

既存、もしくは新規に生成したPodfileを開き、下段の2行を追加し、adstir SDKを利用するように設定します。

platform :ios, "6.0"

# 省略

pod 'AdStir-Ads-SDK'
pod 'AdStir-Ads-SDK/AdMobMediationAdapter'

新規にadstir SDKを追加する場合は、下記のターミナルアプリケーションを開き、プロジェクトのディレクトリコマンドを実行します。

$ pod install

adstir SDKを更新、または削除する場合は、下記のコマンドを実行します。

$ pod update

新規にCocoaPodsを導入した場合、プロジェクト名.xcworkspaceというファイルが生成されますので、今までのプロジェクトファイルではなく、こちらのファイルを開いて開発を進めてください。 すでに利用していた場合は、引き続き開発を進めてください。

手動でのプロジェクトへの追加

以前のバージョンのSDKを利用されている場合は、必ず関連するファイルを全て削除してください。

  1. GoogleMobileAds.frameworkAdstirAds.frameworklibAdMobMediationAdapter-AdstirAds.aを、プロジェクト内の任意の箇所にドラッグ&ドロップします。
  2. Copy items if neededにチェックを入れます。
  3. Add to targets欄で、adstir SDKを利用するすべてのターゲットにチェックを入れます。
  4. Finishをクリックします。

依存Framework/Libraryの追加

名前 ステータス
CoreMotion.framework Required
GLKit.framework Required
SafariServices.framework Optional

iOS 10以降では、CoreMotionをリンクする場合、Info.plistにPrivacy - Motion Usage Description(NSMotionUsageDescription)キーを追加し、使用理由を説明する必要があります。

ビルド設定の変更

  1. プロジェクトファイル設定画面を開きます
  2. ネイティブ広告を組み込むビルドターゲットを選択します
  3. `Build Target“タブを選択します
  4. 画面右側の検索窓にOther Linker Flagsと入力し、検索します
  5. Other Linker Flags欄に、-ObjCと設定します
    adstirのSDKを呼び出すためにはこの設定が必須となり、設定がされていない場合は、案件切れ扱いとなってしまいます
  6. 組み込む対象の全てのビルドターゲットに、同じ設定を行います
    もしくは、この設定はプロジェクト単位で設定することも可能です

MoPub広告を利用される場合

こちらをご覧ください。

広告の設置

SDKの実装例

// 下記のインポートが必要です
@import GoogleMobileAds;

// GADUnifiedNativeAdViewを継承したViewを用意します
@interface AdXNativeAdView : GADUnifiedNativeAdView
@end

@interface ViewController () <GADUnifiedNativeAdLoaderDelegate, GADUnifiedNativeAdLoaderDelegate>

@property(nonatomic, strong) GADAdLoader *adLoader;

@end

@implementation ViewController

- (void)viewDidLoad {
  GADNativeAdViewAdOptions *adViewOptions = [[GADNativeAdViewAdOptions alloc] init];
  adViewOptions.preferredAdChoicesPosition = GADAdChoicesPositionTopRightCorner;

  // kGADAdLoaderAdTypeUnifiedNativeでリクエストを行います
  self.adLoader = [[GADAdLoader alloc] initWithAdUnitID:kCustomEventNativeAdUnitID
                                     rootViewController:self
                                                adTypes:@[ kGADAdLoaderAdTypeUnifiedNative ]
                                                options:@[ adViewOptions ]];
  self.adLoader.delegate = self;

  [self.adLoader loadRequest:[GADRequest request]];
}

:
:


#pragma mark GADUnifiedNatveAdLoaderDelegate implementation

// ネイティブ広告の読み込み成功時に呼び出されます。
- (void)adLoader:(GADAdLoader *)adLoader didReceiveUnifiedNativeAd:(GADUnifiedNativeAd *)nativeAd {
      :
      :

    AdXNativeAdView *nativeAdView =
    [[NSBundle mainBundle] loadNibNamed:@"AdXNativeAdView" owner:nil options:nil]
    .firstObject;
    nativeAdView.nativeAd = nativeAd;

      :
      :
    
    // バナー画像や動画などのコンテンツを配置します
    [nativeAdView.mediaView setMediaContent:nativeAd.mediaContent];
    // タイトルを設定します
    ((UILabel *)nativeAdView.headlineView).text = nativeAd.headline;
    // 説明文を設定します
    ((UILabel *)nativeAdView.bodyView).text = nativeAd.body;
    // CATテキストを設定します
    [((UIButton *)nativeAdView.callToActionView) setTitle:nativeAd.callToAction
                                                 forState:UIControlStateNormal];
    // アイコン画像を設定します
    ((UIImageView *)nativeAdView.iconView).image = nativeAd.icon.image;
    // 広告主を設定します
    ((UILabel *)nativeAdView.advertiserView).text = nativeAd.advertiser;
    // レーティングを設定します
    ((UILabel *)nativeAdView.starRatingView).text = nativeAd.starRating.stringValue;
}

詳細はgoogleのドキュメントをご覧ください。