2015-09-04 2 views
8

Я хочу использовать скомпилированный вид из FBNativeAdView (не хочу настроить FBNative объявлений) .Как приведен в linkИОСА Facebook добавить FBNativeAdView, как подвид

The FBNativeAdView создает прекомпилированные собственные взгляды шаблона объявления и управляет собственные объявления.

И я Изменено NativeAdSample пример, приведенный в Facebook SDK .И добавить FBNativeAdView как подвид из MainView (adUIView).

-(void) nativeAdDidLoad: (FBNativeAd *) nativeAd 
{ 
     NSLog(@"Native ad was loaded, constructing native UI..."); 

     if (self._nativeAd) 
     { 
      [self._nativeAd unregisterView]; 
     } 

     self._nativeAd = nativeAd; 

     // Here I did add 
     FBNativeAdViewAttributes * attributes = [[FBNativeAdViewAttributes alloc] init]; 
     attributes.backgroundColor = [UIColor whiteColor]; 
     attributes.titleColor = [UIColor blackColor]; 

     FBNativeAdView * fbNativeAdView = [FBNativeAdView nativeAdViewWithNativeAd: self._nativeAd withType: FBNativeAdViewTypeGenericHeight300 withAttributes: attributes]; 
} 

Таким образом, вопрос в том, как добавить fbNativeAdView как подвид из ParentView поэтому он должен смотреть в родительский view.I сделал

[self.adUIView addSubview:fbNativeAdView]; 

без успеха.

Native Ad Template дает информацию о том, как получить FBNativeAdView от FBNativeAd .Но не рассказал о том, как использовать FBNativeAdView в UIView.

+0

"без успеха" -> что случилось? Любые ошибки/уведомления? – Roemer

+0

Только белый фон. –

+0

То же самое для меня ... только фон (для которого я могу установить цвет), но никакого другого контента.В примерах даже не используется FBNativeAdView – Marco

ответ

0

Теперь он работает, используя добавить рамку в FBNativeAdView в

fbNativeAdView.frame = CGRectMake(0, 0, 320, 120); 

Кроме того, теперь Native Ad Template дает информацию о том, как использовать FBNativeAdView в UIView.

Шаблон объявления можно настроить путем изменения значений его элементов:

- (void)nativeAdDidLoad:(FBNativeAd *)nativeAd 
{ 
    FBNativeAdViewAttributes *attributes = [[FBNativeAdViewAttributes alloc] init]; 

    attributes.backgroundColor = [UIColor colorWithRed:0.9 green:0.9 blue:0.9 alpha:1]; 
    attributes.buttonColor = [UIColor colorWithRed:0.4 green:0.9 blue:0.8 alpha:1]; 
    attributes.buttonTitleColor = [UIColor whiteColor]; 

    FBNativeAdView *adView = [FBNativeAdView nativeAdViewWithNativeAd:nativeAd 
     withType:FBNativeAdViewTypeGenericHeight300 withAttributes:attributes]; 

    [self.view addSubview:adView]; 

    CGSize size = self.view.bounds.size; 
    CGFloat xOffset = size.width/2 - 160; 
    CGFloat yOffset = (size.height > size.width) ? 100 : 20; 
    adView.frame = CGRectMake(xOffset, yOffset, 320, 300); 

    // Register the native ad view and its view controller with the native ad instance 
    [nativeAd registerViewForInteraction:adView withViewController:self]; 
} 
-2

NativeAdView использует FBMediaView для создания объявления. Ваш рейтинг для nativeAdView 300 слишком низок для загрузки любого типа FBMediaView.

Если вы хотите использовать высоту 300 сотен, создайте собственное представление (iOS) и используйте свойства, возвращаемые fbNativeAd. например сделать это в nativeAdDidLoad:

customView.titleLabel = nativeAd.title; 
FFBAdImage *icon = nativeAd.icon; 
[icon loadImageAsyncWithBlock:^(UIImage * _Nullable image) 
{ 
    [customView.imageView setImage:image]; //image returned by fb is 128x128 
}]; 
customView.fbAdBtn.titleLabel.text = nativeAd.callToAction; 

[self.view addSubView:customView]; 

, если вы хотите, чтобы весь пользовательский вид, чтобы быть интерактивными, то к этому

[nativeAd registerViewForInteraction:customView withViewController:self]; 

если вы хотите действия должны быть приняты только с помощью кнопки в пользовательском зрения, то это сделать ,

NSArray *clikAble = [NSArray alloc] initWithObjects:customView.fbAdBtn]; 
[nativeAd registerViewForInteraction:customView withViewController:self withClickableViews:clikAble]; 

Имеется ряд других объектов недвижимости, которые вы можете использовать в соответствии с вашими потребностями.

И не забывайте следить за этим правилам: https://developers.facebook.com/docs/audience-network/guidelines/native-ads

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

+0

Это было решение чувака - ваш рейтинг для nativeAdView 300 тоже для загрузки любого типа FBMediaView. – Luda

+1

Подождите, так что вы говорите, что значения по умолчанию, предоставленные Facebook, слишком низки, чтобы быть полезными, например. FBNativeAdViewTypeGenericHeight100, FBNativeAdViewTypeGenericHeight300 –

+0

@XCodeWarrier, они слишком низки для FBMediaView. – ibnetariq

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