import React, { useEffect } from 'react';
import { Platform, SafeAreaView, ScrollView, StyleSheet, Text, View, Button } from 'react-native';
import {
AdPopcornSSP,
AdPopcornInterstitialVideoAd,
AdPopcornSSPEvents,
AdPopcornInterstitialVideoAdEvents,
} from 'react-native-adpopcorn-ssp';
const APP_KEY_ANDROID = '663451319';
const APP_KEY_IOS = '397261446';
function App(): JSX.Element {
useEffect(() => {
// SSP 초기화 이벤트
const initSub = AdPopcornSSP.addListener(AdPopcornSSPEvents.OnAdPopcornSSPSDKDidInitialize, () => {
console.log('[SSP] SDK Initialized');
if (Platform.OS === 'ios') {
AdPopcornInterstitialVideoAd.createInstance(APP_KEY_IOS, 'iOS_VIDEO');
} else {
AdPopcornInterstitialVideoAd.createInstance(APP_KEY_ANDROID, 'VIDEO');
}
});
// Interstitial Video 이벤트
const ivLoadedSub = AdPopcornInterstitialVideoAd.addListener(AdPopcornInterstitialVideoAdEvents.OnInterstitialVideoAdLoaded, (e) => console.log('[InterstitialVideo] Loaded:', e.placementId));
const ivFailedSub = AdPopcornInterstitialVideoAd.addListener(AdPopcornInterstitialVideoAdEvents.OnInterstitialVideoAdLoadFailed, (e) => console.log('[InterstitialVideo] LoadFailed:', e.placementId, e.errorCode, e.errorMessage));
const ivOpenedSub = AdPopcornInterstitialVideoAd.addListener(AdPopcornInterstitialVideoAdEvents.OnInterstitialVideoAdOpened, (e) => console.log('[InterstitialVideo] Opened:', e.placementId));
const ivOpenFailSub = AdPopcornInterstitialVideoAd.addListener(AdPopcornInterstitialVideoAdEvents.OnInterstitialVideoAdOpenFalied, (e) => console.log('[InterstitialVideo] OpenFailed:', e.placementId));
const ivClosedSub = AdPopcornInterstitialVideoAd.addListener(AdPopcornInterstitialVideoAdEvents.OnInterstitialVideoAdClosed, (e) => console.log('[InterstitialVideo] Closed:', e.placementId));
const ivClickedSub = AdPopcornInterstitialVideoAd.addListener(AdPopcornInterstitialVideoAdEvents.OnInterstitialVideoAdClicked, (e) => console.log('[InterstitialVideo] Clicked:', e.placementId));
// SDK 초기화
const appKey = Platform.OS === 'ios' ? APP_KEY_IOS : APP_KEY_ANDROID;
AdPopcornSSP.init(appKey);
return () => {
ivLoadedSub.remove();
ivFailedSub.remove();
ivOpenedSub.remove();
ivOpenFailSub.remove();
ivClosedSub.remove();
ivClickedSub.remove();
};
}, []);
const loadInterstitialVideo = () => {
const pid = Platform.OS === 'ios' ? 'iOS_VIDEO' : 'VIDEO';
AdPopcornInterstitialVideoAd.loadAd(pid);
};
const showInterstitialVideo = () => {
const pid = Platform.OS === 'ios' ? 'iOS_VIDEO' : 'VIDEO';
AdPopcornInterstitialVideoAd.showAd(pid);
};
return (
<SafeAreaView style={styles.container}>
<ScrollView contentInsetAdjustmentBehavior="automatic" contentContainerStyle={{ paddingBottom: 100 }}>
<Text style={styles.title}>AdPopcorn SSP Example</Text>
<View style={styles.section}>
<Text style={styles.sectionTitle}>Interstitial Video</Text>
<Button title="Load Interstitial Video" onPress={loadInterstitialVideo} />
<Button title="Show Interstitial Video" onPress={showInterstitialVideo} />
</View>
</ScrollView>
</SafeAreaView>
);
}