2015-09-04 8 views
8

मैं FBNativeAdView से पहले से बनाए गए दृश्य का उपयोग करने (FBNative विज्ञापन अनुकूलित करने के लिए नहीं करना चाहते हैं) के रूप में चाहते हैं FBNativeAdView जोड़ने linkios फेसबुक subview

FBNativeAdView में दिए गए .as पहले से बनाए गए देशी विज्ञापन टेम्प्लेट विचारों बनाता है और का प्रबंधन करता है मूल विज्ञापन

और मैं NativeAdSample उदाहरण Facebook SDK में दिए गए .और mainView (adUIView) के एक subview के रूप FBNativeAdView जोड़ने बदल दिया था।

-(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]; 
} 

तो सवाल तो यह माता-पिता में देखने चाहिए ParentView की एक subview के रूप fbNativeAdView जोड़ने का तरीका है view.I यह

[self.adUIView addSubview:fbNativeAdView]; 
कोई सफलता के साथ

किया था।

Native Ad TemplateFBNativeAd से .लेकिन कैसे UIView में FBNativeAdView का उपयोग करने के बारे में बताया नहीं था कैसे FBNativeAdView प्राप्त करने के बारे में जानकारी देता है।

+0

"कोई सफलता के साथ" -> क्या हुआ? कोई त्रुटि/नोटिस? – Roemer

+0

केवल सफेद पृष्ठभूमि दृश्य। –

+0

मेरे लिए वही ... बस पृष्ठभूमि (जिसके लिए मैं रंग सेट कर सकता हूं) लेकिन कोई अन्य सामग्री नहीं।उदाहरण FBNativeAdView – Marco

उत्तर

0

अब यह में FBNativeAdView रूप

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

इसके अलावा अब Native Ad Template कैसे UIView में FBNativeAdView का उपयोग करने के बारे में जानकारी देता फ्रेम जोड़ने का उपयोग कर काम करते हैं।

विज्ञापन टेम्प्लेट अपनी तत्वों के मूल्यों को बदलने के द्वारा अनुकूलित किया जा सकता:

- (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 का उपयोग करता है। देशी एडीवीव 300 के लिए आपकी हाइट, लोड करने के लिए किसी भी प्रकार के FBMediaView के लिए बहुत कम है।

यदि आप 300 सौ की ऊंचाई का उपयोग करना चाहते हैं, तो मूल दृश्य (आईओएस) बनाएं और 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

यह समाधान दोस्त था - देशी एडिव्यू 300 के लिए आपकी हाइट भी है लोड करने के लिए किसी भी प्रकार के FBMediaView के लिए कम। – Luda

+1

प्रतीक्षा करें ताकि आप कह रहे हों कि फेसबुक द्वारा प्रदान किए गए डिफ़ॉल्ट उपयोगी होने के लिए बहुत कम हैं, उदा। FBNativeAdViewTypeGenericHeight100, FBNativeAdViewTypeGenericHeight300 –

+0

@XCodeWarrier वे FBMediaView के लिए बहुत कम हैं। – ibnetariq

संबंधित मुद्दे