0

RevMob コードをアプリに追加しようとしています。アプリには現在 IAP が含まれており、広告 (フルスクリーン) を追加しようとしています。

現在、コードを次のメソッドに配置しています

- (void)applicationDidBecomeActive:(UIApplication *)application {
RevMobFullscreen *fullscreen;
fullscreen = [[RevMobAds session] fullscreen];
fullscreen.delegate = self;
[fullscreen loadAd];
[fullscreen showAd];
}

問題は、これにより広告が頻繁に表示されるようになることです。理想的には、アプリが最初に読み込まれたときと、ユーザーがアプリを閉じてから再度開いたとき (スタンバイ モード) にのみ、広告を呼び出したいと考えています。

上記のコードは、ユーザーが IAP と対話するときに広告コードを呼び出しています。これは、ユーザーが購入したいかどうかを尋ねるアラート ボックスが開かれるためです。

助言がありますか?

4

2 に答える 2

3

「理想的には、アプリが最初に読み込まれたときと、ユーザーがアプリを閉じてから再度開いたとき (スタンバイ モード) にのみ、広告を呼び出したいと考えています。」

UIApplicationDelegateの次のメソッドを実装します。

  • application:didFinishLaunchingWithOptions:

ご存知のとおり、このメソッドは、アプリが最初に起動されたときに 1 回実行されます。次のメソッドは初回起動時に呼び出されないため、このメソッドを実装する必要があります。

  • applicationWillEnterForeground:

ドキュメントから:

このメソッドは、バックグラウンドからアクティブ状態への遷移の一部として呼び出されます。

このメソッドは、アプリケーションがバックグラウンド状態から移行したときにのみ呼び出されます。applicationDidBecomeActive:問題が発生していた方法とは異なり、着信 SMS や電話を無視したり、アプリ内購入を操作したりするなどの短い中断の後に呼び出されることapplicationWillEnterForeground:はありません。

コード

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
    ...

    [self showAd];

    return YES;
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    [self showAd];
}

- (void)showAd
{
    RevMobFullscreen *fullscreen;
    fullscreen = [[RevMobAds session] fullscreen];
    fullscreen.delegate = self;
    [fullscreen loadAd];
    [fullscreen showAd];
}
于 2013-03-13T15:16:55.650 に答える
0

使用する

application:didFinishLaunchingWithOptions:

アプリの初回起動時。

後方からの機能の場合は、日時を次のように記録します

- (void)applicationDidEnterBackground:(UIApplication *)application
{
    self.timeEnteredBackground = [NSDate date];
}

- (void)applicationWillEnterForeground:(UIApplication *)application
{
    NSDate* now = [NSDate date];
    double diff = [now timeIntervalSinceDate:timeEnteredBackground];
    if (diff > SOME_SECONDS) 

このようにして、広告はバックグラウンド時間が一定のしきい値を超えた後にのみ表示されます。

于 2013-03-13T17:14:19.577 に答える