RevMobAds代表问题

时间:2013-04-21 16:02:13

标签: ios ios6 delegates revmob

我正在尝试在AppDelegate中接收RevMobAdsDelegate事件并且它们未被调用。请参阅下面的内容:

1)实施RevMobAdsDelegate协议:

@interface MyiOSAppAppDelegate : UIResponder <UIApplicationDelegate, RevMobAdsDelegate>

2)使用ID:

初始化RevMobAds
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    // other code here..
    // Revmob initialization
    [RevMobAds startSessionWithAppID: @"SECRET_APP_ID"];
    // other code here..
}

3)致电RevMob广告:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
    [[RevMobAds session] showFullscreen];
}

4)声明RevMobAdsDelegate事件:

- (void) revmobAdDidFailWithError:(NSError *)error
{
    NSLog(@"1");
}

- (void) revmobAdDidReceive
{
    NSLog(@"2");
}

- (void) revmobAdDisplayed
{
    NSLog(@"3");
}

- (void) revmobUserClickedInTheAd
{
    NSLog(@"4");
}

- (void) revmobUserClosedTheAd
{
    NSLog(@"5");
}

广告看似很好,没有任何问题,但没有调用上述任何功能。我也试过

[RevMobAds session] .delegate = self;

但没有发生任何事。最后一行未在RevMobAds Documentation中的任何地方提及  但我还是试过任何人都可以帮助我如何调用这些事件?

这里的任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:6)

代表只能使用对象广告,请查看API Documentation

但你可以使用这样的东西:

RevMobFullscreen *ad = [[RevMobAds session] fullscreen];
ad.delegate = self;
[ad showAd];

或者您可以使用新块“委托”:

 RevMobFullscreen *ad = [[RevMobAds session] fullscreen];
 [ad loadWithSuccessHandler:^(RevMobFullscreen *fs) {
   [fs showAd];
   NSLog(@"Ad loaded");
 } andLoadFailHandler:^(RevMobFullscreen *fs, NSError *error) {
   NSLog(@"Ad error: %@",error);
 } onClickHandler:^{
   NSLog(@"Ad clicked");
 } onCloseHandler:^{
   NSLog(@"Ad closed");
 }];