Welcome to Adrop
  • 애드컨트롤 살펴보기
  • 애드노트 살펴보기
  • 콘솔 가이드
    • 💫애드컨트롤 빠르게 시작하기
    • 광고 플랫폼 배포하기
      • 광고 상품 소개서 등록 가이드
      • 광고 소재 제작 가이드
    • 퀘스트 광고 상품 만들기
      • CPQ 광고 상품 생성 및 CPQ 캠페인 운영하기
      • 퀘스트 리포트 활용하기
    • 광고 상품 만들기
      • 광고 상품 생성하기
        • 필수 타겟팅 지정 기능 알아보기
        • 필수 타겟팅 외 추가 타겟팅 지정 기능 알아보기
        • 광고 상품 수정하기
      • 인하우스 광고 상품 생성 및 인하우스 캠페인 운영하기
      • 광고 상품 구성 변경하기
      • 광고 상품 노출 순서 변경하기
      • 광고 상품 상태 이해하기
      • 광고 상품 할인율 기능 알아보기
        • 광고 상품 할인 내역 확인하기
      • 타겟팅 정보 확인 기능 알아보기
    • 광고 유닛 생성하기
      • 배너 광고 유닛
        • 캐러셀 배너 설정하기
      • 전면 광고 유닛
      • 보상형 광고 유닛
      • 네이티브 광고 유닛
      • 팝업 광고 유닛
      • 스플래시 광고 유닛
      • 광고 유닛 수정하기
    • 캠페인 예약 관리
      • 성과 집계 캠페인 운영하기
      • 캠페인 생성하기
      • 캠페인 소재 미리보기
      • 캠페인 소재 브라우저 설정하기
      • 캠페인 심사하기
      • 캠페인 성과 확인하기
      • 캠페인 일시정지하기
        • 캠페인 소재별 일시정지/재시작
      • 캠페인 취소하기
      • 캠페인 수정하기
      • 캠페인 운영 잘하기
        • 캠페인 검색 및 기간 필터 기능 활용하기
        • 캠페인 예약 약관 업로드 활용하기
    • 리포트 탭 사용하기
    • 대시보드 활용하기
    • 오디언스 타겟팅
      • 타겟팅과 카테고리 이해하기
      • 타겟팅 생성하기
        • 타겟팅 노출 순서 편집하기
      • 프로퍼티 타겟팅 생성하기 (1P 데이터로 타겟팅 만들기)
      • 이벤트 타겟팅 생성하기 (커스텀 이벤트 생성하기)
      • 문맥 타겟팅
      • 타겟팅 할증 기능 알아보기
    • 설정
      • 광고 플랫폼
        • 광고 계정 생성하기
      • 앱
        • Adrop에 앱 등록하기
      • 요금제 및 청구
        • 환불 정책
        • 수익금 지급 정책
      • 멤버
        • 멤버 추가하기
        • 멤버 역할
      • 고급 설정 기능
        • 소재 노출 요일 및 시간 설정 제공 기능
        • CPP 예산 수정 및 타겟팅 지정 허용 기능
        • 오디언스 타겟팅 최소 모수 제한 완화 기능
        • 소재 미리보기 활성화 여부 확인 기능
    • 개발자 센터
      • 테스트 캠페인 직접 해보기
    • 계정
      • 내 계정
      • 내 그룹
      • 내 알림
      • 내 기기
    • 👾 [Google Admob] 맞춤 어댑터로 네트워크 광고 지원하기
    • 💭FAQ
    • 💰 수익금 정산
  • 개발자 가이드
    • Adrop SDK로 광고 노출하기
      • 설정 파일 준비하기
      • Android 앱에 Adrop SDK 설치하기
        • Android 배너 광고
        • Android 전면 광고
        • Android 보상형 광고
        • Android 네이티브 광고
        • Android 팝업 광고
        • Android 스플래시 광고
          • 스플래시 액티비티 연동
          • 스플래시 뷰 연동
        • Android 퀘스트 광고
      • iOS 앱에 Adrop SDK 설치하기
        • iOS 배너 광고
        • iOS 전면 광고
        • iOS 보상형 광고
        • iOS 네이티브 광고
        • iOS 팝업 광고
        • iOS 스플래시 광고
          • 스플래시 뷰컨트롤러 연동
          • 스플래시 뷰 연동
          • 스플래시 뷰컨트롤러 연동 (SwiftUI)
        • iOS 퀘스트 광고
      • Flutter 앱에 Adrop SDK 설치하기
        • Flutter 배너 광고
        • Flutter 전면 광고
        • Flutter 보상형 광고
        • Flutter 팝업 광고
        • Flutter 스플래시 광고
        • Flutter 네이티브 광고
      • React Native 앱에 Adrop SDK 설치하기
        • React Native 배너 광고
        • React Native 전면 광고
        • React Native 보상형 광고
        • React Native 팝업 광고
        • React Native 네이티브 광고
        • React Native 스플래시 광고
      • 웹앱에 Adrop SDK 설치하기 (Dprecated)
        • 웹 앱 배너광고 노출하기 (Dprecated)
        • 웹 앱 네이티브광고 노출하기 (Dprecated)
      • 광고 적용 확인하기
      • Google Admob 사용자를 위한 가이드
        • Android Admob 사용자를 위한 Adrop adapter 연결 가이드
        • iOS Admob 사용자를 위한 Adrop adapter 연결 가이드
        • Flutter Admob 사용자를 위한 Adrop adapter 연결 가이드
      • 📈Metrics
        • 사용자 속성
          • Android Adrop Metrics 설정하기
          • iOS Adrop Metrics 설정하기
          • Flutter Adrop Metrics 설정하기
          • React Native Adrop Metrics 설정하기
          • 웹앱 Adrop Metrics 설정하기
          • 사전 설정된 값 (Preset)
        • Log Events
          • Android 로그이벤트
          • iOS 로그이벤트
          • Flutter 로그이벤트
          • React Native 로그이벤트
          • Web 앱 로그이벤트
      • Adrop SDK 상세 스펙 확인
        • Android
          • Interfaces
            • AdropBannerAdListener
            • AdropInterstitialAdListener
            • AdropRewardedAdListener
            • AdropNativeAdListener
            • AdropPopupAdListener
          • Classes
            • AdropBanner
            • AdropInterstitialAd
            • AdropRewardedAd
            • AdropNativeAd
            • AdropNativeAdView
            • AdropMediaView
            • AdropPopupAd
            • AdropEventParam
          • Errors
          • Objects
        • iOS
          • Interfaces
            • AdropBannerDelegate
            • AdropInterstitialAdDelegate
            • AdropRewardedAdDelegate
            • AdropNativeAdDelegate
            • AdropPopupAdDelegate
          • Classes
            • Adrop
            • AdropBanner
            • AdropInterstitialAd
            • AdropRewardedAd
            • AdropNativeAd
            • AdropNativeAdView
            • AdropPopupAd
            • AdropMetrics
          • Errors
        • Flutter
          • Classes
            • Adrop
            • AdropBannerView
            • AdropBannerListener
            • AdropInterstitialAd
            • AdropInterstitialListener
            • AdropRewardedAd
            • AdropRewardedListener
            • AdropPopupAd
            • AdropPopupListener
            • AdropMetrics
          • Typedefs
            • AdropAdEventCallback
            • AdropAdFailedCallback
            • AdropAdCallback
            • AdropAdErrorCallback
            • AdropAdRewardEventCallback
          • Errors
        • React Native
          • Classes
            • Adrop
            • AdropInterstitialAd
            • AdropRewardedAd
            • AdropListener
            • AdropMetrics
          • Components
            • <AdropBanner/>
          • Hooks
            • useAdropInterstitialAd
            • useAdropRewardedAd
          • Errors
    • Adrop API를 활용해 광고 노출하기
      • API를 활용한 배너광고
      • API를 활용한 네이티브 광고
      • Metrics
      • REST API
        • GET /request
        • Errors
    • Repositories
    • Test Environment
  • 캠페인 가이드
    • 1️⃣캠페인 예약하기 (광고주용)
      • 1. 플랫폼 가입
      • 2. 캠페인 생성
        • 시작일이 임박한 캠페인 유의사항
      • 3. 광고 소재 등록
      • 4. 캠페인 관리
      • 5. 캠페인 일시정지 & 취소
      • 설정 및 권한
        • 결제 정보
        • 멤버 추가하기
        • 멤버 역할
      • 광고 정책
        • 광고 정책
        • 업종별 광고 정책
        • 광고 불가 업종 안내
    • 2️⃣정산
  • 📖용어집
    • 캠페인 상태
    • 광고 소재
  • 릴리즈 노트
    • 릴리즈 노트
