Тестовите iAds не се зареждат

От няколко дни си блъскам главата за това. Не мога да накарам iAds да се показват в симулатора (или реалния хардуер).

  1. Попълних цялата информация за договора в iTunes Connect
  2. Създаден е профил за осигуряване на разработка за приложението
  3. Свърза iAd рамката и я импортира в горната част на swift файла на ViewController
  4. Направи ViewController подклас на ADBannerViewDelegate
  5. внедри 3 метода за делегата (вижте по-долу)

Не мога да разбера защо тестовите реклами не се зареждат. Някой друг имал ли е този проблем? Доколкото разбирам, вече не трябва да регистрирате всяко приложение поотделно за iAds чрез iTunes Connect.

Ще включа моя код по-долу за справка, въпреки че имам подозрение, че проблемът е някъде в настройката.

import UIKit
import iAd

class AdViewController: UIViewController, ADBannerViewDelegate {

var bannerView = ADBannerView()

override func viewDidLoad() {
    super.viewDidLoad()

    self.canDisplayBannerAds = true

    bannerView.frame = CGRectMake(0, self.view.frame.height-50, self.view.frame.width, 50)
    view.addSubview(bannerView)

    bannerView.delegate = self
    bannerView.hidden = true

}

override func didReceiveMemoryWarning() {
    super.didReceiveMemoryWarning()
    // Dispose of any resources that can be recreated.
}

func bannerViewDidLoadAd(banner: ADBannerView!) {
    self.bannerView.hidden = false
    println("bannerView unhidden")
}

func bannerView(banner: ADBannerView!, didFailToReceiveAdWithError error: NSError!) {
    bannerView.hidden = true
    println("bannerView hidden")
}

func bannerViewActionShouldBegin(banner: ADBannerView!, willLeaveApplication willLeave: Bool) -> Bool {
    return willLeave
}
}

Редактиране: Тази сутрин се опитах да изтегля и стартирам някои iAd демонстрации от gitHub само за да видя дали мога да ги накарам да работят, но без резултат. Предполагам, че кодът е правилен, така че нещо трябва да е грешно другаде. https://github.com/sarchak/iAds


person Erik    schedule 17.01.2015    source източник
comment
След като зададете self.canDisplayBannerAds = true, нямате нужда от делегата на обект bannerView и т.н. Всичко се задава автоматично. Когато има наличен банер, вашият контролер за изглед ще бъде преоразмерен с височина минус височината на банера и ще се задейства автоматично оформление. По този начин банерът винаги се показва в долната част. Проверете дали сте поставили правилния клас ADViewController във вашия сториборд. Тъй като ръчно добавяте изгледа на банера, вашият ADBannerView не е ли вграден в контролер за изглед на раздели? Може би вашият банер е под разделите.   -  person Matteo Piombo    schedule 17.01.2015
comment
Благодаря ви за отговора. Не знаех, че банерът ще бъде добавен автоматично и автоматичното оформление ще започне да работи. Това беше много полезно. За съжаление изглежда, че не е решило проблема. Опитах се да изтегля този примерен проект и да го стартирам, но това също не проработи. github.com/ashishkakkad8/iAdBannerExample Работи ли за вас?   -  person Erik    schedule 17.01.2015
comment
Не съм опитвал, но стартирането на нов проект, добавянето на iAd framework и self.canDisplayBannerAds = true във viewDidLoad, просто работи за мен. В един мой проект използвах различен подход, тъй като трябваше да представя рекламите най-отгоре. Имах bannerView като сингълтън, използван от различните ViewController. Вие сте регистриран (платен) програмист? Не знам дали е задължително, за да получиш тестовите банери за разработка.   -  person Matteo Piombo    schedule 17.01.2015
comment
Току-що се опитах да създам нов проект, като добавих рамката на iAd и оператора за импортиране и след това добавих self.canDisplayBannerAds = true в viewDidLoad, но без успех. Записан съм като платен програмист. Наистина съм потресен.   -  person Erik    schedule 17.01.2015
comment
Не знам защо, но току-що започна да работи на моя iPhone. Все още не работи в симулатора, но поне напредвам.   -  person Erik    schedule 17.01.2015
comment
Само да ви напомня, че на вашия iPhone можете да променяте настройките на iAd в Настройки -› Програмист. Ако използвате персонализирано разположение на bannerView, може да е полезно да включите Открояване на изрязани банери. По този начин можете визуално да проверите дали оформлението ви не покрива части от рекламата. Тъй като рекламите работят на вашия iPhone, вероятно виждането им на симулатора е само метър време. Когато използвате автоматичната конфигурация на банер self.canDisplayBannerAds = true, не виждате симулираните неуспешни заявки за банери.   -  person Matteo Piombo    schedule 18.01.2015
comment
Благодаря за допълнителната информация, много полезна. Да, не съм сигурен какво се случва в симулатора, но няма да се тревожа много за това, защото мога да тествам сега. Напълно сте прав, методът didFailToReceiveAdWithError никога не се извиква в симулатора, но го прави периодично, когато работи на телефон.   -  person Erik    schedule 19.01.2015


Отговори (1)


не се препоръчва ръчно да задавате размера на изгледа на рекламата.
използвайте метода init() и след това коригирайте рамката, няма смисъл

трябва да инициализирате изгледа си на банер така: let bannerView = ADBannerView(adType:ADAdType.Banner) и след това незабавно да зададете неговия делегат и да го добавите към основния изглед

person duan    schedule 19.01.2015
comment
Уау, това го оправи! Благодаря ти! - person Erik; 19.01.2015