iOS でネイティブ広告を表示する
概要
ネイティブ広告を使用すると、アプリケーションの残りの部分の外観に合わせてカスタマイズされた広告を作成できます。 この記事では、Mobile SDK Native Ads API について大まかに説明し、使用例を示します。
ネイティブ広告の 仲介 によってサポートされるネイティブ ネットワークは次のとおりです。
- Google AdMob と Google DoubleClick for Publishers (Google DFP)
ネイティブ広告を配信するには、次のセクションで説明するように、"ネイティブ広告リクエスト" を送信し、"ネイティブ広告応答" を受け取ります。
注:
作成した ANNativeAdRequest
オブジェクトと ANNativeAdResponse
オブジェクトへの参照を保持します。そうしないと、スコープ外になり、予期しない動作が発生します。
プロセス
- 要求オブジェクトを設定し、配置 ID や広告のアイコン 画像を事前に読み込むかどうかなど、そのプロパティの一部を設定します。
- 必要に応じて、この NativeAdRequest のrenderer_idを設定します。 (renderer_idの詳細については、「 ネイティブ レイアウト サービス」を参照してください)。renderer_idは、nativeAdResponse で返される vastxml、likes、downloads、saleprice、phone、address、display URL に対して指定する必要があります。
- 要求が成功したと仮定して、応答からビューにネイティブ広告アセットを読み込み、クリックなどのユーザー操作を追跡できるように登録します。
要求
まず、要求オブジェクトを設定し、配置 ID や広告のアイコン 画像を事前に読み込むかどうかなど、そのプロパティの一部を設定します。
ANNativeAdRequest *request = [[ANNativeAdRequest alloc] init];
request.placementId = @"123456";
request.rendererId = 123;
request.gender = ANGenderMale;
request.shouldLoadIconImage = YES;
request.shouldLoadMainImage = YES;
request.delegate = self;
[request loadAd];
応答
要求が成功したと仮定して、応答からビューにネイティブ広告アセットを読み込み、クリックなどのユーザー操作を追跡できるように登録します。
- (void)adRequest:(ANNativeAdRequest *)request didReceiveResponse:(ANNativeAdResponse *)response {
// (code which loads the view)
MyDummyView *view;
view.title.text = response.title;
view.text.text = response.body;
view.iconImageView.image = response.iconImage;
view.mainImageView.image = response.mainImage;
[view.callToActionButton setTitle:response.callToAction forState:UIControlStateNormal];
response.delegate = self;
[response registerViewForTracking:view
withRootViewController:self
clickableViews:@[view.callToActionButton, view.mainImageView]
error:nil];
}
この応答例では、ネイティブ広告のいくつかの要素を使用します。
- タイトル
- アイコン画像
- メイン広告画像
- Bodytext
- ユーザーがクリックして変換できる "アクションの呼び出し" ボタン
ネイティブでサポートされているフィールド
Mobile SDK のバージョン 5.0 以降では、ネイティブアセットのサポートは、アプリケーションでのネイティブ クリエイティブの設定方法に合わせて調整されています。
アプリケーションでレガシ ネイティブを引き続き使用している場合は、クリエイティブの "New" Native に移動する必要があります。
SDK でサポートされているネイティブ資産の包括的な一覧を次に示します。
Asset | 5.0 より前にサポートされていますか? | サポートされている Post 5.0? | v5.0 以降の API-Usage の例 |
---|---|---|---|
画像、幅、高さ | そうだそうだ | そうだそうだ | response.mainImage; response.mainImageSize; response.mainImageURL; |
アイコン + 幅 + 高さ | はい、いいえ、いいえ | そうだそうだ | response.iconImage; response.iconImageURL; response.iconImageSize; |
タイトル | はい | はい | response.title; |
主催 | はい | はい | response.sponsoredBy; |
Body text | はい | はい | response.body; |
Desc2 | はい | はい | response.additionalDescription; |
行動喚起 | はい | はい | response.callToAction; |
評価、スケール | そうそう | はい、いいえ | response.rating; |
いいね! | いいえ | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
ダウンロード | いいえ | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
Price | 不要 | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
セール価格 | 不要 | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
Phone | 不要 | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
Address | 不要 | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
表示 URL | 不要 | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
[URL] をクリックします | 不要 | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
[フォールバック URL] をクリックします | 不要 | はい (json のみ) | NSDictionary *customElements = response.customElements[@"ELEMENT"]; if(customElements){ NSString *likes = customElements[@"likes"] NSString *downloads = customElements[@"downloads"] NSString *price = customElements[@"price"] NSString *saleprice = customElements[@"saleprice"] NSString *phone = customElements[@"phone"] NSString *address = customElements[@"address"]; NSString *displayurl = customElements[@"displayurl"]; // To Get clickUrl NSString *clickUrl = customElements[@"link"][@"url"]; //To Get clickFallbackUrl NSString *clickFallbackUrl = customElements[@"link"][@"fallback_url"] } |
プライバシー URL | いいえ | はい | response.privacyLink; |
ビデオ | 不要 | はい | response.vastXML; |
Custom | はい | 不要 | |
Context | はい | 不要 | |
本文 | はい | 不要 |