NativeAdView
bir reklam oluşturmak için FBMediaView
kullanır. FBNativeAd
başlatır ve bir istemek için Görünüm Kontrolörünün uygulama dosyasındaki bir yöntemi ekleyin,
@import FBAudienceNetwork; // import Audience Network module
@interface MyViewController : UIViewController <FBNativeAdDelegate>
// Other code might go here...
@property (weak, nonatomic) IBOutlet UIImageView *adIconImageView;
@property (weak, nonatomic) IBOutlet UILabel *adTitleLabel;
@property (weak, nonatomic) IBOutlet UILabel *adBodyLabel;
@property (weak, nonatomic) IBOutlet UIButton *adCallToActionButton;
@property (weak, nonatomic) IBOutlet UILabel *adSocialContextLabel;
@property (weak, nonatomic) IBOutlet UILabel *sponsoredLabel;
@property (weak, nonatomic) FBMediaView *adCoverMediaView;
@property (weak, nonatomic) IBOutlet UIView *adView;
@end
Ardından: Şimdi, View Controller başlık dosyasına bir açıklamadan yanı sıra FBNativeAdDelegate protokolünü beyan ve UI .XIB için örnek değişkenleri bağlamak reklam yüklemek için:
FBNativeAd *nativeAd;
FBAdchoicesView *adChoicesView;
- (void)showNativeAd
{
nativeAd = [[FBNativeAd alloc] initWithPlacementID:@"YOUR_PLACEMENT_ID"];
nativeAd.delegate = self;
[nativeAd loadAd];
}
Şimdi kodunu ekledikten o reklamı yüklemek için, yükleme hatalarını işlemek için aşağıdaki işlevleri ekleyin ve reklamı oluşturmak için bu yüklendikten sonra:
- (void)nativeAdDidLoad:(FBNativeAd *)nativeAd
{
[self.adTitleLabel setText:nativeAd.title];
[self.adBodyLabel setText:nativeAd.body];
[self.SocialContextLabel setText:nativeAd.socialContext];
[self.sponsoredLabel setText:@”Sponsored”];
[self.adCallToActionButton setTitle:nativeAd.callToAction];
[nativeAd.icon loadImageAsyncWithBlock:^(UIImage *image) {
[self.adIconImageView setImage:image];
}];
// Allocate a FBMediaView to contain the cover image or native video asset
adCoverMediaView = [[FBMediaView alloc] initWithFrame:coverFrame]];
[adCoverMediaView setNativeAd:nativeAd];
// Add adChoicesView
adChoicesView = [[FBAdChoicesView alloc] initWithNativeAd:nativeAd];
[adView addSubview:adChoicesView];
[adChoicesView updateFrameFromSuperview];
// Register the native ad view and its view controller with the native ad instance
[nativeAd registerViewForInteraction:adView withViewController:self];
}
- (void)nativeAd:(FBNativeAd *)nativeAd didFailWithError:(NSError *)error
{
NSLog(@"Ad failed to load with error: %@", error);
}
Yerel reklam kapağı görüntüsünü görüntülemek için, hem görüntü hem de video varlıklarını görüntüleyebilen Facebook İzleyici Ağı MediaView kullanmanız önerilir.
Referans: https://developers.facebook.com/docs/audience-network/ios/native-api
Bu soru nasıl yanıtlanır? Şimdiye kadar uygulamıştım. UI takılı kalmayı nasıl düzeltebilirim? – Luda
Eğer siz de dispatch_async 'gibi yapabilirsin sağlanan Bilginiz göre olan mesele ne söz etmedi (dispatch_get_global_queue (DISPATCH_QUEUE_PRIORITY_DEFAULT, 0),^(boşluk) { // Arkaplan çalışması dispatch_async (dispatch_get_main_queue(),^(void) // Ana iş parçacığı çalışması (genellikle UI) adMediaView.nativeAd = nativeAd }); }); ' –
Bunu denedim. Çalışmadı. Kodunu bir cihazda mı çalıştırdın? UI'niz gecikmedi mi? – Luda