Facebook Audience Network:將FBNativeAd設(shè)置為FBMediaView堆疊UI

來源: 編輯之家
作者:編輯之家
時間:2020-10-26
17106
如何將FBNativeAd設(shè)置為FBMediaView堆疊UI?

pexels-fauxels-3184647.jpg

編程之家收集整理的這篇文章主要介紹了ios–FBAudienceNetwork:將FBNativeAd設(shè)置為FBMediaView堆疊UI,編程之家小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。

以下代碼行使我的UI堆棧

  1. adMediaView.nativeAd = nativeAd

  2. // adMediaView - FBMediaView

  3. // nativeAd - FBNativeAd

我已經(jīng)嘗試將其在后臺線程中異步執(zhí)行,但沒有幫助.有辦法解決嗎?

  1. dispatch_async(dispatch_get_global_queue( DISPATCH_QUEUE_PRIORITY_DEFAULT,0),{

  2.    adMediaView.nativeAd = nativeAd

  3. });

我已經(jīng)通過pod安裝了FBAudienceNetwork,并且更新了它.最新版本是4.7.0

  1. pod 'FBAudienceNetwork'

解決方法

NativeAdView使用FBMediaView創(chuàng)建廣告.

現(xiàn)在,在您的View Controller頭文件中聲明了FBNativeAdDelegate協(xié)議,并聲明并將實(shí)例變量連接到您的UI.XIB:

  1. @import FBAudienceNetwork; // import Audience Network module

  2. @interface MyViewController : UIViewController <FBNativeAdDelegate>

  3.  // Other code might go here...

  4.  @property (weak,nonatomic) IBOutlet UIImageView *adIconImageView;

  5.  @property (weak,nonatomic) IBOutlet UILabel *adTitleLabel;

  6.  @property (weak,nonatomic) IBOutlet UILabel *adBodyLabel;

  7.  @property (weak,nonatomic) IBOutlet UIButton *adCallToActionButton;

  8.  @property (weak,nonatomic) IBOutlet UILabel *adSocialContextLabel;

  9.  @property (weak,nonatomic) IBOutlet UILabel *sponsoredLabel;

  10.  @property (weak,nonatomic) FBMediaView *adCoverMediaView;

  11.  @property (weak,nonatomic) IBOutlet UIView *adView;

  12. @end

然后,在View Controller的實(shí)現(xiàn)文件中添加一個初始化FBNativeAd并請求加載廣告的方法:

  1. FBNativeAd *nativeAd;

  2. FBAdchoicesView *adChoicesView;

  3. - (void)showNativeAd

  4. {

  5.  nativeAd = [[FBNativeAd alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID"];

  6.  nativeAd.delegate = self;

  7.  [nativeAd loadAd];

  8. }

現(xiàn)在,您已經(jīng)添加了加載廣告的代碼,添加以下功能來處理加載故障,并在加載后構(gòu)建廣告:

  1. - (void)nativeAdDidLoad:(FBNativeAd *)nativeAd

  2. {

  3.  [self.adTitleLabel setText:nativeAd.title];

  4.  [self.adBodyLabel setText:nativeAd.body];

  5.  [self.SocialContextLabel setText:nativeAd.socialContext];

  6.  [self.sponsoredLabel setText:@”Sponsored”];

  7.  [self.adCallToActionButton setTitle:nativeAd.callToAction];

  8.  [nativeAd.icon loadImageAsyncWithBlock:^(UIImage *image) {

  9.    [self.adIconImageView setImage:image];      

  10.  }];

  11.  // Allocate a FBMediaView to contain the cover image or native video asset

  12.  adCoverMediaView = [[FBMediaView alloc] initWithFrame:coverFrame]];

  13.  [adCoverMediaView setNativeAd:nativeAd];

  14.  // Add adChoicesView

  15.  adChoicesView = [[FBAdChoicesView alloc] initWithNativeAd:nativeAd];

  16.  [adView addSubview:adChoicesView];

  17.  [adChoicesView updateFrameFromSuperview];

  18.  // Register the native ad view and its view controller with the native ad instance

  19.  [nativeAd registerViewForInteraction:adView withViewController:self];

  20. }

  21. - (void)nativeAd:(FBNativeAd *)nativeAd didFailWithError:(NSError *)error

  22. {

  23.  NSLog(@"Ad failed to load with error: %@",error);

  24. }

要顯示原生廣告封面圖片,建議您使用能夠同時顯示圖片和影片資源的Facebook Audience Network MediaView.

參考:https://developers.facebook.com/docs/audience-network/ios/native-api

總結(jié)

以上是編程之家為你收集整理的ios–FBAudienceNetwork:將FBNativeAd設(shè)置為FBMediaView堆疊UI全部內(nèi)容,希望文章能夠幫你解決ios–FBAudienceNetwork:將FBNativeAd設(shè)置為FBMediaView堆疊UI所遇到的程序開發(fā)問題。

如果覺得編程之家網(wǎng)站內(nèi)容還不錯,歡迎將編程之家網(wǎng)站推薦給程序員好友。

立即登錄,閱讀全文
版權(quán)說明:
本文內(nèi)容來自于編輯之家,本站不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。文章內(nèi)容系作者個人觀點(diǎn),不代表快出海對觀點(diǎn)贊同或支持。如有侵權(quán),請聯(lián)系管理員(zzx@kchuhai.com)刪除!
掃碼登錄
打開掃一掃, 關(guān)注公眾號后即可登錄/注冊
加載中
二維碼已失效 請重試
刷新
賬號登錄/注冊
個人VIP
小程序
快出海小程序
公眾號
快出海公眾號
商務(wù)合作
商務(wù)合作
投稿采訪
投稿采訪
出海管家
出海管家