Powered by GitBook
On this page
  • 1. 네이티브 광고 레이아웃 만들기
  • 2. 네이티브 광고 불러오기
  • 3. 커스텀 필드 데이터 추가 및 자유로운 이미지 소재 사용하기
  1. 개발자 가이드
  2. Adrop SDK로 광고 노출하기
  3. React Native 앱에 Adrop SDK 설치하기

React Native 네이티브 광고

PreviousReact Native 팝업 광고NextReact Native 스플래시 광고

Last updated 2 months ago

1. 네이티브 광고 레이아웃 만들기

네이티브 광고 에서는 다음과 같은 view 의 종류들이 포함 될 수 있습니다.

  • 프로필 로고

  • 프로필 이름

  • 제목

  • 내용

  • 소재 이미지

예를 들어, 소셜 피드 형식의 네이티브 광고를 구성한다면 다음과 같은 레이아웃을 만들 수 있습니다.

  • AdropNativeAdView - parent view

    • AdropProfileLogoView - 프로필 로고

    • AdropProfileNameView - 프로필 이름

    • AdropHeadLineView - 제목

    • AdropBodyView - 내용

    • AdropMediaView - 소재 이미지

      • 제목, 내용, 소재 이미지는 컴포넌트를 제공하지만 자유롭게 사용하실 수 있도록 필드 데이터를 제공합니다.

