我有两部分代码
预压
interestial = [[GADInterstitial alloc] init];
[interestial loadRequest:request]
显示
[interestial presentFromRootViewController:]
我该怎么做才能在下次正确显示插页式广告? 使用ARC而不使用
预压
if(arc) [interstitial release];
interstitial = [[GADInterstitial alloc] init];
[interstitial loadRequest:request]
显示
[interstitial presentFromRootViewController:self]
- 或
初始
interstitial = [[GADInterstitial alloc] init];
预压
[interstitial loadRequest:request]
显示
[interstitial presentFromRootViewController:self]
- 或
初始
interstitial = [[GADInterstitial alloc] init];
[interstitial loadRequest:request];
预压
// nothing
显示
[interstitial presentFromRootViewController:self];
[interstitial loadRequest:request];
如果最后一个选项不正确,那么我应该等待多长时间才能预先加载?或者我应该听代表还是等待某些用户操作开始预加载?
答案 0 :(得分:10)
您应该从GADInterstitialDelegate收听interstitialDidDismissScreen:
方法。这将告诉你当你完成第一个插页式广告时,你可以开始为下一个插页式广告做准备。
所以你会有类似的东西:
// During init time.
self.interstitial = [[GADInterstitial alloc] init];
self.interstitial.adUnitID = MY_INTERSTITIAL_UNIT_ID;
self.interstitial.delegate = self;
[self.interstitial loadRequest:[GADRequest request]];
...
// During show time.
[self.interstitial presentFromRootViewController:self];
...
// When user dismisses the interstitial.
- (void)interstitialWillDismissScreen:(GADInterstitial *)interstitial {
self.interstitial.delegate = nil;
if (!arc) {
[self.interstitial release];
}
// Prepare next interstitial.
self.interstitial = [[GADInterstitial alloc] init];
self.interstitial.adUnitID = MY_INTERSTITIAL_UNIT_ID;
self.interstitial.delegate = self;
[self.interstitial loadRequest:[GADRequest request]];
}