2010-09-02 39 views

回答

10

爲什麼不使用Adwhirl。它的偉大SDK,使您能夠完成您所需要的。您可以設置不同廣告網絡的優先級設置,如果您發現一個網絡的性能優於其他網絡,則可以隨時對其進行優化設置。

它可以根據請求失敗或優先級處理顯示廣告的所有邏輯,而無需您擔心它。您所做的只是創建一個adwhirl視圖並請求一個廣告。其餘的事情包括適當的清爽。如果iAd第一次失敗,然後顯示admob,但是下一個iAd加載成功,則會顯示而不是admob,假設您將iAd設置爲更高優先級的網絡。

http://adwhirl.com

+0

這是我決定的解決方案,但是我在實現AdWhirl後出現了一些問題。最重要的是,該應用將在啓動時請求廣告,並且只會失敗而不再提出其他請求!很多時候,我加載應用程序,應用程序將永遠都不會adWhirlDidReceiveAd:也不會adWhirlDidFailToReceiveAd :.此外,我的iAd請求總是失敗,所以我甚至無法看到我需要的廣告框,以便直觀地完成廣告到我的應用程序的集成! – 2010-09-05 05:08:14

+0

你對iAds的滿意度如何?你是否收到一些廣告? – Goles 2010-09-09 05:36:16

+0

adwirl不支持ARC。 – 2012-10-25 01:46:37

1

我有iAds和Admob。

我強烈建議先加載iAd,如果你沒有得到廣告使用admob。如果您收到廣告,則iAd的廣告有效每千次展示費用要高於admob。請記住,iAd每30秒刷新一次,以避免廣告方法被多次調用。

我的應用程序已被批准,你可以得到它,八達通甲骨文。 http://kurl.ws/Ay

+0

太好了,謝謝你提供的信息。兩個admob廣告出現在屏幕上,並且在意識到iad失敗方法每30秒被調用一次後我能夠解決它。 如何處理iAd最初失敗的情況,您成功將admob廣告放入視圖中,然後iAd在此之後成功一段時間。每一種情況都會發生嗎? – 2010-09-02 23:39:14

+0

我想我隱藏了iAd視圖,以防萬一。 我可能會做的是把iAd視圖放回去,並刪除admob。 iAd會讓你賺更多的錢。 – 2010-09-03 01:31:10

3

你通過設置可見NO隱藏ADBannerView?通過ADBannerView,如果您將可見性設置爲NO,那麼它將停止詢問廣告。要「隱藏」ADBannerView,您需要將其轉換到屏幕外的某個位置。

1

可以使用的AdWhirl 其最好的教程是這裏 Tutorial

0

我結束了這個策略:

首先我創建的故事板2個出口,一個是ADBannerView,另一個用於GADBannerView

@IBOutlet weak var iadBannerView: ADBannerView! 
@IBOutlet weak var adMobBannerView: GADBannerView! 

在您的viewDidLoad的您可以這樣做:

override func viewDidLoad() { 
    super.viewDidLoad() 
    self.iadBannerView.hidden = true 
    self.adMobBannerView.hidden = true 
    self.iadBannerView.delegate = self 
    NSTimer.scheduledTimerWithTimeInterval(35, target: self, selector: Selector("dispalyGoogleBanner"), userInfo: nil, repeats: false) 
} 

所以這裏你隱藏了兩個橫幅(如果你喜歡喲你可以直接在故事板中完成)。那麼您等待35秒後才能顯示Google廣告。因此,在顯示谷歌廣告之前,您基本上需要查看iAD是否可用。

這是用來顯示谷歌的旗幟方法:

//MARK: - Google banner 
    func dispalyGoogleBanner() { 
     if !self.isDisplayIAD && !idDisplayADMob { 
     idDisplayADMob = true 
     self.adMobBannerView.adUnitID = kAdUnitID 
     self.adMobBannerView.hidden = false 
     self.adMobBannerView.rootViewController = self 
     self.adMobBannerView.loadRequest(GADRequest()) 
     } 
    } 

如此前顯示谷歌的旗幟,我們保證的iAD橫幅和旗幟的AdMob還沒有顯示出來。如果是這種情況,那麼我們可以發送請求以顯示ADMob標題。

這裏我實現的ADBannerViewDelegate

func bannerViewDidLoadAd(banner: ADBannerView!) { 
     self.iadBannerView = banner 
     self.iadBannerView.hidden = false 
     self.adMobBannerView.hidden = true 
     idDisplayADMob = false 
     self.view.layoutIfNeeded() 
    } 

    func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError 
     error: NSError!) { 
      println(error) 
      isDisplayIAD = false 
      self.iadBannerView.hidden = true 
      self.dispalyGoogleBanner() 
    } 

    func bannerViewActionDidFinish(banner: ADBannerView!) { 
     self.iadBannerView = banner 
     self.iadBannerView.hidden = true 
     isDisplayIAD = false 
     dispalyGoogleBanner() 
    } 

    func bannerViewWillLoadAd(banner: ADBannerView!) { 
     //remove the google banner if displayed 
     isDisplayIAD = true 
     self.iadBannerView.hidden = false 
     self.adMobBannerView.hidden = true 
     idDisplayADMob = false 
     self.view.layoutIfNeeded() 
    } 

我對這些代表是檢查是否網絡成癮的旗幟是可用的,如果它的話,那麼我會隱藏在AdMob廣告橫幅基本上沒有。如果iAD完成顯示廣告,那麼我會打電話給ADMob橫幅看到bannerViewActionDidFinish

您可以很容易地適應您的實施這個邏輯。