概要
ネイティブ広告は、アプリのUIに自然に統合される広告フォーマットです。広告要素(タイトル、画像、説明など)をアプリデザインに合わせて自由にカスタマイズできます。主な特徴
- アプリUIと完璧に統合可能なカスタムデザイン
- 広告要素への個別アクセスと配置
- 広告主プロフィール情報の表示オプション
- 追加カスタムフィールドのサポート
実装方法
ネイティブ広告の実装は次の手順で進めます:- 広告の読み込み
- カスタムビューの作成
- ビューのバインディング
- デリゲートの処理
1. 広告の読み込み
AdropNativeAdインスタンスを生成して広告を読み込みます。
Context IDの設定
コンテキストターゲティングのためにContext IDを設定できます。開発中はテストユニットIDを使用してください。テストユニットIDセクションを参照してください。
2. カスタムビューの作成
ストーリーボードまたはコードでネイティブ広告ビューを構成します。UIKit (Storyboard/XIB)
ストーリーボードでAdropNativeAdViewを生成し、広告要素をIBOutletとして接続します。
UIKit (コード)
3. ビューのバインディング
AdropNativeAdViewに広告要素をバインディングして広告データを表示します。
バインディングメソッド
| メソッド | 説明 | 必須 |
|---|---|---|
setIconView(_:onClick:) | アイコン画像ビューの設定. onClick: ((AdropNativeAd?, UIView) -> Void)? = nil | オプション |
setHeadLineView(_:onClick:) | タイトルラベルの設定. onClick: ((AdropNativeAd?, UIView) -> Void)? = nil | オプション |
setBodyView(_:) | 説明ラベルの設定 | オプション |
setMediaView(_:) | メイン画像/動画ビューの設定。動画クリエイティブには必須 — VTRとonAdVideoStart / onAdVideoEndコールバックは、SDKメディアコンテナがこのメソッドでバインドされた場合にのみ発生します。動画トラッキングとVTR参照。 | オプション |
setCallToActionView(_:onClick:) | CTAボタンの設定. onClick: ((AdropNativeAd?, UIView) -> Void)? = nil | オプション |
setAdvertiserView(_:onClick:) | 広告主ビューの設定. onClick: ((AdropNativeAd?, UIView) -> Void)? = nil | オプション |
setProfileLogoView(_:onClick:) | 広告主ロゴ画像ビューの設定. onClick: ((AdropNativeAd?, UIView) -> Void)? = nil | オプション |
setProfileNameView(_:onClick:) | 広告主名ラベルの設定. onClick: ((AdropNativeAd?, UIView) -> Void)? = nil | オプション |
setNativeAd(_:) | 広告データの設定 | 必須 |
onClickクロージャは、ユーザーがバインドされたビューをタップしたときに呼び出されます。現在のAdropNativeAd?インスタンスとタップされたUIViewをパラメータとして受け取ります。指定しない場合、デフォルトのクリック動作(リンク先URLを開く)が使用されます。広告主プロフィールを表示するには、Adropコンソールで該当広告ユニットの広告主プロフィール表示を有効にする必要があります。
4. デリゲートの処理
AdropNativeAdDelegateを実装して広告イベントを処理します。
デリゲートメソッド
| メソッド | 必須 | 説明 |
|---|---|---|
onAdReceived(_:) | 必須 | 広告読み込み成功時に呼び出される |
onAdFailedToReceive(_:_:) | 必須 | 広告読み込み失敗時に呼び出される |
onAdClicked(_:) | オプション | ユーザーが広告をクリックしたときに呼び出される |
onAdImpression(_:) | オプション | 広告が表示されたときに呼び出される |
onAdVideoStart(_:) | オプション | 動画広告の再生が開始されたときに呼び出される |
onAdVideoEnd(_:) | オプション | 動画広告の再生が完了したときに呼び出される |
クロージャコールバック
デリゲートの代わりにクロージャベースのコールバックを使用できます。デリゲートとクロージャの両方を設定すると、両方が呼び出されます。
広告プロパティ
AdropNativeAdオブジェクトを通じて広告データにアクセスできます。
基本プロパティ
広告主プロフィール
カスタムフィールド
Adropコンソールで設定した追加テキスト項目にアクセスできます。extraフィールドは、Adropコンソールの広告ユニット設定で定義した追加テキスト項目IDをキーとして使用します。プロパティ一覧
| プロパティ | 型 | 説明 |
|---|---|---|
unitId | String | 広告ユニットID |
contextId | String | コンテキストターゲティングID |
headline | String | 広告タイトル |
body | String | 広告説明 |
callToAction | String | CTAボタンテキスト |
icon | String | アイコン画像URL |
cover | String | カバー画像URL |
asset | String | メイン画像/動画URL |
creative | String | クリエイティブHTMLコンテンツ |
creativeSize | CGSize | クリエイティブコンテンツサイズ |
advertiser | String | 広告主名 |
advertiserURL | String | 広告主URL |
profile | AdropNativeAdProfile | 広告主プロフィール情報 |
extra | [String: String] | 追加カスタムフィールド |
accountTag | [String: Any] | アカウントレベルのタグデータ |
creativeTag | [String: Any] | クリエイティブレベルのタグデータ |
destinationURL | String? | 広告遷移先URL |
txId | String | トランザクションID |
campaignId | String | キャンペーンID |
creativeId | String | クリエイティブID |
browserTarget | BrowserTarget? | 広告クリック時のURL開き方 |
isLoaded | Bool | 広告が読み込まれたかどうか |
isBackfilled | Bool | バックフィル広告かどうか |
AdropNativeAdProfile
| プロパティ | 型 | 説明 |
|---|---|---|
displayLogo | String | 広告主ロゴ画像URL |
displayName | String | 広告主表示名 |
link | String? | 広告主ページへのリンク |
カスタムクリック
カスタムクリックを使用すると、デフォルトの動作(リンク先URLを開く)の代わりに、広告クリック動作を自分で処理できます。設定
全体クリック領域
setIsEntireClick(_:)を使用して、AdropNativeAdView全体をクリック可能にします。
useCustomClickがtrueの場合、setNativeAd(_:)でsetIsEntireClick(true)が自動的に呼び出されます。手動クリック
performClick()を使用して手動でクリックイベントをトリガーします。
URLを開く
open(_:useInAppBrowser:)を使用してプログラムでURLを開きます。
動画トラッキングとVTR
Adropはネイティブ広告の動画指標 — VTR(動画完了率)、onAdVideoStart、onAdVideoEnd — を、SDKメディアコンテナ(AdropNativeAdView.setMediaView(_:)でバインドされたUIView)内で動画がレンダリングされる場合にのみ収集します。
AdropNativeAd.assetプロパティは元の画像または動画ファイルのURLを返します。これはサムネイル表示や媒体社独自分析などの補助メタデータとして公開されており、再生を直接行うためのものではありません。
推奨パターン
動画ネイティブ広告には必ずSDKメディアコンテナをバインドしてください。特定の面がどうしても独自プレイヤーを使う必要があり、VTRが計測されないことを許容する場合、広告を
AdropNativeAdViewにバインドしたままにすることで、クリックとインプレッションのアトリビューションは引き続き確保できます。ただしその面を社内レポートで非VTRインベントリとして分類し、SDKが計測した動画パフォーマンスと混在させないでください。ベストプラクティス
エラー処理
広告読み込み失敗時に代替UIを表示してユーザー体験を維持してください。テストユニットID
開発およびテスト時には次のテストユニットIDを使用してください。| 広告タイプ | テストユニットID |
|---|---|
| ネイティブ (画像) | PUBLIC_TEST_UNIT_ID_NATIVE |
| ネイティブビデオ (16:9) | PUBLIC_TEST_UNIT_ID_NATIVE_VIDEO_16_9 |
| ネイティブビデオ (9:16) | PUBLIC_TEST_UNIT_ID_NATIVE_VIDEO_9_16 |
一括ロード (loads)
AdropNativeAd.loads(...)を使用すると、1回の呼び出しで複数のネイティブ広告をまとめてリクエストできます。フィード・カルーセル・ページネーションリストへ挿入する広告プールのプリフェッチに有用です。
シグネチャ
使用方法
デリゲートメソッド
| メソッド | 呼び出されるタイミング |
|---|---|
onAdsReceived(_:) | バッチ配信完了。すべての広告が完全にレンダリングされた状態で渡されます。 |
onAdsFailedToReceive(_:) | リクエスト拒否、ネットワーク失敗、または表示可能な広告がなかった場合 (ERROR_CODE_AD_NO_FILL)。 |
onAdClicked / onAdImpression / onAdVideoStart / onAdVideoEnd | 単体load()と同様に、各広告ごとに呼ばれます。 |
定数
1回の
loads(...)呼び出しで返却される広告の最大数。制約事項
- 呼び出しあたり最大5個。 サーバーがそれ以上を返しても先頭の5個のみ配信されます。
- バックフィルは適用されません。 ダイレクト広告が埋まらない場合、バックフィル設定に関わらず
onAdsFailedToReceiveがERROR_CODE_AD_NO_FILLで呼ばれます。 AdropBanner.loads(...)と異なり、ネイティブバッチはすべての広告のレンダリングが完了するまで待機してからonAdsReceived(_:)を呼びます。配信時点で各インスタンスは完全にレンダリングされています。- 返却された広告への強参照を保持してください。
AdropNativeAdViewにバインドされる前に解放されると黙って破棄されます。
バックフィル広告
バックフィル広告が有効な場合、ダイレクト広告がない時に自動的にバックフィル広告がロードされます。isBackfilledプロパティでバックフィル広告かどうかを確認できます。
AdChoicesの位置調整
バックフィルネイティブ広告で、AdChoicesマークを表示するコーナーを指定できます。load()呼び出し前にAdropNativeAdインスタンスのpreferredAdChoicesPositionを設定してください。
| 値 | 説明 |
|---|---|
.topLeft | 左上 |
.topRight | 右上(デフォルト) |
.bottomLeft | 左下 |
.bottomRight | 右下 |
この設定はバックフィルネットワークに渡される希望位置のヒントで、バックフィルネイティブ広告にのみ適用されます — ダイレクト広告には影響しません。必ず
load()呼び出し前に設定する必要があり、バックフィルネットワークがポリシー上別の位置に表示する場合があります。バックフィル広告を使用するには、
AdropAds-Backfill依存性を追加する必要があります。はじめにを参照してください。関連ドキュメント
はじめに
SDKのインストールと初期化
バナー広告
バナー広告の実装
インタースティシャル広告
インタースティシャル広告の実装
リワード広告
リワード広告の実装