2017-02-05 1 views
0

Официального руководство используют раскадровку https://firebase.google.com/docs/admob/ios/native-expressПоказать Admob Native Ads Программный с Objective C

Я пытаюсь загрузить собственные объявления в header из UITableView без использования раскадровки.

То, что я пробовал:

@property (nonatomic, strong) GADNativeExpressAdView *nAdView; 
... 
- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
     _nAdView.adUnitID = @"ca-app-pub-mycode"; 
     _nAdView.rootViewController = self; 
} 
... 
- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
     GADRequest *request = [GADRequest request]; 
     [self.nAdView loadRequest:request]; 
     return _nAdView; 
} 

Но ничего не произошло.

ответ

2

Является ли ваш nAdView связанным с раскадрой? Я думаю, что это не так. Возможно, вам нужно сопоставить экземпляр GADNativeExpressAdView с Storyboard. А потом, вы должны загрузить нативное объявление как делает официальный сайт Google:

@import GoogleMobileAds; 

@interface ViewController() 

@property(nonatomic, weak) IBOutlet GADNativeExpressAdView *nativeExpressAdView; 

@end 

@implementation ViewController 

- (void)viewDidLoad { 
    [super viewDidLoad]; 

    self.nativeExpressAdView.adUnitID = @"ca-app-pub-3940256099942544/2562852117"; 
    self.nativeExpressAdView.rootViewController = self; 

    GADRequest *request = [GADRequest request]; 
    [self.nativeExpressAdView loadRequest:request]; 
} 

@end 

Edit:

Без раскадровки, попробуйте следующее:

@property (nonatomic, strong) GADNativeExpressAdView *nAdView; 

- (void)ViewDidLoad { 
    self.nAdView = [[GADNativeExpressAdView alloc] initWithAdSize:GADAdSizeFromCGSize(CGSizeMake(width, GADAdViewHeight))]; 
    self.nAdView.adUnitID = @"ca-app-pub-mycode"; 
    self.nAdView.rootViewController = self; 
    self.nAdView.delegate = self; 
    [self.nAdView loadRequest:[GADRequest request]]; 
} 

- (UIView *)tableView:(UITableView *)tableView viewForHeaderInSection:(NSInteger)section { 
    return self.nAdView; 
} 

- (void)nativeExpressAdView:(GADNativeExpressAdView *)nativeExpressAdView 
    didFailToReceiveAdWithError:(GADRequestError *)error { 
    NSLog(@"Failed to receive ad: %@", error.localizedDescription); 
    [self.nAdView loadRequest:[GADRequest request]]; 
} 
+0

Извините за неполный вопрос. То, что я пытаюсь достичь, - это загружать собственные объявления программно, не используя раскадровку. – user2872856

+0

@ user2872856 Вы инициализировали (создавали экземпляр) 'GADNativeExpressAdView'? Кажется, что вы не создаете экземпляр GADNativeExpressAdView. – tofucodes

+0

@ user2872856 Этот официальный образец кода поможет вам. [link] (https://github.com/googleads/googleads-mobile-ios-examples/blob/master/Objective-C/advanced/NativeExpressTableViewExample/NativeExpressTableViewExample/TableViewController.m) – tofucodes

Смежные вопросы