2015-09-04 20 views
8

voglio usare vista precompilati da FBNativeAdView (non voglio personalizzare FBNative Ad) .Come dato nel linkios Facebook aggiungere FBNativeAdView come visualizzazione secondaria

Il FBNativeAdView crea predefiniti vista nativi modello di annuncio e gestisce annunci nativi.

E ho Changed NativeAdSample esempio dato in Facebook SDK .E aggiungere FBNativeAdView come una visualizzazione secondaria di 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]; 
} 

Quindi la domanda è come aggiungere fbNativeAdView come una visualizzazione secondaria di ParentView quindi dovrebbe vedere nel genitore view.I fatto

[self.adUIView addSubview:fbNativeAdView]; 

senza successo.

Native Ad Template dà informazioni su come ottenere FBNativeAdView da FBNativeAd .Ma non ha detto su come utilizzare FBNativeAdView in UIView.

+0

"senza successo" -> che cosa è successo? Qualche errore/avviso? – Roemer

+0

Solo vista sfondo bianco. –

+0

Lo stesso per me ... solo sfondo (per il quale posso impostare il colore) ma nessun altro contenuto.Gli esempi non utilizzano nemmeno FBNativeAdView – Marco

risposta

0

Ora funziona utilizzando aggiungere telaio in FBNativeAdView come

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

anche ora Native Ad Template fornisce informazioni su come utilizzare FBNativeAdView in UIView.

Il modello di annuncio può essere personalizzato modificando i valori dei suoi elementi:

- (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 utilizza FBMediaView per creare un annuncio. La tua altezza per nativeAdView 300 è troppo bassa per poter caricare qualsiasi tipo di FBMediaView.

Se si desidera utilizzare un massimo di 300, creare una visualizzazione nativa (iOS) e utilizzare le proprietà restituite da fbNativeAd. per esempio. fare questo nel vostro 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]; 

se si desidera che tutta la visualizzazione personalizzata per essere cliccabile allora a questo

[nativeAd registerViewForInteraction:customView withViewController:self]; 

se si vuole intervenire per essere presa solo dal pulsante nella visualizzazione personalizzata poi fare questo .

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

Ci sono molte altre proprietà che è possibile utilizzare in base alle proprie esigenze.

E non dimenticate di seguire questa guida: https://developers.facebook.com/docs/audience-network/guidelines/native-ads

e cercare di fare tutto schermo FBNativeAdView penso che sarà sicuramente caricare una vista.

+0

Quello era il tizio della soluzione - Anche il tuo hight per nativoAdView 300 è troppo basso per qualsiasi tipo di FBMediaView da caricare. – Luda

+1

Attendi così che stai dicendo che le impostazioni predefinite fornite da Facebook sono troppo basse per essere utili, ad es. FBNativeAdViewTypeGenericHeight100, FBNativeAdViewTypeGenericHeight300 –

+0

@XCodeWarrier sono troppo bassi per FBMediaView. – ibnetariq