0

我试图在我的 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 会话].delegate = self;

但什么也没发生。RevMobAds 文档中的任何地方都没有提到最后一行,
但我仍然尝试过。谁能帮助我如何调用这些事件?

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

4

1 回答 1

6

代理仅适用于对象广告,请查看API 文档

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

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");
 }];
于 2013-04-24T21:03:28.470 回答