<AdropNativeAdView
    nativeAd={nativeAd}
    style={{
        ...styles.adContainer,
        width: Dimensions.get('window').width,
    }}
>
    <View style={styles.rowContainer}>
        // 아래의 컴포넌트로 광고주 프로필을 표시하실 수 있지만, 필드 데이터로 자유롭게 구현하셔도 됩니다.
        <AdropProfileLogoView style={styles.icon} />
        <AdropProfileNameView style={styles.name} />
    </View>

    <AdropHeadLineView style={styles.headline} />
    <AdropBodyView style={styles.body} />
    
    // 아래의 컴포넌트로 소재 이미지를 랜더링 하실 수 있습니다.
    // 콘솔에서 정의하신 사이즈와 동일하게 소재 사이즈를 스타일링 해주세요.
    <AdropMediaView
        style={{
            ...styles.adStyle,
        }}
    />
</AdropNativeAdView>

2. 네이티브 광고 불러오기

Ad type
Ad unit ID

Test Native ID

PUBLIC_TEST_UNIT_ID_NATIVE


const YourComponent: React.FC = () => {
    const [nativeAd, setNativeAd] = useState<AdropNativeAd>()
    const [isLoaded, setIsLoaded] = useState(false)

    const initialize = useCallback(
        (unitId: string) => {
            let adropNativeAd = new AdropNativeAd(unitId)
            adropNativeAd.listener = listener
            setNativeAd((prev) => {
                prev?.destroy()
                return adropNativeAd
            })
        },
        [listener]
    )
    
    const listener = useMemo(
        (): AdropNativeAdListener => ({
            onAdReceived: (ad: AdropNativeAd) => {
                console.log(`nativeAd received ${ad.unitId}`, ad.properties) 
                // 커스텀 필드를 추가하셨다면, ad.properties.extra 에서 추가된 값들을 받으실 수 있습니다.
                setIsLoaded(true)
            },
            onAdFailedToReceive: (_, error) => {
                console.log('nativeAd onAdFailedToReceive', error)
            },
            onAdClicked: (ad) => console.log(`nativeAd clicked ${ad.unitId}`),
        }),
        []
    )
    
    useEffect(() => {
        initialize(testUnitId_native)
    }, [initialize])
    
    const load = () => nativeAd?.load()
    

    const adView = useMemo(() => {
        if (!isLoaded) return null

        return (
            <AdropNativeAdView
                nativeAd={nativeAd}
                style={{
                    ...styles.adContainer,
                    width: Dimensions.get('window').width,
                }}
            >
                <View style={styles.rowContainer}>
                    <AdropProfileLogoView style={styles.icon} />
                    <AdropProfileNameView style={styles.name} />
                </View>

                <AdropHeadLineView style={styles.headline} />
                <AdropBodyView style={styles.body} />

                <AdropMediaView
                    style={{
                        ...styles.adStyle,
                    }}
                />
            </AdropNativeAdView>
        )
    }, [isLoaded, nativeAd])
        
    return (
        <View>
            <View>
                <Button title={'nativeAd load'} onPress={load} />
            </View>
            <View>{adView}</View>
        </View>
    )
}
    

