2015-05-22 49 views
4

由於Apple在審覈過程中未找到我的廣告,因此我的iOS應用被拒絕。我再次上​​傳了我的應用,包括關於如何看廣告的說明,並且今天獲得了批准。現在,一旦我的朋友和家人下載了應用程序,就不會有廣告出現。我查看了我的AdMob帳戶,但沒有出現展示機會,所以我不知道發生了什麼問題。有沒有人發生過這種事?此外,自從該應用獲得批准以來,它還沒有24小時。由於蘋果批准它,我假設他們看過這些廣告。 My application在您選擇照片後開始使用過濾器時會顯示廣告。 AdMob顯示61次展示,61次請求和100%填充率。已批准應用但未展示AdMob廣告

// Initialize Apple iAd banner 
func initiAdBanner() { 
    iAdBannerView = ADBannerView(frame: CGRectMake(0, self.view.frame.size.height, 0, 0)) 
    iAdBannerView.delegate = self 
    iAdBannerView.hidden = true 
    view.addSubview(iAdBannerView) 
} 

// Initialize Google AdMob banner 
func initAdMobBanner() { 
    if UIDevice.currentDevice().userInterfaceIdiom == UIUserInterfaceIdiom.Pad { 
     // iPad banner 
     adMobBannerView.adSize = GADAdSizeFromCGSize(CGSizeMake(728, 90)) 
     adMobBannerView.frame = CGRectMake(0, self.view.frame.size.height, 728, 90) 
    } else { 
     // iPhone banner 
     adMobBannerView.adSize = GADAdSizeFromCGSize(CGSizeMake(320, 50)) 
     adMobBannerView.frame = CGRectMake(0, self.view.frame.size.height, 320, 50) 
    } 
    adMobBannerView.adUnitID = "AdMobPublisherID" 
    adMobBannerView.rootViewController = self 
    adMobBannerView.delegate = self 
    // adMobBannerView.hidden = true 
    view.addSubview(adMobBannerView) 
    var request = GADRequest() 
    adMobBannerView.loadRequest(request) 
} 

// Hide the banner 
func hideBanner(banner: UIView) { 
    if banner.hidden == false { 
     UIView.beginAnimations("hideBanner", context: nil) 
     // Hide the banner moving it below the bottom of the screen 
     banner.frame = CGRectMake(0, self.view.frame.size.height, banner.frame.size.width, banner.frame.size.height) 
     UIView.commitAnimations() 
     banner.hidden = true 
    } 
} 

// Show the banner 
func showBanner(banner: UIView) { 
    if banner.hidden == true { 
     UIView.beginAnimations("showBanner", context: nil) 
     // Move the banner on the bottom of the screen 
     banner.frame = CGRectMake(0, (self.view.frame.size.height-70) - banner.frame.size.height, 
     banner.frame.size.width, banner.frame.size.height); 
     UIView.commitAnimations() 
     banner.hidden = false 
    } 
} 

// iAd banner available 
func bannerViewWillLoadAd(banner: ADBannerView!) { 
    println("iAd loaded!") 
    hideBanner(adMobBannerView) 
    showBanner(iAdBannerView) 
} 

// NO iAd banner available 
func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
    println("iAd can't looad ads right now, they'll be available later") 
    hideBanner(iAdBannerView) 
    var request = GADRequest() 
    adMobBannerView.loadRequest(request) 
} 

// AdMob banner available 
func adViewDidReceiveAd(view: GADBannerView!) { 
    println("AdMob loaded!") 
    hideBanner(iAdBannerView) 
    showBanner(adMobBannerView) 
} 

// NO AdMob banner available 
func adView(view: GADBannerView!, didFailToReceiveAdWithError error: GADRequestError!) { 
    println("AdMob Can't load ads right now, they'll be available later \n\(error)") 
    hideBanner(adMobBannerView) 
} 
+0

對於AdMob而言,它幾乎不會有100%的填充率。因此,根本不顯示廣告的原因是由於互聯網連接非常差或者在應用程序中實施廣告時出現了問題。你記得在你的應用程序提交分發之前刪除你的'tesID'' request',對吧?您認爲您的AdMob帳戶沒有任何**展示**,但是是否有任何**請求**? –

+0

在我的設備上使用Xcode進行測試時,廣告正在運行。我正在獲得展示機會,但沒有廣告出現。它已經被批准了24小時,如果這很重要,我還沒有能夠鏈接我的應用程序,因爲它沒有顯示出來,當我在admob搜索它。我在批准之前手動將其鏈接起來。在admob它是積極的,並顯示印象。廣告展示需要時間嗎?我不明白爲什麼他們會在我上傳的內容中顯示,但App Store中的廣告不會出現。現在它有61次展示,0美元收入,0美元請求轉速,0次會話。 – user3536980

+0

