アプリ起動時広告実装方法 - glossom-dev/AdfurikunSDK-iOS GitHub Wiki

アプリ起動時広告

アドフリくんSDKのインポート

Swift
import ADFMovieReward
Objective-C
#import <ADFMovieReward/ADFmyAppOpenAd.h>

アプリ起動時広告の初期化

ADFmyAppOpenAdクラスのinitializeWithAppID:メソッドを呼び出して初期化を行います。
“アドフリくん管理画面で発行された広告枠 ID” を引数に指定して下さい。
application:didFinishLaunchingWithOptions:ライフサイクル等、アプリの開始直後に極力呼び出して下さい。

Swift
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {


    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        ADFmyAppOpenAd.initialize(withAppID: 広告枠ID)
        
        return true
    }

〜〜〜〜〜〜〜〜〜
}
Objective-C
@implementation AppDelegate


- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    [ADFmyAppOpenAd initializeWithAppID:広告枠ID];
    return YES;
}

アプリ起動時広告のロード

ADFmyAppOpenAdクラスのgetInstance:delegate:staticメソッドを呼び出し、ADFmyAppOpenAdクラスのインスタンスを取得します。 loadWithTimeoutメソッドを呼ぶことでロードが開始されます。引数にタイムアウト秒数を渡します。0.1秒〜60秒まで対応しています。読み込み時間の目安は、アドネットワークの数x0.5秒程になります。 ロードの成功、失敗の結果はADFmyAppOpenAdDelegateデリゲートコールバックで確認できます。 application:didFinishLaunchingWithOptions:ライフサイクルで実装しても問題ありません。実装例はこちらをご参考下さい。

Swift
class ViewController: UIViewController {

    private var appOpenAd: ADFmyAppOpenAd?

    override func viewDidLoad() {
        super.viewDidLoad()

        appOpenAd = ADFmyAppOpenAd.getInstance(広告枠ID, delegate: self)
        appOpenAd?.loadWithTimeout(3.0) //3秒タイムアウトの場合
    }
}

extension ViewController: ADFmyAppOpenAdDelegate {
    func adsFetchCompleted(_ appID: String) {
        //広告ロード成功
    }

    func adsFetchFailed(_ appID: String, error: Error, adnetworkError: [AdnetworkError]) {
        //広告ロード失敗
    }
}
Objective-C
@interface ViewController () <ADFmyAppOpenAdDelegate>
@property (nonatomic) ADFmyAppOpenAd *appOpenAd;
@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    self.appOpenAd = [ADFmyAppOpenAd getInstance:広告枠ID delegate:self];
    [self.appOpenAd loadWithTimeout:3.0];  //3秒タイムアウトの場合
}

- (void)AdsFetchCompleted:(NSString *)appID {
    //広告取得成功時に呼ばれます
}

- (void)AdsFetchFailed:(NSString *)appID error:(NSError *)error adnetworkError:(NSArray<AdnetworkError *> *)adnetworkError {
    //広告取得失敗時に呼ばれます
}

@end

アプリ起動時広告の表示

デリゲートで広告ロード成功通知を受け取った後、動画再生開始メソッドを呼びます。

Swift
if appOpenAd.isPrepared() {
    appOpenAd.play(withPresenting: self, window: nil)
}
Objective-C
if ([self.appOpenAd isPrepared]) {
    [self.appOpenAd playWithPresentingViewController:self window:nil];
}

デリゲートメソッドを実装する

Swift
extension ViewController: ADFmyAppOpenAdDelegate {
    //広告ロード成功時に呼ばれます。
    func adsFetchCompleted(_ appID: String) {
    }
    //広告ロード失敗時に呼ばれます。
    func adsFetchFailed(_ appID: String, error: Error, adnetworkError: [AdnetworkError]) {
    }
    //広告表示開始時に呼ばれます。
    func adsDidShow(_ appID: String, adNetworkKey: String) {
    }
    //広告表示失敗時に呼ばれます。
    func adsPlayFailed(_ appID: String) {
    }
    //広告を閉じた時に呼ばれます。
    func adsDidHide(_ appID: String) {
    }
}
Objective-C
//広告ロード成功時に呼ばれます。
- (void)AdsFetchCompleted:(NSString *)appID {
}
//広告ロード失敗時に呼ばれます。
- (void)AdsFetchFailed:(NSString *)appID error:(NSError *)error adnetworkError:(NSArray<AdnetworkError *> *)adnetworkError {
}
//広告表示開始時に呼ばれます。
- (void)AdsDidShow:(NSString *)appID adNetworkKey:(NSString *)adNetworkKey {
}
//広告表示失敗時に呼ばれます。
- (void)AdsPlayFailed:(NSString *)appID {
}
//広告を閉じた時に呼ばれます。
- (void)AdsDidHide:(NSString *)appID {
}

広告再生のタイミング、判断について

  • 広告再生回数の制限はありません。複数回再生するかはアプリ側で判断をお願いします。
  • プッシュ通知またはアプリリンクによる起動時に広告再生をさせるかはアプリ側で判断をお願いします。
  • アプリ起動時、毎回再生するかはアプリ側で判断をお願いします。

広告準備速度改善について

広告準備速度改善するために初期化関数initializeWithAppID:は、application:didFinishLaunchingWithOptions:ライフサイクル等、アプリの開始直後に呼び出して下さい。アプリ起動後すぐに広告表示を行う場合は、load関数も初期化直後に行うように実装して下さい。

@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {

    private var appOpenAd: ADFmyAppOpenAd?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
        // Override point for customization after application launch.
        ADFmyAppOpenAd.initialize(withAppID: "広告枠ID")
        appOpenAd = ADFmyAppOpenAd.getInstance("広告枠ID", delegate: self)
        appOpenAd?.load(withTimeout: 1)
        
        return true
    }
〜〜〜〜〜〜〜〜〜
}

extension AppDelegate: ADFmyAppOpenAdDelegate {
    func adsFetchCompleted(_ appID: String) {
        //広告ロード成功
        if let vc = self.window?.rootViewController {
            appOpenAd?.play(withPresenting: vc, window: nil)
        }
    }
    
    func adsFetchFailed(_ appID: String, error: Error) {
        //広告ロード失敗
    }
}

Pangle広告のアプリ名表示について

Pangle広告の場合、広告内にアプリ名が表示される仕様です。アプリ名は以下の設定値を参照しております。

- Info.plistの「CFBundleDisplayName」の設定値。
- ローカライズデータ取得ではない為、多国籍対応は出来ないです。

Sdk Setting

⚠️ **GitHub.com Fallback** ⚠️