@apps-in-toss/native-modules 1.0.1 → 1.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +65 -1
- package/dist/index.d.cts +439 -137
- package/dist/index.d.ts +439 -137
- package/dist/index.js +65 -1
- package/package.json +2 -2
- package/src/AppsInTossModule/native-modules/ads/googleAdMob.ts +158 -167
- package/src/AppsInTossModule/native-modules/ads/googleAdMobV2.ts +363 -0
- package/src/AppsInTossModule/native-modules/ads/types.ts +17 -0
- package/src/AppsInTossModule/native-modules/index.ts +22 -4
package/dist/index.d.cts
CHANGED
|
@@ -422,6 +422,13 @@ type AdImpression = {
|
|
|
422
422
|
type AdShow = {
|
|
423
423
|
type: 'show';
|
|
424
424
|
};
|
|
425
|
+
type AdUserEarnedReward = {
|
|
426
|
+
type: 'userEarnedReward';
|
|
427
|
+
data: {
|
|
428
|
+
unitType: string;
|
|
429
|
+
unitAmount: number;
|
|
430
|
+
};
|
|
431
|
+
};
|
|
425
432
|
interface AdMobHandlerParams<Options = void, Event = AdMobFullScreenEvent> {
|
|
426
433
|
options: Options;
|
|
427
434
|
onEvent: (event: Event) => void;
|
|
@@ -483,6 +490,20 @@ interface RewardedAd {
|
|
|
483
490
|
adUnitId: string;
|
|
484
491
|
responseInfo: ResponseInfo;
|
|
485
492
|
}
|
|
493
|
+
/**
|
|
494
|
+
* @public
|
|
495
|
+
* @category 광고
|
|
496
|
+
* @name AdMobLoadResult
|
|
497
|
+
* @description 광고의 ID와 응답 정보를 담고 있는 객체예요. 광고를 로드한 뒤, 관련 정보를 확인할 때 유용해요.
|
|
498
|
+
* @property {string} adGroupId 광고 그룹 ID예요.
|
|
499
|
+
* @property {string} adUnitId 광고 ID예요.
|
|
500
|
+
* @property {ResponseInfo} responseInfo 광고 로드 응답 정보예요. 자세한 내용은 [ResponseInfo](/react-native/reference/framework/광고/ResponseInfo.html)를 참고하세요.
|
|
501
|
+
*/
|
|
502
|
+
interface AdMobLoadResult {
|
|
503
|
+
adGroupId: string;
|
|
504
|
+
adUnitId: string;
|
|
505
|
+
responseInfo: ResponseInfo;
|
|
506
|
+
}
|
|
486
507
|
|
|
487
508
|
interface LoadAdMobInterstitialAdOptions {
|
|
488
509
|
/**
|
|
@@ -511,16 +532,10 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
511
532
|
* @public
|
|
512
533
|
* @category 광고
|
|
513
534
|
* @name loadAdMobInterstitialAd
|
|
514
|
-
* @
|
|
515
|
-
* @param {LoadAdMobInterstitialAdParams} params 광고를 불러올 때 사용할 설정 값이에요. 광고 ID와 광고의 동작에 대한 콜백을 설정할 수 있어요.
|
|
516
|
-
* @param {LoadAdMobInterstitialAdOptions} params.options 광고를 불러올 때 전달할 옵션 객체예요.
|
|
517
|
-
* @param {string} params.options.adUnitId 광고 단위 ID예요. 발급받은 전면 광고용 ID를 입력해요.
|
|
518
|
-
* @param {(event: LoadAdMobInterstitialAdEvent) => void} [params.onEvent] 광고 관련 이벤트가 발생했을 때 호출돼요. (예시: 광고가 닫히거나 클릭됐을 때). 자세한 이벤트 타입은 [LoadAdMobInterstitialAdEvent](/react-native/reference/native-modules/광고/LoadAdMobInterstitialAdEvent.html)를 참고하세요.
|
|
519
|
-
* @param {(reason: unknown) => void} [params.onError] 광고를 불러오지 못했을 때 호출돼요. (예시: 네트워크 오류나 지원하지 않는 환경일 때)
|
|
520
|
-
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
535
|
+
* @deprecated 이 함수는 더 이상 사용되지 않습니다. 대신 {@link GoogleAdMob.loadAppsInTossAdMob}를 사용해주세요.
|
|
521
536
|
*
|
|
522
537
|
* @example
|
|
523
|
-
* ### 버튼 눌러 불러온
|
|
538
|
+
* ### 버튼 눌러 불러온 광고 보여주기 (loadAppsInTossAdMob로 변경 예제)
|
|
524
539
|
* ```tsx
|
|
525
540
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
526
541
|
* import { useFocusEffect } from '@granite-js/native/@react-navigation/native';
|
|
@@ -528,20 +543,20 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
528
543
|
* import { useCallback, useState } from 'react';
|
|
529
544
|
* import { Button, Text, View } from 'react-native';
|
|
530
545
|
*
|
|
531
|
-
* const
|
|
546
|
+
* const AD_GROUP_ID = '<AD_GROUP_ID>';
|
|
532
547
|
*
|
|
533
|
-
* export function
|
|
548
|
+
* export function GoogleAdmobExample() {
|
|
534
549
|
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
535
550
|
* const navigation = useNavigation();
|
|
536
551
|
*
|
|
537
552
|
* const loadAd = useCallback(() => {
|
|
538
|
-
* if (GoogleAdMob.
|
|
553
|
+
* if (GoogleAdMob.loadAppsInTossAdMob.isSupported() !== true) {
|
|
539
554
|
* return;
|
|
540
555
|
* }
|
|
541
556
|
|
|
542
|
-
* const cleanup = GoogleAdMob.
|
|
557
|
+
* const cleanup = GoogleAdMob.loadAppsInTossAdMob({
|
|
543
558
|
* options: {
|
|
544
|
-
*
|
|
559
|
+
* adGroupId: AD_GROUP_ID,
|
|
545
560
|
* },
|
|
546
561
|
* onEvent: (event) => {
|
|
547
562
|
* switch (event.type) {
|
|
@@ -549,27 +564,6 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
549
564
|
* console.log('광고 로드 성공', event.data);
|
|
550
565
|
* setAdLoadStatus('loaded');
|
|
551
566
|
* break;
|
|
552
|
-
*
|
|
553
|
-
* case 'clicked':
|
|
554
|
-
* console.log('광고 클릭');
|
|
555
|
-
* break;
|
|
556
|
-
*
|
|
557
|
-
* case 'dismissed':
|
|
558
|
-
* console.log('광고 닫힘');
|
|
559
|
-
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
560
|
-
* break;
|
|
561
|
-
*
|
|
562
|
-
* case 'failedToShow':
|
|
563
|
-
* console.log('광고 보여주기 실패');
|
|
564
|
-
* break;
|
|
565
|
-
*
|
|
566
|
-
* case 'impression':
|
|
567
|
-
* console.log('광고 노출');
|
|
568
|
-
* break;
|
|
569
|
-
*
|
|
570
|
-
* case 'show':
|
|
571
|
-
* console.log('광고 컨텐츠 보여졌음');
|
|
572
|
-
* break;
|
|
573
567
|
* }
|
|
574
568
|
* },
|
|
575
569
|
* onError: (error) => {
|
|
@@ -581,19 +575,45 @@ type LoadAdMobInterstitialAdParams = AdMobHandlerParams<LoadAdMobInterstitialAdO
|
|
|
581
575
|
* }, [navigation]);
|
|
582
576
|
*
|
|
583
577
|
* const showAd = useCallback(() => {
|
|
584
|
-
* if (GoogleAdMob.
|
|
578
|
+
* if (GoogleAdMob.showAppsInTossAdMob.isSupported() !== true) {
|
|
585
579
|
* return;
|
|
586
580
|
* }
|
|
587
581
|
*
|
|
588
|
-
* GoogleAdMob.
|
|
582
|
+
* GoogleAdMob.showAppsInTossAdMob({
|
|
589
583
|
* options: {
|
|
590
|
-
*
|
|
584
|
+
* adGroupId: AD_GROUP_ID,
|
|
591
585
|
* },
|
|
592
586
|
* onEvent: (event) => {
|
|
593
587
|
* switch (event.type) {
|
|
594
588
|
* case 'requested':
|
|
595
589
|
* console.log('광고 보여주기 요청 완료');
|
|
596
590
|
* break;
|
|
591
|
+
*
|
|
592
|
+
* case 'clicked':
|
|
593
|
+
* console.log('광고 클릭');
|
|
594
|
+
* break;
|
|
595
|
+
*
|
|
596
|
+
* case 'dismissed':
|
|
597
|
+
* console.log('광고 닫힘');
|
|
598
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
599
|
+
* break;
|
|
600
|
+
*
|
|
601
|
+
* case 'failedToShow':
|
|
602
|
+
* console.log('광고 보여주기 실패');
|
|
603
|
+
* break;
|
|
604
|
+
*
|
|
605
|
+
* case 'impression':
|
|
606
|
+
* console.log('광고 노출');
|
|
607
|
+
* break;
|
|
608
|
+
*
|
|
609
|
+
* case 'userEarnedReward':
|
|
610
|
+
* console.log('광고 보상 획득 unitType:', event.data.unitType);
|
|
611
|
+
* console.log('광고 보상 획득 unitAmount:', event.data.unitAmount);
|
|
612
|
+
* break;
|
|
613
|
+
*
|
|
614
|
+
* case 'show':
|
|
615
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
616
|
+
* break;
|
|
597
617
|
* }
|
|
598
618
|
* },
|
|
599
619
|
* onError: (error) => {
|
|
@@ -648,16 +668,10 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
648
668
|
* @public
|
|
649
669
|
* @category 광고
|
|
650
670
|
* @name showAdMobInterstitialAd
|
|
651
|
-
* @
|
|
652
|
-
* @param {ShowAdMobInterstitialAdParams} params 광고를 보여주기 위해 사용할 설정 값이에요. 광고 ID와과 광고의 동작에 대한 콜백을 설정할 수 있어요.
|
|
653
|
-
* @param {ShowAdMobInterstitialAdOptions} params.options 광고를 보여줄 때 전달할 옵션 객체예요.
|
|
654
|
-
* @param {string} params.options.adUnitId 광고 단위 ID예요. `loadAdMobInterstitialAd` 로 불러온 전면 광고용 ID를 입력해요.
|
|
655
|
-
* @param {(event: ShowAdMobInterstitialAdEvent) => void} [params.onEvent] 광고 관련 이벤트가 발생했을 때 호출돼요. (예시: 광고 노출을 요청했을 때). 자세한 이벤트 타입은 [ShowAdMobInterstitialAdEvent](/react-native/reference/native-modules/광고/ShowAdMobInterstitialAdEvent.html)를 참고하세요.
|
|
656
|
-
* @param {(reason: unknown) => void} [params.onError] 광고를 노출하지 못했을 때 호출돼요. (예시: 네트워크 오류나 지원하지 않는 환경일 때)
|
|
657
|
-
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
671
|
+
* @deprecated 이 함수는 더 이상 사용되지 않습니다. 대신 {@link GoogleAdMob.showAppsInTossAdMob}를 사용해주세요.
|
|
658
672
|
*
|
|
659
673
|
* @example
|
|
660
|
-
* ### 버튼 눌러 불러온
|
|
674
|
+
* ### 버튼 눌러 불러온 광고 보여주기 (showAppsInTossAdMob로 변경 예제)
|
|
661
675
|
* ```tsx
|
|
662
676
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
663
677
|
* import { useFocusEffect } from '@granite-js/native/@react-navigation/native';
|
|
@@ -665,20 +679,20 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
665
679
|
* import { useCallback, useState } from 'react';
|
|
666
680
|
* import { Button, Text, View } from 'react-native';
|
|
667
681
|
*
|
|
668
|
-
* const
|
|
682
|
+
* const AD_GROUP_ID = '<AD_GROUP_ID>';
|
|
669
683
|
*
|
|
670
|
-
* export function
|
|
684
|
+
* export function GoogleAdmobExample() {
|
|
671
685
|
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
672
686
|
* const navigation = useNavigation();
|
|
673
687
|
*
|
|
674
688
|
* const loadAd = useCallback(() => {
|
|
675
|
-
* if (GoogleAdMob.
|
|
689
|
+
* if (GoogleAdMob.loadAppsInTossAdMob.isSupported() !== true) {
|
|
676
690
|
* return;
|
|
677
691
|
* }
|
|
678
692
|
|
|
679
|
-
* const cleanup = GoogleAdMob.
|
|
693
|
+
* const cleanup = GoogleAdMob.loadAppsInTossAdMob({
|
|
680
694
|
* options: {
|
|
681
|
-
*
|
|
695
|
+
* adGroupId: AD_GROUP_ID,
|
|
682
696
|
* },
|
|
683
697
|
* onEvent: (event) => {
|
|
684
698
|
* switch (event.type) {
|
|
@@ -686,27 +700,6 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
686
700
|
* console.log('광고 로드 성공', event.data);
|
|
687
701
|
* setAdLoadStatus('loaded');
|
|
688
702
|
* break;
|
|
689
|
-
*
|
|
690
|
-
* case 'clicked':
|
|
691
|
-
* console.log('광고 클릭');
|
|
692
|
-
* break;
|
|
693
|
-
*
|
|
694
|
-
* case 'dismissed':
|
|
695
|
-
* console.log('광고 닫힘');
|
|
696
|
-
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
697
|
-
* break;
|
|
698
|
-
*
|
|
699
|
-
* case 'failedToShow':
|
|
700
|
-
* console.log('광고 보여주기 실패');
|
|
701
|
-
* break;
|
|
702
|
-
*
|
|
703
|
-
* case 'impression':
|
|
704
|
-
* console.log('광고 노출');
|
|
705
|
-
* break;
|
|
706
|
-
*
|
|
707
|
-
* case 'show':
|
|
708
|
-
* console.log('광고 컨텐츠 보여졌음');
|
|
709
|
-
* break;
|
|
710
703
|
* }
|
|
711
704
|
* },
|
|
712
705
|
* onError: (error) => {
|
|
@@ -718,19 +711,45 @@ type ShowAdMobInterstitialAdParams = AdMobHandlerParams<ShowAdMobInterstitialAdO
|
|
|
718
711
|
* }, [navigation]);
|
|
719
712
|
*
|
|
720
713
|
* const showAd = useCallback(() => {
|
|
721
|
-
* if (GoogleAdMob.
|
|
714
|
+
* if (GoogleAdMob.showAppsInTossAdMob.isSupported() !== true) {
|
|
722
715
|
* return;
|
|
723
716
|
* }
|
|
724
717
|
*
|
|
725
|
-
* GoogleAdMob.
|
|
718
|
+
* GoogleAdMob.showAppsInTossAdMob({
|
|
726
719
|
* options: {
|
|
727
|
-
*
|
|
720
|
+
* adGroupId: AD_GROUP_ID,
|
|
728
721
|
* },
|
|
729
722
|
* onEvent: (event) => {
|
|
730
723
|
* switch (event.type) {
|
|
731
724
|
* case 'requested':
|
|
732
725
|
* console.log('광고 보여주기 요청 완료');
|
|
733
726
|
* break;
|
|
727
|
+
*
|
|
728
|
+
* case 'clicked':
|
|
729
|
+
* console.log('광고 클릭');
|
|
730
|
+
* break;
|
|
731
|
+
*
|
|
732
|
+
* case 'dismissed':
|
|
733
|
+
* console.log('광고 닫힘');
|
|
734
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
735
|
+
* break;
|
|
736
|
+
*
|
|
737
|
+
* case 'failedToShow':
|
|
738
|
+
* console.log('광고 보여주기 실패');
|
|
739
|
+
* break;
|
|
740
|
+
*
|
|
741
|
+
* case 'impression':
|
|
742
|
+
* console.log('광고 노출');
|
|
743
|
+
* break;
|
|
744
|
+
*
|
|
745
|
+
* case 'userEarnedReward':
|
|
746
|
+
* console.log('광고 보상 획득 unitType:', event.data.unitType);
|
|
747
|
+
* console.log('광고 보상 획득 unitAmount:', event.data.unitAmount);
|
|
748
|
+
* break;
|
|
749
|
+
*
|
|
750
|
+
* case 'show':
|
|
751
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
752
|
+
* break;
|
|
734
753
|
* }
|
|
735
754
|
* },
|
|
736
755
|
* onError: (error) => {
|
|
@@ -788,44 +807,62 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
788
807
|
* @public
|
|
789
808
|
* @category 광고
|
|
790
809
|
* @name loadAdMobRewardedAd
|
|
791
|
-
* @
|
|
792
|
-
* @param {LoadAdMobRewardedAdParams} params 광고를 불러올 때 사용할 설정 값이에요. 광고 ID와 광고의 동작에 대한 콜백을 설정할 수 있어요.
|
|
793
|
-
* @param {LoadAdMobRewardedAdOptions} params.options 광고를 불러올 때 전달할 옵션 객체예요.
|
|
794
|
-
* @param {string} params.options.adUnitId 광고 단위 ID예요. 발급받은 보상형 광고용 ID를 입력해요.
|
|
795
|
-
* @param {(event: LoadAdMobRewardedAdEvent) => void} [params.onEvent] 광고 관련 이벤트가 발생했을 때 호출돼요. (예시: 광고가 닫히거나 클릭됐을 때). 자세한 이벤트 타입은 [LoadAdMobRewardedAdEvent](/react-native/reference/native-modules/광고/LoadAdMobRewardedAdEvent.html)를 참고하세요.
|
|
796
|
-
* @param {(reason: unknown) => void} [params.onError] 광고를 불러오지 못했을 때 호출돼요. (예시: 네트워크 오류나 지원하지 않는 환경일 때)
|
|
797
|
-
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
810
|
+
* @deprecated 이 함수는 더 이상 사용되지 않습니다. 대신 {@link GoogleAdMob.loadAppsInTossAdMob}를 사용해주세요.
|
|
798
811
|
*
|
|
799
812
|
* @example
|
|
800
|
-
*
|
|
801
|
-
* ### 버튼 눌러 불러온 보상형 광고 보여주기
|
|
802
|
-
*
|
|
813
|
+
* ### 버튼 눌러 불러온 광고 보여주기 (loadAppsInTossAdMob로 변경 예제)
|
|
803
814
|
* ```tsx
|
|
804
815
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
816
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
805
817
|
* import { useCallback, useState } from 'react';
|
|
806
818
|
* import { Button, Text, View } from 'react-native';
|
|
819
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
807
820
|
*
|
|
808
|
-
* const
|
|
821
|
+
* const AD_GROUP_ID = '<AD_GROUP_ID>';
|
|
809
822
|
*
|
|
810
|
-
* export function
|
|
823
|
+
* export function GoogleAdmobExample() {
|
|
811
824
|
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
825
|
+
* const navigation = useNavigation();
|
|
812
826
|
*
|
|
813
827
|
* const loadAd = useCallback(() => {
|
|
814
|
-
* if (GoogleAdMob.
|
|
828
|
+
* if (GoogleAdMob.loadAppsInTossAdMob.isSupported() !== true) {
|
|
815
829
|
* return;
|
|
816
830
|
* }
|
|
817
|
-
|
|
818
|
-
* const cleanup = GoogleAdMob.
|
|
831
|
+
|
|
832
|
+
* const cleanup = GoogleAdMob.loadAppsInTossAdMob({
|
|
819
833
|
* options: {
|
|
820
|
-
*
|
|
834
|
+
* adGroupId: AD_GROUP_ID,
|
|
821
835
|
* },
|
|
822
836
|
* onEvent: (event) => {
|
|
823
|
-
* console.log(event.type);
|
|
824
837
|
* switch (event.type) {
|
|
825
838
|
* case 'loaded':
|
|
826
839
|
* console.log('광고 로드 성공', event.data);
|
|
827
840
|
* setAdLoadStatus('loaded');
|
|
828
841
|
* break;
|
|
842
|
+
* }
|
|
843
|
+
* },
|
|
844
|
+
* onError: (error) => {
|
|
845
|
+
* console.error('광고 불러오기 실패', error);
|
|
846
|
+
* },
|
|
847
|
+
* });
|
|
848
|
+
*
|
|
849
|
+
* return cleanup;
|
|
850
|
+
* }, [navigation]);
|
|
851
|
+
*
|
|
852
|
+
* const showAd = useCallback(() => {
|
|
853
|
+
* if (GoogleAdMob.showAppsInTossAdMob.isSupported() !== true) {
|
|
854
|
+
* return;
|
|
855
|
+
* }
|
|
856
|
+
*
|
|
857
|
+
* GoogleAdMob.showAppsInTossAdMob({
|
|
858
|
+
* options: {
|
|
859
|
+
* adGroupId: AD_GROUP_ID,
|
|
860
|
+
* },
|
|
861
|
+
* onEvent: (event) => {
|
|
862
|
+
* switch (event.type) {
|
|
863
|
+
* case 'requested':
|
|
864
|
+
* console.log('광고 보여주기 요청 완료');
|
|
865
|
+
* break;
|
|
829
866
|
*
|
|
830
867
|
* case 'clicked':
|
|
831
868
|
* console.log('광고 클릭');
|
|
@@ -833,6 +870,7 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
833
870
|
*
|
|
834
871
|
* case 'dismissed':
|
|
835
872
|
* console.log('광고 닫힘');
|
|
873
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
836
874
|
* break;
|
|
837
875
|
*
|
|
838
876
|
* case 'failedToShow':
|
|
@@ -843,12 +881,99 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
843
881
|
* console.log('광고 노출');
|
|
844
882
|
* break;
|
|
845
883
|
*
|
|
884
|
+
* case 'userEarnedReward':
|
|
885
|
+
* console.log('광고 보상 획득 unitType:', event.data.unitType);
|
|
886
|
+
* console.log('광고 보상 획득 unitAmount:', event.data.unitAmount);
|
|
887
|
+
* break;
|
|
888
|
+
*
|
|
846
889
|
* case 'show':
|
|
847
890
|
* console.log('광고 컨텐츠 보여졌음');
|
|
848
891
|
* break;
|
|
892
|
+
* }
|
|
893
|
+
* },
|
|
894
|
+
* onError: (error) => {
|
|
895
|
+
* console.error('광고 보여주기 실패', error);
|
|
896
|
+
* },
|
|
897
|
+
* });
|
|
898
|
+
* }, []);
|
|
849
899
|
*
|
|
850
|
-
*
|
|
851
|
-
*
|
|
900
|
+
* useFocusEffect(loadAd);
|
|
901
|
+
*
|
|
902
|
+
* return (
|
|
903
|
+
* <View>
|
|
904
|
+
* <Text>
|
|
905
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
906
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
907
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
908
|
+
* </Text>
|
|
909
|
+
*
|
|
910
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
911
|
+
* </View>
|
|
912
|
+
* );
|
|
913
|
+
* }
|
|
914
|
+
* ```
|
|
915
|
+
*/
|
|
916
|
+
declare function loadAdMobRewardedAd(params: LoadAdMobRewardedAdParams): () => void;
|
|
917
|
+
declare namespace loadAdMobRewardedAd {
|
|
918
|
+
var isSupported: () => boolean;
|
|
919
|
+
}
|
|
920
|
+
interface ShowAdMobRewardedAdOptions {
|
|
921
|
+
/**
|
|
922
|
+
* 광고 단위 ID
|
|
923
|
+
*/
|
|
924
|
+
adUnitId: string;
|
|
925
|
+
}
|
|
926
|
+
/**
|
|
927
|
+
* @public
|
|
928
|
+
* @category 광고
|
|
929
|
+
* @name ShowAdMobRewardedAdEvent
|
|
930
|
+
* @description 보상형 광고를 보여주는 함수에서 발생하는 이벤트 타입이에요. `requested` 이벤트가 발생하면 광고 노출 요청이 Google AdMob에 성공적으로 전달된 거예요.
|
|
931
|
+
*/
|
|
932
|
+
type ShowAdMobRewardedAdEvent = {
|
|
933
|
+
type: 'requested';
|
|
934
|
+
};
|
|
935
|
+
/**
|
|
936
|
+
* @public
|
|
937
|
+
* @category 광고
|
|
938
|
+
* @name ShowAdMobRewardedAdParams
|
|
939
|
+
* @description 불러온 보상형 광고를 보여주는 함수에 필요한 옵션 객체예요.
|
|
940
|
+
*/
|
|
941
|
+
type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions, ShowAdMobRewardedAdEvent>;
|
|
942
|
+
/**
|
|
943
|
+
* @public
|
|
944
|
+
* @category 광고
|
|
945
|
+
* @name showAdMobRewardedAd
|
|
946
|
+
* @deprecated 이 함수는 더 이상 사용되지 않습니다. 대신 {@link GoogleAdMob.showAppsInTossAdMob}를 사용해주세요.
|
|
947
|
+
*
|
|
948
|
+
* @example
|
|
949
|
+
* ### 버튼 눌러 불러온 광고 보여주기 (showAppsInTossAdMob로 변경 예제)
|
|
950
|
+
* ```tsx
|
|
951
|
+
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
952
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
953
|
+
* import { useCallback, useState } from 'react';
|
|
954
|
+
* import { Button, Text, View } from 'react-native';
|
|
955
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
956
|
+
*
|
|
957
|
+
* const AD_GROUP_ID = '<AD_GROUP_ID>';
|
|
958
|
+
*
|
|
959
|
+
* export function GoogleAdmobExample() {
|
|
960
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
961
|
+
* const navigation = useNavigation();
|
|
962
|
+
*
|
|
963
|
+
* const loadAd = useCallback(() => {
|
|
964
|
+
* if (GoogleAdMob.loadAppsInTossAdMob.isSupported() !== true) {
|
|
965
|
+
* return;
|
|
966
|
+
* }
|
|
967
|
+
|
|
968
|
+
* const cleanup = GoogleAdMob.loadAppsInTossAdMob({
|
|
969
|
+
* options: {
|
|
970
|
+
* adGroupId: AD_GROUP_ID,
|
|
971
|
+
* },
|
|
972
|
+
* onEvent: (event) => {
|
|
973
|
+
* switch (event.type) {
|
|
974
|
+
* case 'loaded':
|
|
975
|
+
* console.log('광고 로드 성공', event.data);
|
|
976
|
+
* setAdLoadStatus('loaded');
|
|
852
977
|
* break;
|
|
853
978
|
* }
|
|
854
979
|
* },
|
|
@@ -858,22 +983,47 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
858
983
|
* });
|
|
859
984
|
*
|
|
860
985
|
* return cleanup;
|
|
861
|
-
* }, []);
|
|
986
|
+
* }, [navigation]);
|
|
862
987
|
*
|
|
863
988
|
* const showAd = useCallback(() => {
|
|
864
|
-
* if (GoogleAdMob.
|
|
989
|
+
* if (GoogleAdMob.showAppsInTossAdMob.isSupported() !== true) {
|
|
865
990
|
* return;
|
|
866
991
|
* }
|
|
867
992
|
*
|
|
868
|
-
* GoogleAdMob.
|
|
993
|
+
* GoogleAdMob.showAppsInTossAdMob({
|
|
869
994
|
* options: {
|
|
870
|
-
*
|
|
995
|
+
* adGroupId: AD_GROUP_ID,
|
|
871
996
|
* },
|
|
872
997
|
* onEvent: (event) => {
|
|
873
998
|
* switch (event.type) {
|
|
874
999
|
* case 'requested':
|
|
875
1000
|
* console.log('광고 보여주기 요청 완료');
|
|
876
|
-
*
|
|
1001
|
+
* break;
|
|
1002
|
+
*
|
|
1003
|
+
* case 'clicked':
|
|
1004
|
+
* console.log('광고 클릭');
|
|
1005
|
+
* break;
|
|
1006
|
+
*
|
|
1007
|
+
* case 'dismissed':
|
|
1008
|
+
* console.log('광고 닫힘');
|
|
1009
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
1010
|
+
* break;
|
|
1011
|
+
*
|
|
1012
|
+
* case 'failedToShow':
|
|
1013
|
+
* console.log('광고 보여주기 실패');
|
|
1014
|
+
* break;
|
|
1015
|
+
*
|
|
1016
|
+
* case 'impression':
|
|
1017
|
+
* console.log('광고 노출');
|
|
1018
|
+
* break;
|
|
1019
|
+
*
|
|
1020
|
+
* case 'userEarnedReward':
|
|
1021
|
+
* console.log('광고 보상 획득 unitType:', event.data.unitType);
|
|
1022
|
+
* console.log('광고 보상 획득 unitAmount:', event.data.unitAmount);
|
|
1023
|
+
* break;
|
|
1024
|
+
*
|
|
1025
|
+
* case 'show':
|
|
1026
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
877
1027
|
* break;
|
|
878
1028
|
* }
|
|
879
1029
|
* },
|
|
@@ -883,6 +1033,8 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
883
1033
|
* });
|
|
884
1034
|
* }, []);
|
|
885
1035
|
*
|
|
1036
|
+
* useFocusEffect(loadAd);
|
|
1037
|
+
*
|
|
886
1038
|
* return (
|
|
887
1039
|
* <View>
|
|
888
1040
|
* <Text>
|
|
@@ -891,80 +1043,106 @@ type LoadAdMobRewardedAdParams = AdMobHandlerParams<LoadAdMobRewardedAdOptions,
|
|
|
891
1043
|
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
892
1044
|
* </Text>
|
|
893
1045
|
*
|
|
894
|
-
* <Button title="Load Ad" onPress={loadAd} />
|
|
895
1046
|
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
896
1047
|
* </View>
|
|
897
1048
|
* );
|
|
898
1049
|
* }
|
|
899
1050
|
* ```
|
|
900
1051
|
*/
|
|
901
|
-
declare function
|
|
902
|
-
declare namespace
|
|
1052
|
+
declare function showAdMobRewardedAd(params: ShowAdMobRewardedAdParams): () => void;
|
|
1053
|
+
declare namespace showAdMobRewardedAd {
|
|
903
1054
|
var isSupported: () => boolean;
|
|
904
1055
|
}
|
|
905
|
-
|
|
1056
|
+
|
|
1057
|
+
interface LoadAdMobOptions {
|
|
906
1058
|
/**
|
|
907
|
-
* 광고 단위 ID
|
|
1059
|
+
* 광고 그룹 단위 ID
|
|
908
1060
|
*/
|
|
909
|
-
|
|
1061
|
+
adGroupId: string;
|
|
910
1062
|
}
|
|
911
1063
|
/**
|
|
912
1064
|
* @public
|
|
913
1065
|
* @category 광고
|
|
914
|
-
* @name
|
|
915
|
-
* @description
|
|
1066
|
+
* @name LoadAdMobEvent
|
|
1067
|
+
* @description 광고를 불러오는 함수에서 발생하는 이벤트 타입이에요. `loaded` 이벤트가 발생하면 광고를 성공적으로 불러온 거예요. 이때 [AdMobLoadResult](/react-native/reference/framework/광고/AdMobLoadResult.html) 객체가 함께 반환돼요.
|
|
916
1068
|
*/
|
|
917
|
-
type
|
|
918
|
-
type: '
|
|
1069
|
+
type LoadAdMobEvent = {
|
|
1070
|
+
type: 'loaded';
|
|
1071
|
+
data: AdMobLoadResult;
|
|
919
1072
|
};
|
|
920
1073
|
/**
|
|
921
1074
|
* @public
|
|
922
1075
|
* @category 광고
|
|
923
|
-
* @name
|
|
924
|
-
* @description
|
|
1076
|
+
* @name LoadAdMobParams
|
|
1077
|
+
* @description 광고를 불러오는 함수에 필요한 옵션 객체예요.
|
|
925
1078
|
*/
|
|
926
|
-
type
|
|
1079
|
+
type LoadAdMobParams = AdMobHandlerParams<LoadAdMobOptions, LoadAdMobEvent>;
|
|
927
1080
|
/**
|
|
928
1081
|
* @public
|
|
929
1082
|
* @category 광고
|
|
930
|
-
* @name
|
|
931
|
-
* @description
|
|
932
|
-
* @param {
|
|
933
|
-
* @param {
|
|
934
|
-
* @param {string} params.options.
|
|
935
|
-
* @param {(event:
|
|
1083
|
+
* @name loadAppsInTossAdMob
|
|
1084
|
+
* @description 광고를 미리 불러와서, 광고가 필요한 시점에 바로 보여줄 수 있도록 준비하는 함수예요.
|
|
1085
|
+
* @param {LoadAdMobParams} params 광고를 불러올 때 사용할 설정 값이에요. 광고 그룹 ID와 광고의 동작에 대한 콜백을 설정할 수 있어요.
|
|
1086
|
+
* @param {LoadAdMobOptions} params.options 광고를 불러올 때 전달할 옵션 객체예요.
|
|
1087
|
+
* @param {string} params.options.adGroupId 광고 그룹 단위 ID예요. 콘솔에서 발급받은 ID를 입력해요.
|
|
1088
|
+
* @param {(event: LoadAdMobEvent) => void} [params.onEvent] 광고 관련 이벤트가 발생했을 때 호출돼요. (예시: 광고가 닫히거나 클릭됐을 때). 자세한 이벤트 타입은 [LoadAdMobEvent](/react-native/reference/framework/광고/LoadAdMobEvent.html)를 참고하세요.
|
|
936
1089
|
* @param {(reason: unknown) => void} [params.onError] 광고를 불러오지 못했을 때 호출돼요. (예시: 네트워크 오류나 지원하지 않는 환경일 때)
|
|
937
1090
|
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
938
1091
|
*
|
|
939
1092
|
* @example
|
|
940
|
-
* ### 버튼 눌러 불러온
|
|
941
|
-
*
|
|
1093
|
+
* ### 버튼 눌러 불러온 광고 보여주기
|
|
942
1094
|
* ```tsx
|
|
943
1095
|
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
1096
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
944
1097
|
* import { useCallback, useState } from 'react';
|
|
945
1098
|
* import { Button, Text, View } from 'react-native';
|
|
1099
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
946
1100
|
*
|
|
947
|
-
* const
|
|
1101
|
+
* const AD_GROUP_ID = '<AD_GROUP_ID>';
|
|
948
1102
|
*
|
|
949
|
-
* export function
|
|
1103
|
+
* export function GoogleAdmobExample() {
|
|
950
1104
|
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
1105
|
+
* const navigation = useNavigation();
|
|
951
1106
|
*
|
|
952
1107
|
* const loadAd = useCallback(() => {
|
|
953
|
-
* if (GoogleAdMob.
|
|
1108
|
+
* if (GoogleAdMob.loadAppsInTossAdMob.isSupported() !== true) {
|
|
954
1109
|
* return;
|
|
955
1110
|
* }
|
|
956
|
-
|
|
957
|
-
* const cleanup = GoogleAdMob.
|
|
1111
|
+
|
|
1112
|
+
* const cleanup = GoogleAdMob.loadAppsInTossAdMob({
|
|
958
1113
|
* options: {
|
|
959
|
-
*
|
|
1114
|
+
* adGroupId: AD_GROUP_ID,
|
|
960
1115
|
* },
|
|
961
1116
|
* onEvent: (event) => {
|
|
962
|
-
* console.log(event.type);
|
|
963
1117
|
* switch (event.type) {
|
|
964
1118
|
* case 'loaded':
|
|
965
1119
|
* console.log('광고 로드 성공', event.data);
|
|
966
1120
|
* setAdLoadStatus('loaded');
|
|
967
1121
|
* break;
|
|
1122
|
+
* }
|
|
1123
|
+
* },
|
|
1124
|
+
* onError: (error) => {
|
|
1125
|
+
* console.error('광고 불러오기 실패', error);
|
|
1126
|
+
* },
|
|
1127
|
+
* });
|
|
1128
|
+
*
|
|
1129
|
+
* return cleanup;
|
|
1130
|
+
* }, [navigation]);
|
|
1131
|
+
*
|
|
1132
|
+
* const showAd = useCallback(() => {
|
|
1133
|
+
* if (GoogleAdMob.showAppsInTossAdMob.isSupported() !== true) {
|
|
1134
|
+
* return;
|
|
1135
|
+
* }
|
|
1136
|
+
*
|
|
1137
|
+
* GoogleAdMob.showAppsInTossAdMob({
|
|
1138
|
+
* options: {
|
|
1139
|
+
* adGroupId: AD_GROUP_ID,
|
|
1140
|
+
* },
|
|
1141
|
+
* onEvent: (event) => {
|
|
1142
|
+
* switch (event.type) {
|
|
1143
|
+
* case 'requested':
|
|
1144
|
+
* console.log('광고 보여주기 요청 완료');
|
|
1145
|
+
* break;
|
|
968
1146
|
*
|
|
969
1147
|
* case 'clicked':
|
|
970
1148
|
* console.log('광고 클릭');
|
|
@@ -972,6 +1150,7 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
972
1150
|
*
|
|
973
1151
|
* case 'dismissed':
|
|
974
1152
|
* console.log('광고 닫힘');
|
|
1153
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
975
1154
|
* break;
|
|
976
1155
|
*
|
|
977
1156
|
* case 'failedToShow':
|
|
@@ -982,12 +1161,105 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
982
1161
|
* console.log('광고 노출');
|
|
983
1162
|
* break;
|
|
984
1163
|
*
|
|
1164
|
+
* case 'userEarnedReward':
|
|
1165
|
+
* console.log('광고 보상 획득 unitType:', event.data.unitType);
|
|
1166
|
+
* console.log('광고 보상 획득 unitAmount:', event.data.unitAmount);
|
|
1167
|
+
* break;
|
|
1168
|
+
*
|
|
985
1169
|
* case 'show':
|
|
986
1170
|
* console.log('광고 컨텐츠 보여졌음');
|
|
987
1171
|
* break;
|
|
1172
|
+
* }
|
|
1173
|
+
* },
|
|
1174
|
+
* onError: (error) => {
|
|
1175
|
+
* console.error('광고 보여주기 실패', error);
|
|
1176
|
+
* },
|
|
1177
|
+
* });
|
|
1178
|
+
* }, []);
|
|
988
1179
|
*
|
|
989
|
-
*
|
|
990
|
-
*
|
|
1180
|
+
* useFocusEffect(loadAd);
|
|
1181
|
+
*
|
|
1182
|
+
* return (
|
|
1183
|
+
* <View>
|
|
1184
|
+
* <Text>
|
|
1185
|
+
* {adLoadStatus === 'not_loaded' && '광고 로드 하지 않음 '}
|
|
1186
|
+
* {adLoadStatus === 'loaded' && '광고 로드 완료'}
|
|
1187
|
+
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
1188
|
+
* </Text>
|
|
1189
|
+
*
|
|
1190
|
+
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
1191
|
+
* </View>
|
|
1192
|
+
* );
|
|
1193
|
+
* }
|
|
1194
|
+
* ```
|
|
1195
|
+
*/
|
|
1196
|
+
declare function loadAppsInTossAdMob(params: LoadAdMobParams): () => void;
|
|
1197
|
+
declare namespace loadAppsInTossAdMob {
|
|
1198
|
+
var isSupported: () => boolean;
|
|
1199
|
+
}
|
|
1200
|
+
interface ShowAdMobOptions {
|
|
1201
|
+
/**
|
|
1202
|
+
* 광고 그룹 단위 ID
|
|
1203
|
+
*/
|
|
1204
|
+
adGroupId: string;
|
|
1205
|
+
}
|
|
1206
|
+
/**
|
|
1207
|
+
* @public
|
|
1208
|
+
* @category 광고
|
|
1209
|
+
* @name ShowAdMobEvent
|
|
1210
|
+
* @description 광고를 보여주는 함수에서 발생하는 이벤트 타입이에요. `requested` 이벤트가 발생하면 광고 노출 요청이 Google AdMob에 성공적으로 전달된 거예요.
|
|
1211
|
+
*/
|
|
1212
|
+
type ShowAdMobEvent = AdMobFullScreenEvent | AdUserEarnedReward | {
|
|
1213
|
+
type: 'requested';
|
|
1214
|
+
};
|
|
1215
|
+
/**
|
|
1216
|
+
* @public
|
|
1217
|
+
* @category 광고
|
|
1218
|
+
* @name ShowAdMobParams
|
|
1219
|
+
* @description 불러온 광고를 보여주는 함수에 필요한 옵션 객체예요.
|
|
1220
|
+
*/
|
|
1221
|
+
type ShowAdMobParams = AdMobHandlerParams<ShowAdMobOptions, ShowAdMobEvent>;
|
|
1222
|
+
/**
|
|
1223
|
+
* @public
|
|
1224
|
+
* @category 광고
|
|
1225
|
+
* @name showAppsInTossAdMob
|
|
1226
|
+
* @description 광고를 사용자에게 노출해요. 이 함수는 `loadAppsInTossAdMob` 로 미리 불러온 광고를 실제로 사용자에게 노출해요.
|
|
1227
|
+
* @param {ShowAdMobParams} params 광고를 보여주기 위해 사용할 설정 값이에요. 광고 그룹 ID와과 광고의 동작에 대한 콜백을 설정할 수 있어요.
|
|
1228
|
+
* @param {ShowAdMobOptions} params.options 광고를 보여줄 때 전달할 옵션 객체예요.
|
|
1229
|
+
* @param {string} params.options.adUnitId 광고 그룹 단위 ID예요. `loadAppsInTossAdMob` 로 불러온 광고용 그룹 ID를 입력해요.
|
|
1230
|
+
* @param {(event: ShowAdMobEvent) => void} [params.onEvent] 광고 관련 이벤트가 발생했을 때 호출돼요. (예시: 광고 노출을 요청했을 때). 자세한 이벤트 타입은 [ShowAdMobEvent](/react-native/reference/framework/광고/ShowAdMobEvent.html)를 참고하세요.
|
|
1231
|
+
* @param {(reason: unknown) => void} [params.onError] 광고를 노출하지 못했을 때 호출돼요. (예시: 네트워크 오류나 지원하지 않는 환경일 때)
|
|
1232
|
+
* @property {() => boolean} [isSupported] 현재 실행 중인 앱(예: 토스 앱, 개발용 샌드박스 앱 등)에서 Google AdMob 광고 기능을 지원하는지 확인하는 함수예요. 기능을 사용하기 전에 지원 여부를 확인해야 해요.
|
|
1233
|
+
*
|
|
1234
|
+
* @example
|
|
1235
|
+
* ### 버튼 눌러 불러온 광고 보여주기
|
|
1236
|
+
* ```tsx
|
|
1237
|
+
* import { GoogleAdMob } from '@apps-in-toss/framework';
|
|
1238
|
+
* import { useFocusEffect } from '@react-native-bedrock/native/@react-navigation/native';
|
|
1239
|
+
* import { useCallback, useState } from 'react';
|
|
1240
|
+
* import { Button, Text, View } from 'react-native';
|
|
1241
|
+
* import { useNavigation } from 'react-native-bedrock';
|
|
1242
|
+
*
|
|
1243
|
+
* const AD_GROUP_ID = '<AD_GROUP_ID>';
|
|
1244
|
+
*
|
|
1245
|
+
* export function GoogleAdmobExample() {
|
|
1246
|
+
* const [adLoadStatus, setAdLoadStatus] = useState<'not_loaded' | 'loaded' | 'failed'>('not_loaded');
|
|
1247
|
+
* const navigation = useNavigation();
|
|
1248
|
+
*
|
|
1249
|
+
* const loadAd = useCallback(() => {
|
|
1250
|
+
* if (GoogleAdMob.loadAppsInTossAdMob.isSupported() !== true) {
|
|
1251
|
+
* return;
|
|
1252
|
+
* }
|
|
1253
|
+
|
|
1254
|
+
* const cleanup = GoogleAdMob.loadAppsInTossAdMob({
|
|
1255
|
+
* options: {
|
|
1256
|
+
* adGroupId: AD_GROUP_ID,
|
|
1257
|
+
* },
|
|
1258
|
+
* onEvent: (event) => {
|
|
1259
|
+
* switch (event.type) {
|
|
1260
|
+
* case 'loaded':
|
|
1261
|
+
* console.log('광고 로드 성공', event.data);
|
|
1262
|
+
* setAdLoadStatus('loaded');
|
|
991
1263
|
* break;
|
|
992
1264
|
* }
|
|
993
1265
|
* },
|
|
@@ -997,22 +1269,47 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
997
1269
|
* });
|
|
998
1270
|
*
|
|
999
1271
|
* return cleanup;
|
|
1000
|
-
* }, []);
|
|
1272
|
+
* }, [navigation]);
|
|
1001
1273
|
*
|
|
1002
1274
|
* const showAd = useCallback(() => {
|
|
1003
|
-
* if (GoogleAdMob.
|
|
1275
|
+
* if (GoogleAdMob.showAppsInTossAdMob.isSupported() !== true) {
|
|
1004
1276
|
* return;
|
|
1005
1277
|
* }
|
|
1006
1278
|
*
|
|
1007
|
-
* GoogleAdMob.
|
|
1279
|
+
* GoogleAdMob.showAppsInTossAdMob({
|
|
1008
1280
|
* options: {
|
|
1009
|
-
*
|
|
1281
|
+
* adGroupId: AD_GROUP_ID,
|
|
1010
1282
|
* },
|
|
1011
1283
|
* onEvent: (event) => {
|
|
1012
1284
|
* switch (event.type) {
|
|
1013
1285
|
* case 'requested':
|
|
1014
1286
|
* console.log('광고 보여주기 요청 완료');
|
|
1015
|
-
*
|
|
1287
|
+
* break;
|
|
1288
|
+
*
|
|
1289
|
+
* case 'clicked':
|
|
1290
|
+
* console.log('광고 클릭');
|
|
1291
|
+
* break;
|
|
1292
|
+
*
|
|
1293
|
+
* case 'dismissed':
|
|
1294
|
+
* console.log('광고 닫힘');
|
|
1295
|
+
* navigation.navigate('/examples/google-admob-interstitial-ad-landing');
|
|
1296
|
+
* break;
|
|
1297
|
+
*
|
|
1298
|
+
* case 'failedToShow':
|
|
1299
|
+
* console.log('광고 보여주기 실패');
|
|
1300
|
+
* break;
|
|
1301
|
+
*
|
|
1302
|
+
* case 'impression':
|
|
1303
|
+
* console.log('광고 노출');
|
|
1304
|
+
* break;
|
|
1305
|
+
*
|
|
1306
|
+
* case 'userEarnedReward':
|
|
1307
|
+
* console.log('광고 보상 획득 unitType:', event.data.unitType);
|
|
1308
|
+
* console.log('광고 보상 획득 unitAmount:', event.data.unitAmount);
|
|
1309
|
+
* break;
|
|
1310
|
+
*
|
|
1311
|
+
* case 'show':
|
|
1312
|
+
* console.log('광고 컨텐츠 보여졌음');
|
|
1016
1313
|
* break;
|
|
1017
1314
|
* }
|
|
1018
1315
|
* },
|
|
@@ -1022,6 +1319,8 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
1022
1319
|
* });
|
|
1023
1320
|
* }, []);
|
|
1024
1321
|
*
|
|
1322
|
+
* useFocusEffect(loadAd);
|
|
1323
|
+
*
|
|
1025
1324
|
* return (
|
|
1026
1325
|
* <View>
|
|
1027
1326
|
* <Text>
|
|
@@ -1030,15 +1329,14 @@ type ShowAdMobRewardedAdParams = AdMobHandlerParams<ShowAdMobRewardedAdOptions,
|
|
|
1030
1329
|
* {adLoadStatus === 'failed' && '광고 로드 실패'}
|
|
1031
1330
|
* </Text>
|
|
1032
1331
|
*
|
|
1033
|
-
* <Button title="Load Ad" onPress={loadAd} />
|
|
1034
1332
|
* <Button title="Show Ad" onPress={showAd} disabled={adLoadStatus !== 'loaded'} />
|
|
1035
1333
|
* </View>
|
|
1036
1334
|
* );
|
|
1037
1335
|
* }
|
|
1038
1336
|
* ```
|
|
1039
1337
|
*/
|
|
1040
|
-
declare function
|
|
1041
|
-
declare namespace
|
|
1338
|
+
declare function showAppsInTossAdMob(params: ShowAdMobParams): () => void;
|
|
1339
|
+
declare namespace showAppsInTossAdMob {
|
|
1042
1340
|
var isSupported: () => boolean;
|
|
1043
1341
|
}
|
|
1044
1342
|
|
|
@@ -2344,12 +2642,16 @@ declare const TossPay: {
|
|
|
2344
2642
|
* @property {typeof showAdMobInterstitialAd} [showAdMobInterstitialAd] 로드한 전면 광고를 보여주는 함수예요. 자세한 내용은 [showAdMobInterstitialAd](/react-native/reference/native-modules/광고/showAdMobInterstitialAd.html)를 참고하세요.
|
|
2345
2643
|
* @property {typeof loadAdMobRewardedAd} [loadAdMobRewardedAd] 보상형 광고를 로드하는 함수예요. 자세한 내용은 [loadAdMobRewardedAd](/react-native/reference/native-modules/광고/loadAdMobRewardedAd.html)를 참고하세요.
|
|
2346
2644
|
* @property {typeof showAdMobRewardedAd} [showAdMobRewardedAd] 로드한 보상형 광고를 보여주는 함수예요. 자세한 내용은 [showAdMobRewardedAd](/react-native/reference/native-modules/광고/showAdMobRewardedAd.html)를 참고하세요.
|
|
2645
|
+
* @property {typeof loadAppsInTossAdMob} [loadAppsInTossAdMob] 광고를 로드하는 함수예요. 자세한 내용은 [loadAppsInTossAdMob](/react-native/reference/native-modules/광고/loadAppsInTossAdMob.html)를 참고하세요.
|
|
2646
|
+
* @property {typeof showAppsInTossAdMob} [showAppsInTossAdMob] 로드한 광고를 보여주는 함수예요. 자세한 내용은 [showAppsInTossAdMob](/react-native/reference/native-modules/광고/showAppsInTossAdMob.html)를 참고하세요.
|
|
2347
2647
|
*/
|
|
2348
2648
|
declare const GoogleAdMob: {
|
|
2349
2649
|
loadAdMobInterstitialAd: typeof loadAdMobInterstitialAd;
|
|
2350
2650
|
showAdMobInterstitialAd: typeof showAdMobInterstitialAd;
|
|
2351
2651
|
loadAdMobRewardedAd: typeof loadAdMobRewardedAd;
|
|
2352
2652
|
showAdMobRewardedAd: typeof showAdMobRewardedAd;
|
|
2653
|
+
loadAppsInTossAdMob: typeof loadAppsInTossAdMob;
|
|
2654
|
+
showAppsInTossAdMob: typeof showAppsInTossAdMob;
|
|
2353
2655
|
};
|
|
2354
2656
|
|
|
2355
2657
|
/**
|
|
@@ -2817,4 +3119,4 @@ declare const INTERNAL__module: {
|
|
|
2817
3119
|
tossCoreEventLog: typeof tossCoreEventLog;
|
|
2818
3120
|
};
|
|
2819
3121
|
|
|
2820
|
-
export { Accuracy, AppsInTossModule, BedrockCoreModule, BedrockModule, type CheckoutPaymentOptions, type CheckoutPaymentResult, type ContactEntity, type ContactResult, type ContactsViralParams, type EventLogParams, type FetchAlbumPhotosOptions, type GameCenterGameProfileResponse, type GetCurrentLocationOptions, GoogleAdMob, type HapticFeedbackType, IAP, AppsInTossModuleInstance as INTERNAL__AppsInTossModule, INTERNAL__module, type IapCreateOneTimePurchaseOrderOptions, type IapCreateOneTimePurchaseOrderResult, type IapProductListItem, type ImageResponse, type LoadAdMobInterstitialAdEvent, type LoadAdMobInterstitialAdOptions, type LoadAdMobRewardedAdEvent, type LoadAdMobRewardedAdOptions, type Location, type LocationCoords, type NetworkStatus, type OpenCameraOptions, type PermissionAccess, type PermissionName, type PermissionStatus, type Primitive, type SaveBase64DataParams, type ShowAdMobInterstitialAdEvent, type ShowAdMobInterstitialAdOptions, type ShowAdMobRewardedAdEvent, type ShowAdMobRewardedAdOptions, type StartUpdateLocationOptions$1 as StartUpdateLocationOptions, type StartUpdateLocationSubscription, Storage, type SubmitGameCenterLeaderBoardScoreResponse, TossPay, type UpdateLocationEventEmitter, appLogin, appsInTossEvent, closeView, contactsViral, eventLog, fetchAlbumPhotos, fetchContacts, generateHapticFeedback, getClipboardText, getCurrentLocation, getDeviceId, getGameCenterGameProfile, getLocale, getNetworkStatus, getOperationalEnvironment, getPlatformOS, getSchemeUri, getTossAppVersion, getTossShareLink, isMinVersionSupported, onVisibilityChangedByTransparentServiceWeb, openCamera, openGameCenterLeaderboard, openURL, saveBase64Data, setClipboardText, setDeviceOrientation, setIosSwipeGestureEnabled, setScreenAwakeMode, setSecureScreen, share, startUpdateLocation, submitGameCenterLeaderBoardScore };
|
|
3122
|
+
export { Accuracy, AppsInTossModule, BedrockCoreModule, BedrockModule, type CheckoutPaymentOptions, type CheckoutPaymentResult, type ContactEntity, type ContactResult, type ContactsViralParams, type EventLogParams, type FetchAlbumPhotosOptions, type GameCenterGameProfileResponse, type GetCurrentLocationOptions, GoogleAdMob, type HapticFeedbackType, IAP, AppsInTossModuleInstance as INTERNAL__AppsInTossModule, INTERNAL__module, type IapCreateOneTimePurchaseOrderOptions, type IapCreateOneTimePurchaseOrderResult, type IapProductListItem, type ImageResponse, type LoadAdMobEvent, type LoadAdMobInterstitialAdEvent, type LoadAdMobInterstitialAdOptions, type LoadAdMobOptions, type LoadAdMobParams, type LoadAdMobRewardedAdEvent, type LoadAdMobRewardedAdOptions, type Location, type LocationCoords, type NetworkStatus, type OpenCameraOptions, type PermissionAccess, type PermissionName, type PermissionStatus, type Primitive, type SaveBase64DataParams, type ShowAdMobEvent, type ShowAdMobInterstitialAdEvent, type ShowAdMobInterstitialAdOptions, type ShowAdMobOptions, type ShowAdMobParams, type ShowAdMobRewardedAdEvent, type ShowAdMobRewardedAdOptions, type StartUpdateLocationOptions$1 as StartUpdateLocationOptions, type StartUpdateLocationSubscription, Storage, type SubmitGameCenterLeaderBoardScoreResponse, TossPay, type UpdateLocationEventEmitter, appLogin, appsInTossEvent, closeView, contactsViral, eventLog, fetchAlbumPhotos, fetchContacts, generateHapticFeedback, getClipboardText, getCurrentLocation, getDeviceId, getGameCenterGameProfile, getLocale, getNetworkStatus, getOperationalEnvironment, getPlatformOS, getSchemeUri, getTossAppVersion, getTossShareLink, isMinVersionSupported, onVisibilityChangedByTransparentServiceWeb, openCamera, openGameCenterLeaderboard, openURL, saveBase64Data, setClipboardText, setDeviceOrientation, setIosSwipeGestureEnabled, setScreenAwakeMode, setSecureScreen, share, startUpdateLocation, submitGameCenterLeaderBoardScore };
|