*我獲得的印象,但沒有廣告顯示*嗯?你的意思是**請求**?*它已經過24小時,因爲它被批准,如果這很重要,我還沒有能夠鏈接我的應用程序,因爲它沒有顯示,當我在admob搜索它*這不是一個因素。如果您在測試期間收到了此應用的已發佈ID的廣告,那麼您應該仍然會收到截至目前的廣告。在App Store中發佈指向您應用的鏈接和/或修改您的問題以包含與您的AdMob廣告相關的任何相關代碼,然後我們來看看。 –

回答

-1

您需要查看設備日誌以確定爲什麼不顯示廣告。很可能,當時沒有廣告服務器可以提供廣告。

這是一種正常的事務狀態,爲什麼您應該使用中介來確保您擁有備份網絡。

4

廣告現在出現在您的應用程序中。當您的應用程序獲得Apple批准後,仍然必須獲得iAd團隊的批准才能接收iAd廣告。這可能需要幾天的時間。因此,您的廣告都沒有顯示在您的應用程序中。您可以通過轉到設置>開發人員>並在您的開發設備上將填充率設置爲0%來測試。如果iAd的失敗最初加載正在顯示廣告沒有的原因是因爲這個功能:

// Show the banner 
    func showBanner(banner: UIView) { 
     if banner.hidden == true { 
      UIView.beginAnimations("showBanner", context: nil) 

      // Move the banner on the bottom of the screen 
      banner.frame = CGRectMake(0, (self.view.frame.size.height-70) - banner.frame.size.height, 
       banner.frame.size.width, banner.frame.size.height); 

      UIView.commitAnimations() 
      banner.hidden = false 
     } 
    } 

你檢查if banner.hidden == true但你adMobBannerViewhidden值永遠不會設置爲true直到iAd的橫幅被加載。在iAd的團隊批准之前,沒有看到iAd橫幅正在加載,這種情況從未得到滿足。在不支持iAd的國家或者iAd最初無法加載廣告時,這種情況也會在從未被滿足。

此外,還有很多跳躍當您的廣告加載,因爲你在屏幕上和屏幕上動畫他們。一個更優雅的方法是將其值設爲alpha,以便用戶不會注意廣告何時更改。你也可以消除很多你的代碼。我已經改寫了你想要完成的內容,並且評論了它背後的推理。

import UIKit 
import iAd 

class ViewController: UIViewController, ADBannerViewDelegate, GADBannerViewDelegate { 

var iAdBannerView : ADBannerView = ADBannerView() 
var adMobBannerView : GADBannerView = GADBannerView() 

override func viewDidLoad() { 
    super.viewDidLoad() 
    loadAds() 
} 

func loadAds() { 
    // iAd 
    // Changed banners width to match the width of the view it is on 
    // You need to set the y origin relative to your view. Not a static number. 
    iAdBannerView = ADBannerView(frame: CGRectMake(0, self.view.frame.size.height - iAdBannerView.frame.height, self.view.frame.size.width, iAdBannerView.frame.height)) 
    iAdBannerView.delegate = self 
    view.addSubview(iAdBannerView) 
    // Hide iAd initially 
    iAdBannerView.alpha = 0.0 

    // AdMob 
    // Changed adSize to Googles set banner size 
    adMobBannerView.adSize = kGADAdSizeBanner 
    // Changed banners width to match the width of the view it is on 
    // You need to set the y origin relative to your view. Not a static number. 
    adMobBannerView.frame = CGRectMake(0, self.view.frame.size.height - adMobBannerView.frame.height , self.view.frame.size.width, adMobBannerView.frame.height) 
    adMobBannerView.rootViewController = self 
    adMobBannerView.delegate = self 
    adMobBannerView.adUnitID = "AdMobPublisherID" 
    // Dont need var request = GADRequest() 
    adMobBannerView.loadRequest(GADRequest()) 
    // Do not hide AdMob initially 
    view.addSubview(adMobBannerView) 
} 

// Use bannerViewDidLoadAd function so we know ad is fully loaded 
func bannerViewDidLoadAd(banner: ADBannerView!) { 
    println("iAd has an ad to show") 
    // Animate fade of banners 
    UIView.beginAnimations(nil, context: nil) 
    // Show iAd 
    iAdBannerView.alpha = 1.0 
    // Hide AdMob 
    adMobBannerView.alpha = 0.0 
    UIView.commitAnimations() 
} 

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) { 
    println("iAd failed to load an ad because \(error)") 
    // Animate fade of banners 
    UIView.beginAnimations(nil, context: nil) 
    // Hide iAd 
    iAdBannerView.alpha = 0.0 
    // Show AdMob 
    adMobBannerView.alpha = 1.0 
    UIView.commitAnimations() 
} 

如果iAd無法加載廣告,這將有利於iAd並回退到AdMob。您無需檢查AdMob何時無法加載廣告,因爲其填充率幾乎總是100%,並且如果沒有AdMob廣告,我懷疑是否有要顯示的iAd廣告。