Posted at
iOSDay 6

ネイティブアドのすゝめ(iOS)

More than 3 years have passed since last update.

家族とMacとネット環境さえあれば、どこでも生きていける@neirazaです。

今年の10月からサイバーエージェントのアドテク本部AdTech NativeUnitてとこで、iOSおよびAndroid向けのSDKをつくってます。

最近、ネイティブアドのお仕事をしており、良い機会なので色々とまとめてみました。


ネイティブアドの概要


@neiraza的な解釈

「媒体に自然と表示し見せる、広告自体の呼び出し元となる枠」

ネイティブアドにとって重要なのは、

それ単体で価値のある枠で、その枠をタップした先に利用者が求める答えがある、その答えこそが広告だった。

たぶん、そんな状態なんだと思います。

僕は今のところ、ネイティブアドと言われる広告を入れた日本のアプリしか見たことがないのですが、

これが成功する、カッコイイ、ネイティブアドだぜ!ってのは無いように思えます。

ずっと以前からネイティブアドと呼ばれずに存在していたタイプの広告に名前がついたくらいの状況かなと思ってます。

何か面白い案とか、ないすかね。

ちなみに僕は最初、ネイティブアドってネイティブ技術(モバイルの)でつくる広告だと思ってましたが、普通にJSでタグ埋め埋めな広告とかも指すので、結構範囲は広いです。


業界標準的なやつ

業界標準的な取りまとめは米国のオンライン広告の業界団体IAB一般社団法人 インターネット広告推進協議会(JIAA)などのサイトで、抑えたほうが良いと思います。

特にTHE ADVERTISING PLAYBOOKは一度、目を通した上で日本の商慣習、現状などを見ていったほうが良いと思います。


ネイティブアドに触ってみよう

MoPub Inc.が公開しているmopub-ios-sdkを適当に解説しつつ、動かしてみます。

MoPub?って人もいるかと思いますが、Twitterが昨年9月に4億ドルぐらいで買収したモバイル広告ネットワークをやっている会社です。


動かしてみよう

mopub-ios-sdkをローカルにcloneした上で、Xcode環境が万全な状態を前提に進めます。

サンプルアプリを実行するにはMoPubSampleAppのスキーマを選択し実行するだけ。

画面起動後に、NativeAd(TableView Manager)をタップする。

(下記画像を参照のこと)

MPNativeAdTableViewController_1.png

すると下みたいな表示が出てきます。

こいつはUITableView内の2行目だけをネイティブアドに差し替える実装をしています。ソースはこちら

MPNativeAdTableViewController_2.png

Twitterでよくこんな感じの広告みますよね。

MPNativeAdTableViewController_3.png


実装をみてみよう

さて、スーパーざっくり解説を始めます。

MPNativeAdTableViewController#viewDidLoad で、UITableViewのオブジェクトをMPTableViewAdManagerを生成し渡している。

これは MPNativeAdTableViewController で実装したUITableViewDataSource#tableView:cellForRowAtIndexPath:indexPath内でセル表示時に、その行が広告行の場合はさきほど用意した MPTableViewAdManager を呼び出し、その中であらかじめ渡しておいた、UITableViewのオブジェクトからdequeueReusableCellWithIdentifier:indexPathしています。

肝心の広告データは、MPNativeAdTableViewController#viewDidLoadで、 MPNativeAdRequest を用意し発射!

bloksで取得した広告をデータソース元となるNSArrayに突っ込んでUITableView#reloadDataを呼びテーブルを更新した広告が表示されます。

とまぁ、比較的簡単な作り込みになっているわけですが、

MPTableViewAdManager のコメントにこう書いてあります。ほんとかよw


The MPTableViewAdManager class provides convenient functionality for adding advertisements

* to a table view.



MoPub SDKにケチをつけよう

この公開してくださっているSDK様に、 ケチをつけてみたい と思います。

僕がユーザーなら、このSDKが便利だとは思いません。

広告データを自分で取得して、自分でデータソース元につめて、表示しています。

全然、便利でもなんでもないし、SDK導入コストはそこそこ高いと思います。

この程度のSDKを提供されるぐらいなら、

広告データ取得のAPI公開と、インプレッションなど広告配信側が考えるタイミング・頻度で何かをするものがあるなら、それは広告データのモデルクラスを提供してもらい、例えばインプレッションならその中でプロキシパターン的なやつで広告配信側に返してあげる仕組みとかが、あればいいんじゃないかなって思います。

Twitter様が絡んでいるから、多少、導入しにくくても、使っちゃいますよ!って感じですよね。

個人的にManagerって名前のクラスって、ホント何してんだよ。なにニヤニヤしてんだよ。この名前って、なんなんだよ。


さいごに

2015年もネイティブアドに振り回されながら 「儲かるネイティブアド」「作っていて/利用していてネイティブアド」 とかを見つけて、もっと楽しくお仕事が楽しくできたらなーと思っています。


エンジニアのネイティブ広告のアドテク社交場ってどこかあれば、おしえてください(T ^ T)