インタースティシャル広告実装方法 - glossom-dev/AdfurikunSDK-ReactNative GitHub Wiki
インタースティシャル広告実装方法
実装準備
SDKの導入がまだの場合は、以下の手順で導入頂く必要があります。
アドフリくんインタースティシャル広告のインポート
import {
AdfurikunInterstitial,
AdfurikunInterstitialCallbackResult,
AdfurikunInterstitialCallbackType } from 'react-native-adfurikunsdk';
インタースティシャル広告の初期化
AdfurikunInterstitial
クラスのインスタンスを生成します。
引数には、アドフリくん管理画面で発行された広告枠IDを設定して下さい。
// インタースティシャル広告のプロパティを宣言します。
var interstitial: AdfurikunInterstitial = null;
export const InterstitialScreen: React.FC = () => {
React.useEffect(
() => {
// インタースティシャル広告のインスタンスを生成します。
interstitial = new AdfurikunInterstitial(appId);
}, []);
インタースティシャル広告のリスナー設定
アドフリくんからのコールバックを設定します。
export const InterstitialScreen: React.FC = () => {
React.useEffect(
() => {
// コールバックを設定します
interstitial.setCallback((item) => notifyCallback(item));
}, []);
function notifyCallback(item: AdfurikunInterstitialCallbackResult): void {
if (AdfurikunInterstitialCallbackType.onPrepareSuccess == item.type) {
// 広告のロードが成功しました。
} else if (AdfurikunInterstitialCallbackType.onPrepareFailure == item.type) {
// 広告のロードが失敗しました。
} else if (AdfurikunInterstitialCallbackType.onStartPlaying == item.type) {
// 広告の再生を開始しました。
} else if (AdfurikunInterstitialCallbackType.onFinishedPlaying == item.type) {
// 広告の再生が完了しました。
} else if (AdfurikunInterstitialCallbackType.onFailedPlaying == item.type) {
// 広告の再生中にエラーが発生しました。
} else if (AdfurikunInterstitialCallbackType.onAdClose == item.type) {
// 広告を閉じました。
}
}
インタースティシャル広告のロード
load
関数で広告をロードします。
ロード成功すると、コールバックのtype引数にAdfurikunInterstitialCallbackType.onPrepareSuccess
が送られます。
失敗するとAdfurikunInterstitialCallbackType.onPrepareFailure
が送られます。
if (interstitial != null) {
interstitial.load();
}
インタースティシャル広告の表示
isPrepared
関数の戻り値がtrueになる事を確認し、play
関数で広告を再生します。
async function play() {
if (interstitial != null) {
var isPrepared = await interstitial.isPrepared();
if (isPrepared) {
interstitial.play();
}
}
}
・再生準備が完了したアドネットワークの中から、1つアドネットワークが選択されます。
インタースティシャル広告の破棄
AdfurikunInterstitial
インスタンスを使わなくなった場合、destroy
関数を呼び出して下さい。
React.useEffect(
() => {
return () => {
if (interstitial != null) {
interstitial.destroy();
interstitial = null;
}
}
}, []);