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

アプリ起動時広告実装方法

実装準備

SDKの導入がまだの場合は、以下の手順で導入頂く必要があります。

アドフリくんアプリ起動時広告のインポート

import { 
  AdfurikunAppOpenAd, 
  AdfurikunAppOpenAdCallbackResult, 
  AdfurikunAppOpenAdCallbackType } from 'react-native-adfurikunsdk';

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

AdfurikunAppOpenAdクラスのインスタンスを生成します。 引数には、アドフリくん管理画面で発行された広告枠IDを設定して下さい。

// アプリ起動時広告のプロパティを宣言します。
var appOpenAd: AdfurikunAppOpenAd = null;

export const AppOpenAdScreen: React.FC = () => {

  React.useEffect(
    () => {
      // アプリ起動時広告のインスタンスを生成します。
      appOpenAd = new AdfurikunAppOpenAd(appId);
    }, []);

アプリ起動時広告のリスナー設定

アドフリくんからのコールバックを設定します。

export const AppOpenAdScreen: React.FC = () => {

  React.useEffect(
    () => {
      // コールバックを設定します
      appOpenAd.setCallback((item) => notifyCallback(item));
    }, []);
  
  function notifyCallback(item: AdfurikunAppOpenAdCallbackResult): void {
    if (AdfurikunAppOpenAdCallbackType.onPrepareSuccess == item.type) {
      // 広告のロードが成功しました。
    } else if (AdfurikunAppOpenAdCallbackType.onPrepareFailure == item.type) {
      // 広告のロードが失敗しました。
    } else if (AdfurikunAppOpenAdCallbackType.onStartPlaying == item.type) {
      // 広告の再生が完了しました。
    } else if (AdfurikunAppOpenAdCallbackType.onFailedPlaying == item.type) {
      // 広告の再生中にエラーが発生しました。
    } else if (AdfurikunAppOpenAdCallbackType.onAdClose == item.type) {
      // 広告を閉じました。
    }
  }

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

load関数で広告をロードします。 ロード成功すると、コールバックのtype引数にAdfurikunAppOpenAdCallbackType.onPrepareSuccessが送られます。 失敗するとAdfurikunAppOpenAdCallbackType.onPrepareFailureが送られます。

if (appOpenAd != null) {
  appOpenAd.load(3.0);
}

アプリ起動時広告の表示

isPrepared関数の戻り値がtrueになる事を確認し、play関数で広告を再生します。

async function play() {
  if (appOpenAd != null) {
    var isPrepared = await appOpenAd.isPrepared();
    if (isPrepared) {
      appOpenAd.play();
    }
  }
}

・再生準備が完了したアドネットワークの中から、1つアドネットワークが選択されます。

アプリ起動時広告の破棄

AdfurikunAppOpenAdインスタンスを使わなくなった場合、destroy関数を呼び出して下さい。

React.useEffect(
  () => {
    return () => {
      if (appOpenAd != null) {
        appOpenAd.destroy();
        appOpenAd = null;
      }
    }
  }, []);