9

我以这种方式构建了我的应用程序,一切似乎或多或少都在工作。在听说了众所周知的低 iAd 填充率后,我决定这将是最好的方法,但我尝试用谷歌搜索它,但我找不到任何其他人在他们的应用程序中像这样实施广告的记录。这是否违反 TOS?

4

6 回答 6

10

为什么不使用 Adwhirl。它很棒的 sdk 可以让您完全按照自己的需要去做。您可以为不同的广告网络设置优先级设置,如果您发现一个网络的表现优于其他网络等,可以随时更改这些设置。

它会根据请求失败或优先级处理要展示的广告的所有逻辑,而您无需担心。您所要做的就是创建一个 adwhirl 视图并请求一个广告。Adwhirl 完成其余的工作,包括适当的提神。如果 iAd 第一次失败,然后显示 admob,但下一个 iAd 加载成功,则将显示它而不是 admob,假设您将 iAd 设置为更高优先级的网络。

http://adwhirl.com

于 2010-09-03T00:02:37.817 回答
3

您是否通过将可见设置为 NO 来隐藏 ADBannerView?使用 ADBannerView,如果您将可见设置为 NO,则它会停止请求广告。要“隐藏” ADBannerView,您需要将其翻译到屏幕外的某个位置。

于 2010-11-21T15:58:49.163 回答
3

您可以使用这些控件来显示 iAd 和 adMob

iAdPlusAdMob

CJPAd控制器

或者这里是一步一步解释的好图

http://mobile.tutsplus.com/tutorials/iphone/supplementing-iad-placement-with-admob/

于 2013-09-24T07:29:38.560 回答
1

我有 iAds 和 Admob。

我强烈建议先加载 iAd,如果您没有收到广告,请使用 admob。如果您收到广告,iAd 的 ECPM 比 admob 高得多。请记住,iAd 每 30 秒刷新一次,因此 did not get ad 方法将被多次调用。

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

于 2010-09-02T23:35:49.977 回答
1

您可以使用 AdWhirl,它的最佳教程在这里 教程

于 2012-01-06T06:09:13.460 回答
0

我最终采用了这个策略:

首先,我从情节提要中创建了 2 个出口,一个用于 the 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 秒才能显示谷歌广告。因此,在显示谷歌广告之前,您基本上想查看 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())
        }
    }

所以在显示 google 横幅之前,我们确保 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()
    }

我对这些代表所做的基本上是检查 iAD 横幅是否可用,如果是这样,那么我将隐藏 adMob 横幅。如果 iAD 完成显示广告,那么我将调用 ADMob 横幅查看bannerViewActionDidFinish

您可以轻松地根据您的实现调整此逻辑。

于 2015-08-04T07:10:50.693 回答