3. 커스텀 필드 데이터 추가 및 자유로운 이미지 소재 사용하기

예를 들어, t1, t2, t3 라는 커스텀 필드가 추가 되었을 경우에 대해 알아보겠습니다. * 텍스트 라벨은 광고주 콘솔에 입력되는 라벨입니다.

const YourComponent: React.FC = () => {
    const [nativeAd, setNativeAd] = useState<AdropNativeAd>()
    const [isLoaded, setIsLoaded] = useState(false)
    const [customContents, setCustomContents] = useState<Record<string, string>>()
    const [adAsset, setAdAsset] = useState<string>('');
    
    const initialize = useCallback(
        (unitId: string) => {
            let adropNativeAd = new AdropNativeAd(unitId)
            adropNativeAd.listener = listener
            setNativeAd((prev) => {
                prev?.destroy()
                return adropNativeAd
            })
        },
        [listener]
    )
    
    const listener = useMemo(
        (): AdropNativeAdListener => ({
            onAdReceived: (ad: AdropNativeAd) => {
                console.log(`nativeAd received ${ad.unitId}`, ad.properties) 
                // 커스텀 필드를 추가하셨다면, ad.properties.extra 에서 추가된 값들을 받으실 수 있습니다.
                // 이미지 소재를 커스텀하게 사용하시려면, ad.properties.asset 데이터를 사용하시면 됩니다.
                ...
                setCustomContents(ad.properties.extra)
                setAdAsset(ad.properties.asset)
            },
            onAdFailedToReceive: (_, error) => {
                console.log('nativeAd onAdFailedToReceive', error)
            },
            onAdClicked: (ad) => console.log(`nativeAd clicked ${ad.unitId}`),
        }),
        []
    )
    
    useEffect(() => {
        initialize(testUnitId_native)
    }, [initialize])
    
    const load = () => nativeAd?.load()
    
    const adView = useMemo(() => {
        if (!isLoaded) return null

        return (
            <AdropNativeAdView
                nativeAd={nativeAd}
                style={{
                    ...styles.adContainer,
                    width: Dimensions.get('window').width,
                }}
            >
                <View style={styles.rowContainer}>
                    <Text>{customContents['t1']}</Text>
                    <Text>{customContents['t2']}</Text>
                    <Text>{customContents['t3']}</Text>
                </View>
            </AdropNativeAdView>
        )
    }, [isLoaded, nativeAd])
        
    return (
        <View>
            <View>
                <Button title={'nativeAd load'} onPress={load} />
            </View>
            <View>{adView}</View>
        </View>
    )
}
    

자세한 예시는 에서 확인하실 수 있습니다. 타입 또한 에서 확인하실 수 있습니다.

Github
Github