@javascriptcommon/react-native-google-mobile-ads 16.3.3
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/LICENSE +32 -0
- package/README.md +181 -0
- package/RNGoogleMobileAds.podspec +74 -0
- package/__tests__/banner.test.tsx +53 -0
- package/__tests__/consent.test.ts +33 -0
- package/__tests__/googleMobileAds.test.ts +108 -0
- package/__tests__/interstitial.test.ts +140 -0
- package/__tests__/nativeEventEmitter.test.ts +72 -0
- package/__tests__/requestOptions.test.tsx +82 -0
- package/__tests__/rewarded.test.tsx +4 -0
- package/__tests__/showOptions.test.tsx +4 -0
- package/android/.editorconfig +10 -0
- package/android/app-json.gradle +69 -0
- package/android/build.gradle +149 -0
- package/android/lint.xml +5 -0
- package/android/settings.gradle +1 -0
- package/android/src/main/AndroidManifest.xml +23 -0
- package/android/src/main/java/io/invertase/googlemobileads/OnNativeEvent.kt +23 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeAppModule.java +152 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsAppOpenModule.kt +92 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsBannerAdViewManager.java +303 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsCommon.java +277 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsConsentModule.java +293 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsEvent.java +76 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsFullScreenAdModule.kt +201 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsInterstitialModule.kt +92 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsMediaViewManager.java +79 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsModule.kt +178 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsNativeAdViewManager.java +164 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsNativeModule.kt +172 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt +113 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsRewardedInterstitialModule.kt +127 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsRewardedModule.kt +121 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/RCTConvert.java +111 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeAdView.java +128 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeApp.java +34 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeEvent.java +41 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeEventEmitter.java +150 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeInitProvider.java +77 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeJSON.java +107 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeMeta.java +92 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeModule.java +96 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativePreferences.java +86 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/SharedUtils.java +429 -0
- package/android/src/main/java/io/invertase/googlemobileads/common/TaskExecutorService.java +124 -0
- package/android/src/main/java/io/invertase/googlemobileads/interfaces/ContextProvider.java +30 -0
- package/android/src/main/java/io/invertase/googlemobileads/interfaces/NativeError.java +28 -0
- package/android/src/main/java/io/invertase/googlemobileads/interfaces/NativeEvent.java +26 -0
- package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsMediaViewManagerDelegate.java +32 -0
- package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsMediaViewManagerInterface.java +10 -0
- package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsNativeViewManagerDelegate.java +36 -0
- package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsNativeViewManagerInterface.java +10 -0
- package/android/src/oldarch/io/invertase/googlemobileads/NativeGoogleMobileAdsNativeModuleSpec.kt +18 -0
- package/app.plugin.js +1 -0
- package/babel.config.js +8 -0
- package/docs/ad-inspector.mdx +47 -0
- package/docs/common-reasons-for-ads-not-showing.mdx +111 -0
- package/docs/displaying-ads-hook.mdx +103 -0
- package/docs/displaying-ads.mdx +512 -0
- package/docs/european-user-consent.mdx +315 -0
- package/docs/img/logo_admob_192px.svg +19 -0
- package/docs/impression-level-ad-revenue.mdx +41 -0
- package/docs/index.mdx +508 -0
- package/docs/mediation.mdx +323 -0
- package/docs/migrating-to-v15.mdx +7 -0
- package/docs/migrating-to-v5.mdx +63 -0
- package/docs/migrating-to-v6.mdx +111 -0
- package/docs/native-ads.mdx +385 -0
- package/docs/testing.mdx +17 -0
- package/docs/video-ad_volume-control.mdx +49 -0
- package/docs.json +36 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAds-Bridging-Header.h +5 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsAppOpenModule.h +36 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsAppOpenModule.mm +104 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.h +44 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m +221 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.h +34 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm +282 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerViewManager.mm +87 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.h +72 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.mm +248 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsConsentModule.h +36 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsConsentModule.mm +356 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenAd.h +53 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenAd.mm +220 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.h +36 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.mm +80 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsInterstitialModule.h +36 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsInterstitialModule.mm +106 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsMediaView.h +52 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsMediaView.mm +155 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.h +32 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.mm +180 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeModule.h +35 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeModule.mm +321 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.h +51 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm +251 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedInterstitialModule.h +37 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedInterstitialModule.mm +106 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedModule.h +36 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedModule.mm +104 -0
- package/ios/RNGoogleMobileAds/common/RNAppModule.h +24 -0
- package/ios/RNGoogleMobileAds/common/RNAppModule.mm +95 -0
- package/ios/RNGoogleMobileAds/common/RNRCTEventEmitter.h +73 -0
- package/ios/RNGoogleMobileAds/common/RNRCTEventEmitter.mm +150 -0
- package/ios/RNGoogleMobileAds/common/RNSharedUtils.h +43 -0
- package/ios/RNGoogleMobileAds/common/RNSharedUtils.mm +34 -0
- package/ios/RNGoogleMobileAds.xcodeproj/project.pbxproj +377 -0
- package/ios/RNGoogleMobileAds.xcodeproj/xcshareddata/IDETemplateMacros.plist +24 -0
- package/ios_config.sh +192 -0
- package/jest.config.js +7 -0
- package/jest.setup.ts +92 -0
- package/lib/commonjs/AdEventType.js +72 -0
- package/lib/commonjs/AdEventType.js.map +1 -0
- package/lib/commonjs/AdsConsent.js +117 -0
- package/lib/commonjs/AdsConsent.js.map +1 -0
- package/lib/commonjs/AdsConsentPurposes.js +180 -0
- package/lib/commonjs/AdsConsentPurposes.js.map +1 -0
- package/lib/commonjs/AdsConsentSpecialFeatures.js +54 -0
- package/lib/commonjs/AdsConsentSpecialFeatures.js.map +1 -0
- package/lib/commonjs/BannerAdSize.js +75 -0
- package/lib/commonjs/BannerAdSize.js.map +1 -0
- package/lib/commonjs/GAMAdEventType.js +44 -0
- package/lib/commonjs/GAMAdEventType.js.map +1 -0
- package/lib/commonjs/MaxAdContentRating.js +42 -0
- package/lib/commonjs/MaxAdContentRating.js.map +1 -0
- package/lib/commonjs/MobileAds.js +63 -0
- package/lib/commonjs/MobileAds.js.map +1 -0
- package/lib/commonjs/NativeAdEventType.js +50 -0
- package/lib/commonjs/NativeAdEventType.js.map +1 -0
- package/lib/commonjs/RewardedAdEventType.js +66 -0
- package/lib/commonjs/RewardedAdEventType.js.map +1 -0
- package/lib/commonjs/TestIds.js +66 -0
- package/lib/commonjs/TestIds.js.map +1 -0
- package/lib/commonjs/ads/AppOpenAd.js +54 -0
- package/lib/commonjs/ads/AppOpenAd.js.map +1 -0
- package/lib/commonjs/ads/BannerAd.js +45 -0
- package/lib/commonjs/ads/BannerAd.js.map +1 -0
- package/lib/commonjs/ads/BaseAd.js +155 -0
- package/lib/commonjs/ads/BaseAd.js.map +1 -0
- package/lib/commonjs/ads/GAMBannerAd.js +49 -0
- package/lib/commonjs/ads/GAMBannerAd.js.map +1 -0
- package/lib/commonjs/ads/GAMInterstitialAd.js +42 -0
- package/lib/commonjs/ads/GAMInterstitialAd.js.map +1 -0
- package/lib/commonjs/ads/InterstitialAd.js +115 -0
- package/lib/commonjs/ads/InterstitialAd.js.map +1 -0
- package/lib/commonjs/ads/MobileAd.js +153 -0
- package/lib/commonjs/ads/MobileAd.js.map +1 -0
- package/lib/commonjs/ads/RewardedAd.js +128 -0
- package/lib/commonjs/ads/RewardedAd.js.map +1 -0
- package/lib/commonjs/ads/RewardedInterstitialAd.js +128 -0
- package/lib/commonjs/ads/RewardedInterstitialAd.js.map +1 -0
- package/lib/commonjs/ads/native-ad/NativeAd.js +123 -0
- package/lib/commonjs/ads/native-ad/NativeAd.js.map +1 -0
- package/lib/commonjs/ads/native-ad/NativeAdContext.js +26 -0
- package/lib/commonjs/ads/native-ad/NativeAdContext.js.map +1 -0
- package/lib/commonjs/ads/native-ad/NativeAdView.js +52 -0
- package/lib/commonjs/ads/native-ad/NativeAdView.js.map +1 -0
- package/lib/commonjs/ads/native-ad/NativeAsset.js +70 -0
- package/lib/commonjs/ads/native-ad/NativeAsset.js.map +1 -0
- package/lib/commonjs/ads/native-ad/NativeMediaView.js +61 -0
- package/lib/commonjs/ads/native-ad/NativeMediaView.js.map +1 -0
- package/lib/commonjs/common/constants.js +17 -0
- package/lib/commonjs/common/constants.js.map +1 -0
- package/lib/commonjs/common/debounce.js +18 -0
- package/lib/commonjs/common/debounce.js.map +1 -0
- package/lib/commonjs/common/index.js +47 -0
- package/lib/commonjs/common/index.js.map +1 -0
- package/lib/commonjs/common/ref.js +46 -0
- package/lib/commonjs/common/ref.js.map +1 -0
- package/lib/commonjs/common/validate.js +132 -0
- package/lib/commonjs/common/validate.js.map +1 -0
- package/lib/commonjs/declarations.d.js +2 -0
- package/lib/commonjs/declarations.d.js.map +1 -0
- package/lib/commonjs/hooks/useAppOpenAd.js +44 -0
- package/lib/commonjs/hooks/useAppOpenAd.js.map +1 -0
- package/lib/commonjs/hooks/useForeground.js +45 -0
- package/lib/commonjs/hooks/useForeground.js.map +1 -0
- package/lib/commonjs/hooks/useFullScreenAd.js +121 -0
- package/lib/commonjs/hooks/useFullScreenAd.js.map +1 -0
- package/lib/commonjs/hooks/useInterstitialAd.js +44 -0
- package/lib/commonjs/hooks/useInterstitialAd.js.map +1 -0
- package/lib/commonjs/hooks/useRewardedAd.js +44 -0
- package/lib/commonjs/hooks/useRewardedAd.js.map +1 -0
- package/lib/commonjs/hooks/useRewardedInterstitialAd.js +44 -0
- package/lib/commonjs/hooks/useRewardedInterstitialAd.js.map +1 -0
- package/lib/commonjs/index.js +337 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/internal/GoogleMobileAdsNativeEventEmitter.js +54 -0
- package/lib/commonjs/internal/GoogleMobileAdsNativeEventEmitter.js.map +1 -0
- package/lib/commonjs/internal/NativeError.js +53 -0
- package/lib/commonjs/internal/NativeError.js.map +1 -0
- package/lib/commonjs/internal/SharedEventEmitter.js +27 -0
- package/lib/commonjs/internal/SharedEventEmitter.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/specs/components/GoogleMobileAdsBannerViewNativeComponent.ts +62 -0
- package/lib/commonjs/specs/components/GoogleMobileAdsMediaViewNativeComponent.ts +30 -0
- package/lib/commonjs/specs/components/GoogleMobileAdsNativeViewNativeComponent.ts +45 -0
- package/lib/commonjs/specs/modules/NativeAppModule.js +24 -0
- package/lib/commonjs/specs/modules/NativeAppModule.js.map +1 -0
- package/lib/commonjs/specs/modules/NativeAppOpenModule.js +25 -0
- package/lib/commonjs/specs/modules/NativeAppOpenModule.js.map +1 -0
- package/lib/commonjs/specs/modules/NativeConsentModule.js +105 -0
- package/lib/commonjs/specs/modules/NativeConsentModule.js.map +1 -0
- package/lib/commonjs/specs/modules/NativeGoogleMobileAdsModule.js +25 -0
- package/lib/commonjs/specs/modules/NativeGoogleMobileAdsModule.js.map +1 -0
- package/lib/commonjs/specs/modules/NativeGoogleMobileAdsNativeModule.js +25 -0
- package/lib/commonjs/specs/modules/NativeGoogleMobileAdsNativeModule.js.map +1 -0
- package/lib/commonjs/specs/modules/NativeInterstitialModule.js +25 -0
- package/lib/commonjs/specs/modules/NativeInterstitialModule.js.map +1 -0
- package/lib/commonjs/specs/modules/NativeRewardedInterstitialModule.js +25 -0
- package/lib/commonjs/specs/modules/NativeRewardedInterstitialModule.js.map +1 -0
- package/lib/commonjs/specs/modules/NativeRewardedModule.js +25 -0
- package/lib/commonjs/specs/modules/NativeRewardedModule.js.map +1 -0
- package/lib/commonjs/types/AdEventListener.js +6 -0
- package/lib/commonjs/types/AdEventListener.js.map +1 -0
- package/lib/commonjs/types/AdEventsListener.js +6 -0
- package/lib/commonjs/types/AdEventsListener.js.map +1 -0
- package/lib/commonjs/types/AdShowOptions.js +2 -0
- package/lib/commonjs/types/AdShowOptions.js.map +1 -0
- package/lib/commonjs/types/AdStates.js +6 -0
- package/lib/commonjs/types/AdStates.js.map +1 -0
- package/lib/commonjs/types/AdapterStatus.js +21 -0
- package/lib/commonjs/types/AdapterStatus.js.map +1 -0
- package/lib/commonjs/types/AppEvent.js +2 -0
- package/lib/commonjs/types/AppEvent.js.map +1 -0
- package/lib/commonjs/types/BannerAdProps.js +6 -0
- package/lib/commonjs/types/BannerAdProps.js.map +1 -0
- package/lib/commonjs/types/MobileAd.interface.js +6 -0
- package/lib/commonjs/types/MobileAd.interface.js.map +1 -0
- package/lib/commonjs/types/MobileAdsModule.interface.js +6 -0
- package/lib/commonjs/types/MobileAdsModule.interface.js.map +1 -0
- package/lib/commonjs/types/NativeAdRequestOptions.js +37 -0
- package/lib/commonjs/types/NativeAdRequestOptions.js.map +1 -0
- package/lib/commonjs/types/PaidEventListener.js +6 -0
- package/lib/commonjs/types/PaidEventListener.js.map +1 -0
- package/lib/commonjs/types/RequestConfiguration.js +6 -0
- package/lib/commonjs/types/RequestConfiguration.js.map +1 -0
- package/lib/commonjs/types/RequestOptions.js +2 -0
- package/lib/commonjs/types/RequestOptions.js.map +1 -0
- package/lib/commonjs/types/RewardedAdReward.js +2 -0
- package/lib/commonjs/types/RewardedAdReward.js.map +1 -0
- package/lib/commonjs/types/index.js +138 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/validateAdRequestConfiguration.js +57 -0
- package/lib/commonjs/validateAdRequestConfiguration.js.map +1 -0
- package/lib/commonjs/validateAdRequestOptions.js +121 -0
- package/lib/commonjs/validateAdRequestOptions.js.map +1 -0
- package/lib/commonjs/validateAdShowOptions.js +41 -0
- package/lib/commonjs/validateAdShowOptions.js.map +1 -0
- package/lib/commonjs/validateNativeAdRequestOptions.js +51 -0
- package/lib/commonjs/validateNativeAdRequestOptions.js.map +1 -0
- package/lib/commonjs/version.js +9 -0
- package/lib/commonjs/version.js.map +1 -0
- package/lib/module/AdEventType.js +69 -0
- package/lib/module/AdEventType.js.map +1 -0
- package/lib/module/AdsConsent.js +113 -0
- package/lib/module/AdsConsent.js.map +1 -0
- package/lib/module/AdsConsentPurposes.js +177 -0
- package/lib/module/AdsConsentPurposes.js.map +1 -0
- package/lib/module/AdsConsentSpecialFeatures.js +51 -0
- package/lib/module/AdsConsentSpecialFeatures.js.map +1 -0
- package/lib/module/BannerAdSize.js +72 -0
- package/lib/module/BannerAdSize.js.map +1 -0
- package/lib/module/GAMAdEventType.js +41 -0
- package/lib/module/GAMAdEventType.js.map +1 -0
- package/lib/module/MaxAdContentRating.js +39 -0
- package/lib/module/MaxAdContentRating.js.map +1 -0
- package/lib/module/MobileAds.js +57 -0
- package/lib/module/MobileAds.js.map +1 -0
- package/lib/module/NativeAdEventType.js +46 -0
- package/lib/module/NativeAdEventType.js.map +1 -0
- package/lib/module/RewardedAdEventType.js +63 -0
- package/lib/module/RewardedAdEventType.js.map +1 -0
- package/lib/module/TestIds.js +62 -0
- package/lib/module/TestIds.js.map +1 -0
- package/lib/module/ads/AppOpenAd.js +48 -0
- package/lib/module/ads/AppOpenAd.js.map +1 -0
- package/lib/module/ads/BannerAd.js +39 -0
- package/lib/module/ads/BannerAd.js.map +1 -0
- package/lib/module/ads/BaseAd.js +149 -0
- package/lib/module/ads/BaseAd.js.map +1 -0
- package/lib/module/ads/GAMBannerAd.js +43 -0
- package/lib/module/ads/GAMBannerAd.js.map +1 -0
- package/lib/module/ads/GAMInterstitialAd.js +37 -0
- package/lib/module/ads/GAMInterstitialAd.js.map +1 -0
- package/lib/module/ads/InterstitialAd.js +110 -0
- package/lib/module/ads/InterstitialAd.js.map +1 -0
- package/lib/module/ads/MobileAd.js +148 -0
- package/lib/module/ads/MobileAd.js.map +1 -0
- package/lib/module/ads/RewardedAd.js +123 -0
- package/lib/module/ads/RewardedAd.js.map +1 -0
- package/lib/module/ads/RewardedInterstitialAd.js +123 -0
- package/lib/module/ads/RewardedInterstitialAd.js.map +1 -0
- package/lib/module/ads/native-ad/NativeAd.js +117 -0
- package/lib/module/ads/native-ad/NativeAd.js.map +1 -0
- package/lib/module/ads/native-ad/NativeAdContext.js +22 -0
- package/lib/module/ads/native-ad/NativeAdContext.js.map +1 -0
- package/lib/module/ads/native-ad/NativeAdView.js +45 -0
- package/lib/module/ads/native-ad/NativeAdView.js.map +1 -0
- package/lib/module/ads/native-ad/NativeAsset.js +65 -0
- package/lib/module/ads/native-ad/NativeAsset.js.map +1 -0
- package/lib/module/ads/native-ad/NativeMediaView.js +54 -0
- package/lib/module/ads/native-ad/NativeMediaView.js.map +1 -0
- package/lib/module/common/constants.js +13 -0
- package/lib/module/common/constants.js.map +1 -0
- package/lib/module/common/debounce.js +13 -0
- package/lib/module/common/debounce.js.map +1 -0
- package/lib/module/common/index.js +28 -0
- package/lib/module/common/index.js.map +1 -0
- package/lib/module/common/ref.js +41 -0
- package/lib/module/common/ref.js.map +1 -0
- package/lib/module/common/validate.js +119 -0
- package/lib/module/common/validate.js.map +1 -0
- package/lib/module/declarations.d.js +2 -0
- package/lib/module/declarations.d.js.map +1 -0
- package/lib/module/hooks/useAppOpenAd.js +40 -0
- package/lib/module/hooks/useAppOpenAd.js.map +1 -0
- package/lib/module/hooks/useForeground.js +42 -0
- package/lib/module/hooks/useForeground.js.map +1 -0
- package/lib/module/hooks/useFullScreenAd.js +117 -0
- package/lib/module/hooks/useFullScreenAd.js.map +1 -0
- package/lib/module/hooks/useInterstitialAd.js +40 -0
- package/lib/module/hooks/useInterstitialAd.js.map +1 -0
- package/lib/module/hooks/useRewardedAd.js +40 -0
- package/lib/module/hooks/useRewardedAd.js.map +1 -0
- package/lib/module/hooks/useRewardedInterstitialAd.js +40 -0
- package/lib/module/hooks/useRewardedInterstitialAd.js.map +1 -0
- package/lib/module/index.js +54 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/internal/GoogleMobileAdsNativeEventEmitter.js +49 -0
- package/lib/module/internal/GoogleMobileAdsNativeEventEmitter.js.map +1 -0
- package/lib/module/internal/NativeError.js +48 -0
- package/lib/module/internal/NativeError.js.map +1 -0
- package/lib/module/internal/SharedEventEmitter.js +22 -0
- package/lib/module/internal/SharedEventEmitter.js.map +1 -0
- package/lib/module/specs/components/GoogleMobileAdsBannerViewNativeComponent.ts +62 -0
- package/lib/module/specs/components/GoogleMobileAdsMediaViewNativeComponent.ts +30 -0
- package/lib/module/specs/components/GoogleMobileAdsNativeViewNativeComponent.ts +45 -0
- package/lib/module/specs/modules/NativeAppModule.js +21 -0
- package/lib/module/specs/modules/NativeAppModule.js.map +1 -0
- package/lib/module/specs/modules/NativeAppOpenModule.js +22 -0
- package/lib/module/specs/modules/NativeAppOpenModule.js.map +1 -0
- package/lib/module/specs/modules/NativeConsentModule.js +108 -0
- package/lib/module/specs/modules/NativeConsentModule.js.map +1 -0
- package/lib/module/specs/modules/NativeGoogleMobileAdsModule.js +22 -0
- package/lib/module/specs/modules/NativeGoogleMobileAdsModule.js.map +1 -0
- package/lib/module/specs/modules/NativeGoogleMobileAdsNativeModule.js +22 -0
- package/lib/module/specs/modules/NativeGoogleMobileAdsNativeModule.js.map +1 -0
- package/lib/module/specs/modules/NativeInterstitialModule.js +22 -0
- package/lib/module/specs/modules/NativeInterstitialModule.js.map +1 -0
- package/lib/module/specs/modules/NativeRewardedInterstitialModule.js +22 -0
- package/lib/module/specs/modules/NativeRewardedInterstitialModule.js.map +1 -0
- package/lib/module/specs/modules/NativeRewardedModule.js +22 -0
- package/lib/module/specs/modules/NativeRewardedModule.js.map +1 -0
- package/lib/module/types/AdEventListener.js +4 -0
- package/lib/module/types/AdEventListener.js.map +1 -0
- package/lib/module/types/AdEventsListener.js +4 -0
- package/lib/module/types/AdEventsListener.js.map +1 -0
- package/lib/module/types/AdShowOptions.js +2 -0
- package/lib/module/types/AdShowOptions.js.map +1 -0
- package/lib/module/types/AdStates.js +4 -0
- package/lib/module/types/AdStates.js.map +1 -0
- package/lib/module/types/AdapterStatus.js +18 -0
- package/lib/module/types/AdapterStatus.js.map +1 -0
- package/lib/module/types/AppEvent.js +2 -0
- package/lib/module/types/AppEvent.js.map +1 -0
- package/lib/module/types/BannerAdProps.js +4 -0
- package/lib/module/types/BannerAdProps.js.map +1 -0
- package/lib/module/types/MobileAd.interface.js +4 -0
- package/lib/module/types/MobileAd.interface.js.map +1 -0
- package/lib/module/types/MobileAdsModule.interface.js +4 -0
- package/lib/module/types/MobileAdsModule.interface.js.map +1 -0
- package/lib/module/types/NativeAdRequestOptions.js +34 -0
- package/lib/module/types/NativeAdRequestOptions.js.map +1 -0
- package/lib/module/types/PaidEventListener.js +4 -0
- package/lib/module/types/PaidEventListener.js.map +1 -0
- package/lib/module/types/RequestConfiguration.js +4 -0
- package/lib/module/types/RequestConfiguration.js.map +1 -0
- package/lib/module/types/RequestOptions.js +2 -0
- package/lib/module/types/RequestOptions.js.map +1 -0
- package/lib/module/types/RewardedAdReward.js +2 -0
- package/lib/module/types/RewardedAdReward.js.map +1 -0
- package/lib/module/types/index.js +32 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/validateAdRequestConfiguration.js +53 -0
- package/lib/module/validateAdRequestConfiguration.js.map +1 -0
- package/lib/module/validateAdRequestOptions.js +117 -0
- package/lib/module/validateAdRequestOptions.js.map +1 -0
- package/lib/module/validateAdShowOptions.js +37 -0
- package/lib/module/validateAdShowOptions.js.map +1 -0
- package/lib/module/validateNativeAdRequestOptions.js +47 -0
- package/lib/module/validateNativeAdRequestOptions.js.map +1 -0
- package/lib/module/version.js +5 -0
- package/lib/module/version.js.map +1 -0
- package/lib/typescript/AdEventType.d.ts +49 -0
- package/lib/typescript/AdEventType.d.ts.map +1 -0
- package/lib/typescript/AdsConsent.d.ts +3 -0
- package/lib/typescript/AdsConsent.d.ts.map +1 -0
- package/lib/typescript/AdsConsentPurposes.d.ts +149 -0
- package/lib/typescript/AdsConsentPurposes.d.ts.map +1 -0
- package/lib/typescript/AdsConsentSpecialFeatures.d.ts +23 -0
- package/lib/typescript/AdsConsentSpecialFeatures.d.ts.map +1 -0
- package/lib/typescript/BannerAdSize.d.ts +91 -0
- package/lib/typescript/BannerAdSize.d.ts.map +1 -0
- package/lib/typescript/GAMAdEventType.d.ts +21 -0
- package/lib/typescript/GAMAdEventType.d.ts.map +1 -0
- package/lib/typescript/MaxAdContentRating.d.ts +19 -0
- package/lib/typescript/MaxAdContentRating.d.ts.map +1 -0
- package/lib/typescript/MobileAds.d.ts +15 -0
- package/lib/typescript/MobileAds.d.ts.map +1 -0
- package/lib/typescript/NativeAdEventType.d.ts +43 -0
- package/lib/typescript/NativeAdEventType.d.ts.map +1 -0
- package/lib/typescript/RewardedAdEventType.d.ts +43 -0
- package/lib/typescript/RewardedAdEventType.d.ts.map +1 -0
- package/lib/typescript/TestIds.d.ts +19 -0
- package/lib/typescript/TestIds.d.ts.map +1 -0
- package/lib/typescript/ads/AppOpenAd.d.ts +12 -0
- package/lib/typescript/ads/AppOpenAd.d.ts.map +1 -0
- package/lib/typescript/ads/BannerAd.d.ts +8 -0
- package/lib/typescript/ads/BannerAd.d.ts.map +1 -0
- package/lib/typescript/ads/BaseAd.d.ts +4 -0
- package/lib/typescript/ads/BaseAd.d.ts.map +1 -0
- package/lib/typescript/ads/GAMBannerAd.d.ts +9 -0
- package/lib/typescript/ads/GAMBannerAd.d.ts.map +1 -0
- package/lib/typescript/ads/GAMInterstitialAd.d.ts +34 -0
- package/lib/typescript/ads/GAMInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/ads/InterstitialAd.d.ts +73 -0
- package/lib/typescript/ads/InterstitialAd.d.ts.map +1 -0
- package/lib/typescript/ads/MobileAd.d.ts +54 -0
- package/lib/typescript/ads/MobileAd.d.ts.map +1 -0
- package/lib/typescript/ads/RewardedAd.d.ts +83 -0
- package/lib/typescript/ads/RewardedAd.d.ts.map +1 -0
- package/lib/typescript/ads/RewardedInterstitialAd.d.ts +83 -0
- package/lib/typescript/ads/RewardedInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/ads/native-ad/NativeAd.d.ts +48 -0
- package/lib/typescript/ads/native-ad/NativeAd.d.ts.map +1 -0
- package/lib/typescript/ads/native-ad/NativeAdContext.d.ts +10 -0
- package/lib/typescript/ads/native-ad/NativeAdContext.d.ts.map +1 -0
- package/lib/typescript/ads/native-ad/NativeAdView.d.ts +8 -0
- package/lib/typescript/ads/native-ad/NativeAdView.d.ts.map +1 -0
- package/lib/typescript/ads/native-ad/NativeAsset.d.ts +18 -0
- package/lib/typescript/ads/native-ad/NativeAsset.d.ts.map +1 -0
- package/lib/typescript/ads/native-ad/NativeMediaView.d.ts +7 -0
- package/lib/typescript/ads/native-ad/NativeMediaView.d.ts.map +1 -0
- package/lib/typescript/common/constants.d.ts +7 -0
- package/lib/typescript/common/constants.d.ts.map +1 -0
- package/lib/typescript/common/debounce.d.ts +2 -0
- package/lib/typescript/common/debounce.d.ts.map +1 -0
- package/lib/typescript/common/index.d.ts +4 -0
- package/lib/typescript/common/index.d.ts.map +1 -0
- package/lib/typescript/common/ref.d.ts +13 -0
- package/lib/typescript/common/ref.d.ts.map +1 -0
- package/lib/typescript/common/validate.d.ts +62 -0
- package/lib/typescript/common/validate.d.ts.map +1 -0
- package/lib/typescript/hooks/useAppOpenAd.d.ts +10 -0
- package/lib/typescript/hooks/useAppOpenAd.d.ts.map +1 -0
- package/lib/typescript/hooks/useForeground.d.ts +7 -0
- package/lib/typescript/hooks/useForeground.d.ts.map +1 -0
- package/lib/typescript/hooks/useFullScreenAd.d.ts +7 -0
- package/lib/typescript/hooks/useFullScreenAd.d.ts.map +1 -0
- package/lib/typescript/hooks/useInterstitialAd.d.ts +10 -0
- package/lib/typescript/hooks/useInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/hooks/useRewardedAd.d.ts +10 -0
- package/lib/typescript/hooks/useRewardedAd.d.ts.map +1 -0
- package/lib/typescript/hooks/useRewardedInterstitialAd.d.ts +10 -0
- package/lib/typescript/hooks/useRewardedInterstitialAd.d.ts.map +1 -0
- package/lib/typescript/index.d.ts +32 -0
- package/lib/typescript/index.d.ts.map +1 -0
- package/lib/typescript/internal/GoogleMobileAdsNativeEventEmitter.d.ts +13 -0
- package/lib/typescript/internal/GoogleMobileAdsNativeEventEmitter.d.ts.map +1 -0
- package/lib/typescript/internal/NativeError.d.ts +27 -0
- package/lib/typescript/internal/NativeError.d.ts.map +1 -0
- package/lib/typescript/internal/SharedEventEmitter.d.ts +3 -0
- package/lib/typescript/internal/SharedEventEmitter.d.ts.map +1 -0
- package/lib/typescript/specs/components/GoogleMobileAdsBannerViewNativeComponent.d.ts +35 -0
- package/lib/typescript/specs/components/GoogleMobileAdsBannerViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/specs/components/GoogleMobileAdsMediaViewNativeComponent.d.ts +9 -0
- package/lib/typescript/specs/components/GoogleMobileAdsMediaViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/specs/components/GoogleMobileAdsNativeViewNativeComponent.d.ts +14 -0
- package/lib/typescript/specs/components/GoogleMobileAdsNativeViewNativeComponent.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeAppModule.d.ts +23 -0
- package/lib/typescript/specs/modules/NativeAppModule.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeAppOpenModule.d.ts +25 -0
- package/lib/typescript/specs/modules/NativeAppOpenModule.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeConsentModule.d.ts +498 -0
- package/lib/typescript/specs/modules/NativeConsentModule.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeGoogleMobileAdsModule.d.ts +14 -0
- package/lib/typescript/specs/modules/NativeGoogleMobileAdsModule.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeGoogleMobileAdsNativeModule.d.ts +42 -0
- package/lib/typescript/specs/modules/NativeGoogleMobileAdsNativeModule.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeInterstitialModule.d.ts +25 -0
- package/lib/typescript/specs/modules/NativeInterstitialModule.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeRewardedInterstitialModule.d.ts +25 -0
- package/lib/typescript/specs/modules/NativeRewardedInterstitialModule.d.ts.map +1 -0
- package/lib/typescript/specs/modules/NativeRewardedModule.d.ts +25 -0
- package/lib/typescript/specs/modules/NativeRewardedModule.d.ts.map +1 -0
- package/lib/typescript/types/AdEventListener.d.ts +8 -0
- package/lib/typescript/types/AdEventListener.d.ts.map +1 -0
- package/lib/typescript/types/AdEventsListener.d.ts +9 -0
- package/lib/typescript/types/AdEventsListener.d.ts.map +1 -0
- package/lib/typescript/types/AdShowOptions.d.ts +13 -0
- package/lib/typescript/types/AdShowOptions.d.ts.map +1 -0
- package/lib/typescript/types/AdStates.d.ts +91 -0
- package/lib/typescript/types/AdStates.d.ts.map +1 -0
- package/lib/typescript/types/AdapterStatus.d.ts +19 -0
- package/lib/typescript/types/AdapterStatus.d.ts.map +1 -0
- package/lib/typescript/types/AppEvent.d.ts +14 -0
- package/lib/typescript/types/AppEvent.d.ts.map +1 -0
- package/lib/typescript/types/BannerAdProps.d.ts +175 -0
- package/lib/typescript/types/BannerAdProps.d.ts.map +1 -0
- package/lib/typescript/types/MobileAd.interface.d.ts +90 -0
- package/lib/typescript/types/MobileAd.interface.d.ts.map +1 -0
- package/lib/typescript/types/MobileAdsModule.interface.d.ts +75 -0
- package/lib/typescript/types/MobileAdsModule.interface.d.ts.map +1 -0
- package/lib/typescript/types/NativeAdRequestOptions.d.ts +36 -0
- package/lib/typescript/types/NativeAdRequestOptions.d.ts.map +1 -0
- package/lib/typescript/types/PaidEventListener.d.ts +8 -0
- package/lib/typescript/types/PaidEventListener.d.ts.map +1 -0
- package/lib/typescript/types/RequestConfiguration.d.ts +37 -0
- package/lib/typescript/types/RequestConfiguration.d.ts.map +1 -0
- package/lib/typescript/types/RequestOptions.d.ts +133 -0
- package/lib/typescript/types/RequestOptions.d.ts.map +1 -0
- package/lib/typescript/types/RewardedAdReward.d.ts +14 -0
- package/lib/typescript/types/RewardedAdReward.d.ts.map +1 -0
- package/lib/typescript/types/index.d.ts +13 -0
- package/lib/typescript/types/index.d.ts.map +1 -0
- package/lib/typescript/validateAdRequestConfiguration.d.ts +3 -0
- package/lib/typescript/validateAdRequestConfiguration.d.ts.map +1 -0
- package/lib/typescript/validateAdRequestOptions.d.ts +3 -0
- package/lib/typescript/validateAdRequestOptions.d.ts.map +1 -0
- package/lib/typescript/validateAdShowOptions.d.ts +3 -0
- package/lib/typescript/validateAdShowOptions.d.ts.map +1 -0
- package/lib/typescript/validateNativeAdRequestOptions.d.ts +3 -0
- package/lib/typescript/validateNativeAdRequestOptions.d.ts.map +1 -0
- package/lib/typescript/version.d.ts +2 -0
- package/lib/typescript/version.d.ts.map +1 -0
- package/package.json +176 -0
- package/plugin/__tests__/__snapshots__/plugin.test.ts.snap +739 -0
- package/plugin/__tests__/fixtures/app.config.js +24 -0
- package/plugin/__tests__/fixtures/app.config.ts +24 -0
- package/plugin/__tests__/fixtures/app.json +24 -0
- package/plugin/__tests__/fixtures/package.json +19 -0
- package/plugin/__tests__/fixtures/without-params/app.config.js +11 -0
- package/plugin/__tests__/fixtures/without-params/app.config.ts +11 -0
- package/plugin/__tests__/fixtures/without-params/app.json +11 -0
- package/plugin/__tests__/plugin.test.ts +115 -0
- package/plugin/build/index.d.ts +12 -0
- package/plugin/build/index.js +109 -0
- package/plugin/jest.config.js +1 -0
- package/plugin/src/index.ts +205 -0
- package/plugin/tsconfig.json +9 -0
- package/plugin/tsconfig.tsbuildinfo +1 -0
- package/react-native.config.js +19 -0
- package/src/AdEventType.ts +70 -0
- package/src/AdsConsent.ts +170 -0
- package/src/AdsConsentPurposes.ts +182 -0
- package/src/AdsConsentSpecialFeatures.ts +48 -0
- package/src/BannerAdSize.ts +78 -0
- package/src/GAMAdEventType.ts +37 -0
- package/src/MaxAdContentRating.ts +38 -0
- package/src/MobileAds.ts +77 -0
- package/src/NativeAdEventType.ts +51 -0
- package/src/RewardedAdEventType.ts +60 -0
- package/src/TestIds.ts +60 -0
- package/src/ads/AppOpenAd.ts +62 -0
- package/src/ads/BannerAd.tsx +37 -0
- package/src/ads/BaseAd.tsx +185 -0
- package/src/ads/GAMBannerAd.tsx +43 -0
- package/src/ads/GAMInterstitialAd.ts +45 -0
- package/src/ads/InterstitialAd.ts +122 -0
- package/src/ads/MobileAd.ts +227 -0
- package/src/ads/RewardedAd.ts +142 -0
- package/src/ads/RewardedInterstitialAd.ts +144 -0
- package/src/ads/native-ad/NativeAd.ts +159 -0
- package/src/ads/native-ad/NativeAdContext.ts +26 -0
- package/src/ads/native-ad/NativeAdView.tsx +43 -0
- package/src/ads/native-ad/NativeAsset.tsx +66 -0
- package/src/ads/native-ad/NativeMediaView.tsx +44 -0
- package/src/common/constants.ts +9 -0
- package/src/common/debounce.ts +15 -0
- package/src/common/index.ts +30 -0
- package/src/common/ref.ts +46 -0
- package/src/common/validate.ts +116 -0
- package/src/declarations.d.ts +3 -0
- package/src/hooks/useAppOpenAd.ts +46 -0
- package/src/hooks/useForeground.ts +41 -0
- package/src/hooks/useFullScreenAd.ts +112 -0
- package/src/hooks/useInterstitialAd.ts +46 -0
- package/src/hooks/useRewardedAd.ts +46 -0
- package/src/hooks/useRewardedInterstitialAd.ts +47 -0
- package/src/index.ts +60 -0
- package/src/internal/GoogleMobileAdsNativeEventEmitter.ts +58 -0
- package/src/internal/NativeError.ts +56 -0
- package/src/internal/SharedEventEmitter.ts +20 -0
- package/src/specs/components/GoogleMobileAdsBannerViewNativeComponent.ts +62 -0
- package/src/specs/components/GoogleMobileAdsMediaViewNativeComponent.ts +30 -0
- package/src/specs/components/GoogleMobileAdsNativeViewNativeComponent.ts +45 -0
- package/src/specs/modules/NativeAppModule.ts +57 -0
- package/src/specs/modules/NativeAppOpenModule.ts +26 -0
- package/src/specs/modules/NativeConsentModule.ts +532 -0
- package/src/specs/modules/NativeGoogleMobileAdsModule.ts +33 -0
- package/src/specs/modules/NativeGoogleMobileAdsNativeModule.ts +70 -0
- package/src/specs/modules/NativeInterstitialModule.ts +26 -0
- package/src/specs/modules/NativeRewardedInterstitialModule.ts +32 -0
- package/src/specs/modules/NativeRewardedModule.ts +26 -0
- package/src/types/AdEventListener.ts +34 -0
- package/src/types/AdEventsListener.ts +24 -0
- package/src/types/AdShowOptions.ts +12 -0
- package/src/types/AdStates.ts +92 -0
- package/src/types/AdapterStatus.ts +20 -0
- package/src/types/AppEvent.ts +14 -0
- package/src/types/BannerAdProps.ts +184 -0
- package/src/types/MobileAd.interface.ts +113 -0
- package/src/types/MobileAdsModule.interface.ts +80 -0
- package/src/types/NativeAdRequestOptions.ts +55 -0
- package/src/types/PaidEventListener.ts +9 -0
- package/src/types/RequestConfiguration.ts +40 -0
- package/src/types/RequestOptions.ts +137 -0
- package/src/types/RewardedAdReward.ts +14 -0
- package/src/types/index.ts +29 -0
- package/src/validateAdRequestConfiguration.ts +66 -0
- package/src/validateAdRequestOptions.ts +154 -0
- package/src/validateAdShowOptions.ts +41 -0
- package/src/validateNativeAdRequestOptions.ts +50 -0
- package/src/version.ts +2 -0
|
@@ -0,0 +1,248 @@
|
|
|
1
|
+
//
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this library except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
#if !TARGET_OS_MACCATALYST
|
|
20
|
+
|
|
21
|
+
#import "RNGoogleMobileAdsCommon.h"
|
|
22
|
+
#import "common/RNRCTEventEmitter.h"
|
|
23
|
+
|
|
24
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_APP_OPEN = @"google_mobile_ads_app_open_event";
|
|
25
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_INTERSTITIAL = @"google_mobile_ads_interstitial_event";
|
|
26
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_REWARDED = @"google_mobile_ads_rewarded_event";
|
|
27
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_REWARDED_INTERSTITIAL =
|
|
28
|
+
@"google_mobile_ads_rewarded_interstitial_event";
|
|
29
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_LOADED = @"loaded";
|
|
30
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_ERROR = @"error";
|
|
31
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_OPENED = @"opened";
|
|
32
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_CLICKED = @"clicked";
|
|
33
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_CLOSED = @"closed";
|
|
34
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_APP_EVENT = @"app_event";
|
|
35
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_REWARDED_LOADED = @"rewarded_loaded";
|
|
36
|
+
NSString *const GOOGLE_MOBILE_ADS_EVENT_REWARDED_EARNED_REWARD = @"rewarded_earned_reward";
|
|
37
|
+
|
|
38
|
+
@implementation RNGADInterstitial : GADInterstitialAd
|
|
39
|
+
- (void)setRequestId:(NSNumber *)requestId {
|
|
40
|
+
_requestId = requestId;
|
|
41
|
+
}
|
|
42
|
+
@end
|
|
43
|
+
|
|
44
|
+
@implementation RNGADRewarded : GADRewardedAd
|
|
45
|
+
- (void)setRequestId:(NSNumber *)requestId {
|
|
46
|
+
_requestId = requestId;
|
|
47
|
+
}
|
|
48
|
+
@end
|
|
49
|
+
|
|
50
|
+
@implementation RNGoogleMobileAdsCommon
|
|
51
|
+
|
|
52
|
+
+ (GAMRequest *)buildAdRequest:(NSDictionary *)adRequestOptions {
|
|
53
|
+
GAMRequest *request = [GAMRequest request];
|
|
54
|
+
NSMutableDictionary *extras = [@{} mutableCopy];
|
|
55
|
+
|
|
56
|
+
if (adRequestOptions[@"requestNonPersonalizedAdsOnly"] &&
|
|
57
|
+
[adRequestOptions[@"requestNonPersonalizedAdsOnly"] boolValue]) {
|
|
58
|
+
extras[@"npa"] = @"1";
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
if (adRequestOptions[@"networkExtras"]) {
|
|
62
|
+
for (NSString *key in adRequestOptions[@"networkExtras"]) {
|
|
63
|
+
NSString *value = adRequestOptions[@"networkExtras"][key];
|
|
64
|
+
extras[key] = value;
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
if (adRequestOptions[@"publisherProvidedSignals"]) {
|
|
69
|
+
NSDictionary *pps = adRequestOptions[@"publisherProvidedSignals"];
|
|
70
|
+
for (NSString *key in pps) {
|
|
71
|
+
extras[key] = pps[key];
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
GADExtras *networkExtras = [[GADExtras alloc] init];
|
|
76
|
+
networkExtras.additionalParameters = extras;
|
|
77
|
+
[request registerAdNetworkExtras:networkExtras];
|
|
78
|
+
|
|
79
|
+
if (adRequestOptions[@"keywords"]) {
|
|
80
|
+
request.keywords = adRequestOptions[@"keywords"];
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (adRequestOptions[@"contentUrl"]) {
|
|
84
|
+
request.contentURL = adRequestOptions[@"contentUrl"];
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (adRequestOptions[@"requestAgent"]) {
|
|
88
|
+
request.requestAgent = adRequestOptions[@"requestAgent"];
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
if (adRequestOptions[@"customTargeting"]) {
|
|
92
|
+
request.customTargeting = adRequestOptions[@"customTargeting"];
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
if (adRequestOptions[@"publisherProvidedId"]) {
|
|
96
|
+
request.publisherProvidedID = adRequestOptions[@"publisherProvidedId"];
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
return request;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
+ (NSDictionary *)getCodeAndMessageFromAdError:(NSError *)error {
|
|
103
|
+
NSString *code = @"unknown";
|
|
104
|
+
NSString *message = [error localizedDescription];
|
|
105
|
+
|
|
106
|
+
if (error.code == GADErrorInvalidRequest) {
|
|
107
|
+
code = @"invalid-request";
|
|
108
|
+
} else if (error.code == GADErrorNoFill) {
|
|
109
|
+
code = @"no-fill";
|
|
110
|
+
} else if (error.code == GADErrorNetworkError) {
|
|
111
|
+
code = @"network-error";
|
|
112
|
+
} else if (error.code == GADErrorServerError) {
|
|
113
|
+
code = @"server-error";
|
|
114
|
+
} else if (error.code == GADErrorTimeout) {
|
|
115
|
+
code = @"timeout";
|
|
116
|
+
} else if (error.code == GADErrorMediationDataError) {
|
|
117
|
+
code = @"mediation-data-error";
|
|
118
|
+
} else if (error.code == GADErrorMediationAdapterError) {
|
|
119
|
+
code = @"mediation-adapter-error";
|
|
120
|
+
} else if (error.code == GADErrorMediationInvalidAdSize) {
|
|
121
|
+
code = @"mediation-invalid-ad-size";
|
|
122
|
+
} else if (error.code == GADErrorInternalError) {
|
|
123
|
+
code = @"internal-error";
|
|
124
|
+
} else if (error.code == GADErrorInvalidArgument) {
|
|
125
|
+
code = @"invalid-argument";
|
|
126
|
+
} else if (error.code == GADErrorReceivedInvalidAdString) {
|
|
127
|
+
code = @"received-invalid-ad-string";
|
|
128
|
+
} else if (error.code == GADErrorAdAlreadyUsed) {
|
|
129
|
+
code = @"ad-already-used";
|
|
130
|
+
} else if (error.code == GADErrorApplicationIdentifierMissing) {
|
|
131
|
+
code = @"application-identifier-missing";
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
return @{
|
|
135
|
+
@"code" : code,
|
|
136
|
+
@"message" : message,
|
|
137
|
+
};
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
+ (void)sendAdEvent:(NSString *)event
|
|
141
|
+
requestId:(NSNumber *)requestId
|
|
142
|
+
type:(NSString *)type
|
|
143
|
+
adUnitId:(NSString *)adUnitId
|
|
144
|
+
error:(nullable NSDictionary *)error
|
|
145
|
+
data:(nullable NSDictionary *)data {
|
|
146
|
+
NSMutableDictionary *body = [@{
|
|
147
|
+
@"type" : type,
|
|
148
|
+
} mutableCopy];
|
|
149
|
+
|
|
150
|
+
if (error != nil) {
|
|
151
|
+
body[@"error"] = error;
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
if (data != nil) {
|
|
155
|
+
body[@"data"] = data;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
NSMutableDictionary *payload = [@{
|
|
159
|
+
@"eventName" : type,
|
|
160
|
+
@"requestId" : requestId,
|
|
161
|
+
@"adUnitId" : adUnitId,
|
|
162
|
+
@"body" : body,
|
|
163
|
+
} mutableCopy];
|
|
164
|
+
|
|
165
|
+
[[RNRCTEventEmitter shared] sendEventWithName:event body:payload];
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
+ (GADAdSize)stringToAdSize:(NSString *)value
|
|
169
|
+
withMaxHeight:(CGFloat)maxHeight
|
|
170
|
+
andWidth:(CGFloat)adWidth {
|
|
171
|
+
NSError *error = nil;
|
|
172
|
+
NSRegularExpression *regex =
|
|
173
|
+
[NSRegularExpression regularExpressionWithPattern:@"([0-9]+)x([0-9]+)"
|
|
174
|
+
options:0
|
|
175
|
+
error:&error];
|
|
176
|
+
NSArray *matches = [regex matchesInString:value options:0 range:NSMakeRange(0, [value length])];
|
|
177
|
+
|
|
178
|
+
for (NSTextCheckingResult *match in matches) {
|
|
179
|
+
NSString *matchText = [value substringWithRange:[match range]];
|
|
180
|
+
if (matchText) {
|
|
181
|
+
NSArray *values = [matchText componentsSeparatedByString:@"x"];
|
|
182
|
+
CGFloat width = (CGFloat)[values[0] intValue];
|
|
183
|
+
CGFloat height = (CGFloat)[values[1] intValue];
|
|
184
|
+
return GADAdSizeFromCGSize(CGSizeMake(width, height));
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
value = [value uppercaseString];
|
|
189
|
+
|
|
190
|
+
if ([value isEqualToString:@"BANNER"]) {
|
|
191
|
+
return GADAdSizeBanner;
|
|
192
|
+
} else if ([value isEqualToString:@"FLUID"]) {
|
|
193
|
+
return GADAdSizeFluid;
|
|
194
|
+
} else if ([value isEqualToString:@"WIDE_SKYSCRAPER"]) {
|
|
195
|
+
return GADAdSizeSkyscraper;
|
|
196
|
+
} else if ([value isEqualToString:@"LARGE_BANNER"]) {
|
|
197
|
+
return GADAdSizeLargeBanner;
|
|
198
|
+
} else if ([value isEqualToString:@"MEDIUM_RECTANGLE"]) {
|
|
199
|
+
return GADAdSizeMediumRectangle;
|
|
200
|
+
} else if ([value isEqualToString:@"FULL_BANNER"]) {
|
|
201
|
+
return GADAdSizeFullBanner;
|
|
202
|
+
} else if ([value isEqualToString:@"LEADERBOARD"]) {
|
|
203
|
+
return GADAdSizeLeaderboard;
|
|
204
|
+
} else if ([value isEqualToString:@"ANCHORED_ADAPTIVE_BANNER"] ||
|
|
205
|
+
[value isEqualToString:@"LARGE_ANCHORED_ADAPTIVE_BANNER"] ||
|
|
206
|
+
[value isEqualToString:@"INLINE_ADAPTIVE_BANNER"]) {
|
|
207
|
+
CGRect frame = [[UIScreen mainScreen] bounds];
|
|
208
|
+
if (@available(iOS 11.0, *)) {
|
|
209
|
+
frame =
|
|
210
|
+
UIEdgeInsetsInsetRect(frame, [UIApplication sharedApplication].keyWindow.safeAreaInsets);
|
|
211
|
+
}
|
|
212
|
+
CGFloat viewWidth = adWidth > 0 ? MIN(frame.size.width, adWidth) : frame.size.width;
|
|
213
|
+
if ([value isEqualToString:@"INLINE_ADAPTIVE_BANNER"]) {
|
|
214
|
+
if (maxHeight > 0) {
|
|
215
|
+
return GADInlineAdaptiveBannerAdSizeWithWidthAndMaxHeight(viewWidth, MAX(maxHeight, 32.0));
|
|
216
|
+
}
|
|
217
|
+
return GADCurrentOrientationInlineAdaptiveBannerAdSizeWithWidth(viewWidth);
|
|
218
|
+
}
|
|
219
|
+
if ([value isEqualToString:@"LARGE_ANCHORED_ADAPTIVE_BANNER"]) {
|
|
220
|
+
return GADLargeAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);
|
|
221
|
+
}
|
|
222
|
+
return GADCurrentOrientationAnchoredAdaptiveBannerAdSizeWithWidth(viewWidth);
|
|
223
|
+
} else {
|
|
224
|
+
return GADAdSizeBanner;
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
+ (BOOL)isAdManagerUnit:(NSString *)unitId {
|
|
229
|
+
if (unitId == nil) {
|
|
230
|
+
return NO;
|
|
231
|
+
}
|
|
232
|
+
return [unitId hasPrefix:@"/"];
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
+ (UIViewController *)currentViewController {
|
|
236
|
+
UIViewController *controller = [[[UIApplication sharedApplication] keyWindow] rootViewController];
|
|
237
|
+
UIViewController *presentedController = controller.presentedViewController;
|
|
238
|
+
|
|
239
|
+
while (presentedController && ![presentedController isBeingDismissed]) {
|
|
240
|
+
controller = presentedController;
|
|
241
|
+
presentedController = controller.presentedViewController;
|
|
242
|
+
}
|
|
243
|
+
return controller;
|
|
244
|
+
}
|
|
245
|
+
|
|
246
|
+
@end
|
|
247
|
+
|
|
248
|
+
#endif
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#if !TARGET_OS_MACCATALYST
|
|
19
|
+
|
|
20
|
+
#import <Foundation/Foundation.h>
|
|
21
|
+
|
|
22
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
23
|
+
|
|
24
|
+
#import <RNGoogleMobileAdsSpec/RNGoogleMobileAdsSpec.h>
|
|
25
|
+
@interface RNGoogleMobileAdsConsentModule : NSObject <NativeConsentModuleSpec>
|
|
26
|
+
|
|
27
|
+
#else
|
|
28
|
+
|
|
29
|
+
#import <React/RCTBridgeModule.h>
|
|
30
|
+
@interface RNGoogleMobileAdsConsentModule : NSObject <RCTBridgeModule>
|
|
31
|
+
|
|
32
|
+
#endif
|
|
33
|
+
|
|
34
|
+
@end
|
|
35
|
+
|
|
36
|
+
#endif
|
|
@@ -0,0 +1,356 @@
|
|
|
1
|
+
//
|
|
2
|
+
/**
|
|
3
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
4
|
+
*
|
|
5
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
6
|
+
* you may not use this library except in compliance with the License.
|
|
7
|
+
* You may obtain a copy of the License at
|
|
8
|
+
*
|
|
9
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
10
|
+
*
|
|
11
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
12
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
13
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
14
|
+
* See the License for the specific language governing permissions and
|
|
15
|
+
* limitations under the License.
|
|
16
|
+
*
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
#import <React/RCTUtils.h>
|
|
20
|
+
|
|
21
|
+
#import <React/RCTConvert.h>
|
|
22
|
+
#if !TARGET_OS_MACCATALYST
|
|
23
|
+
#include <UserMessagingPlatform/UserMessagingPlatform.h>
|
|
24
|
+
#endif
|
|
25
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
26
|
+
#import "RNGoogleMobileAdsSpec.h"
|
|
27
|
+
#endif
|
|
28
|
+
#import "RNGoogleMobileAdsConsentModule.h"
|
|
29
|
+
#import "common/RNSharedUtils.h"
|
|
30
|
+
|
|
31
|
+
@implementation RNGoogleMobileAdsConsentModule
|
|
32
|
+
#pragma mark -
|
|
33
|
+
#pragma mark Module Setup
|
|
34
|
+
|
|
35
|
+
RCT_EXPORT_MODULE();
|
|
36
|
+
|
|
37
|
+
- (dispatch_queue_t)methodQueue {
|
|
38
|
+
return dispatch_get_main_queue();
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
#pragma mark -
|
|
42
|
+
#pragma mark Google Mobile Ads Methods
|
|
43
|
+
|
|
44
|
+
#if !TARGET_OS_MACCATALYST
|
|
45
|
+
- (NSString *)getConsentStatusString:(UMPConsentStatus)consentStatus {
|
|
46
|
+
switch (consentStatus) {
|
|
47
|
+
case UMPConsentStatusRequired:
|
|
48
|
+
return @"REQUIRED";
|
|
49
|
+
case UMPConsentStatusNotRequired:
|
|
50
|
+
return @"NOT_REQUIRED";
|
|
51
|
+
case UMPConsentStatusObtained:
|
|
52
|
+
return @"OBTAINED";
|
|
53
|
+
case UMPConsentStatusUnknown:
|
|
54
|
+
default:
|
|
55
|
+
return @"UNKNOWN";
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
#endif
|
|
59
|
+
|
|
60
|
+
#if !TARGET_OS_MACCATALYST
|
|
61
|
+
- (NSString *)getPrivacyOptionsRequirementStatusString:
|
|
62
|
+
(UMPPrivacyOptionsRequirementStatus)privacyOptionsRequirementStatus {
|
|
63
|
+
switch (privacyOptionsRequirementStatus) {
|
|
64
|
+
case UMPPrivacyOptionsRequirementStatusRequired:
|
|
65
|
+
return @"REQUIRED";
|
|
66
|
+
case UMPPrivacyOptionsRequirementStatusNotRequired:
|
|
67
|
+
return @"NOT_REQUIRED";
|
|
68
|
+
case UMPPrivacyOptionsRequirementStatusUnknown:
|
|
69
|
+
default:
|
|
70
|
+
return @"UNKNOWN";
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
#endif
|
|
74
|
+
|
|
75
|
+
#if !TARGET_OS_MACCATALYST
|
|
76
|
+
- (NSDictionary *)getConsentInformation {
|
|
77
|
+
return @{
|
|
78
|
+
@"status" : [self getConsentStatusString:UMPConsentInformation.sharedInstance.consentStatus],
|
|
79
|
+
@"canRequestAds" : @(UMPConsentInformation.sharedInstance.canRequestAds),
|
|
80
|
+
@"privacyOptionsRequirementStatus" :
|
|
81
|
+
[self getPrivacyOptionsRequirementStatusString:UMPConsentInformation.sharedInstance
|
|
82
|
+
.privacyOptionsRequirementStatus],
|
|
83
|
+
@"isConsentFormAvailable" :
|
|
84
|
+
@(UMPConsentInformation.sharedInstance.formStatus == UMPFormStatusAvailable)
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
#endif
|
|
88
|
+
|
|
89
|
+
RCT_EXPORT_METHOD(requestInfoUpdate
|
|
90
|
+
: (NSDictionary *)options
|
|
91
|
+
: (RCTPromiseResolveBlock)resolve
|
|
92
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
93
|
+
#if !TARGET_OS_MACCATALYST
|
|
94
|
+
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
|
|
95
|
+
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
|
|
96
|
+
|
|
97
|
+
debugSettings.geography =
|
|
98
|
+
(UMPDebugGeography)([options[@"debugGeography"] integerValue] ?: UMPDebugGeographyDisabled);
|
|
99
|
+
debugSettings.testDeviceIdentifiers =
|
|
100
|
+
[options valueForKeyPath:@"testDeviceIdentifiers"] ?: [[NSMutableArray alloc] init];
|
|
101
|
+
|
|
102
|
+
parameters.debugSettings = debugSettings;
|
|
103
|
+
parameters.tagForUnderAgeOfConsent = [options[@"tagForUnderAgeOfConsent"] boolValue] ?: FALSE;
|
|
104
|
+
|
|
105
|
+
[UMPConsentInformation.sharedInstance
|
|
106
|
+
requestConsentInfoUpdateWithParameters:parameters
|
|
107
|
+
completionHandler:^(NSError *_Nullable error) {
|
|
108
|
+
if (error) {
|
|
109
|
+
[RNSharedUtils
|
|
110
|
+
rejectPromiseWithUserInfo:reject
|
|
111
|
+
userInfo:[@{
|
|
112
|
+
@"code" : @"consent-update-failed",
|
|
113
|
+
@"message" : error.localizedDescription,
|
|
114
|
+
} mutableCopy]];
|
|
115
|
+
} else {
|
|
116
|
+
resolve([self getConsentInformation]);
|
|
117
|
+
}
|
|
118
|
+
}];
|
|
119
|
+
#endif
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
RCT_EXPORT_METHOD(showForm : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject) {
|
|
123
|
+
[self showForm:resolve reject:reject];
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
RCT_EXPORT_METHOD(showPrivacyOptionsForm
|
|
127
|
+
: (RCTPromiseResolveBlock)resolve
|
|
128
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
129
|
+
[self showPrivacyOptionsForm:resolve reject:reject];
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
RCT_EXPORT_METHOD(loadAndShowConsentFormIfRequired
|
|
133
|
+
: (RCTPromiseResolveBlock)resolve
|
|
134
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
135
|
+
[self loadAndShowConsentFormIfRequired:resolve reject:reject];
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
RCT_EXPORT_METHOD(reset) {
|
|
139
|
+
#if !TARGET_OS_MACCATALYST
|
|
140
|
+
[UMPConsentInformation.sharedInstance reset];
|
|
141
|
+
#endif
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
RCT_EXPORT_METHOD(getConsentInfo
|
|
145
|
+
: (RCTPromiseResolveBlock)resolve
|
|
146
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
147
|
+
[self getConsentInfo:resolve reject:reject];
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
RCT_EXPORT_METHOD(getTCString : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject) {
|
|
151
|
+
[self getTCString:resolve reject:reject];
|
|
152
|
+
}
|
|
153
|
+
|
|
154
|
+
RCT_EXPORT_METHOD(getGdprApplies
|
|
155
|
+
: (RCTPromiseResolveBlock)resolve
|
|
156
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
157
|
+
[self getGdprApplies:resolve reject:reject];
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
RCT_EXPORT_METHOD(getPurposeConsents
|
|
161
|
+
: (RCTPromiseResolveBlock)resolve
|
|
162
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
163
|
+
[self getPurposeConsents:resolve reject:reject];
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
RCT_EXPORT_METHOD(getPurposeLegitimateInterests
|
|
167
|
+
: (RCTPromiseResolveBlock)resolve
|
|
168
|
+
: (RCTPromiseRejectBlock)reject) {
|
|
169
|
+
[self getPurposeLegitimateInterests:resolve reject:reject];
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
173
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
174
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params {
|
|
175
|
+
return std::make_shared<facebook::react::NativeConsentModuleSpecJSI>(params);
|
|
176
|
+
}
|
|
177
|
+
#endif
|
|
178
|
+
|
|
179
|
+
#ifdef RCT_NEW_ARCH_ENABLED
|
|
180
|
+
- (void)requestInfoUpdate:(JS::NativeConsentModule::AdsConsentInfoOptions &)options
|
|
181
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
182
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
183
|
+
#if !TARGET_OS_MACCATALYST
|
|
184
|
+
UMPRequestParameters *parameters = [[UMPRequestParameters alloc] init];
|
|
185
|
+
UMPDebugSettings *debugSettings = [[UMPDebugSettings alloc] init];
|
|
186
|
+
|
|
187
|
+
debugSettings.geography =
|
|
188
|
+
static_cast<UMPDebugGeography>(options.debugGeography().value_or(UMPDebugGeographyDisabled));
|
|
189
|
+
debugSettings.testDeviceIdentifiers = options.testDeviceIdentifiers().has_value()
|
|
190
|
+
? ^{
|
|
191
|
+
NSMutableArray *array = [[NSMutableArray alloc] init];
|
|
192
|
+
FB::LazyVector<NSString *, id> identifiers = options.testDeviceIdentifiers().value();
|
|
193
|
+
for (int i = 0; i < identifiers.size(); i++) {
|
|
194
|
+
[array addObject:identifiers[i]]; // Direct access by index
|
|
195
|
+
}
|
|
196
|
+
return array;
|
|
197
|
+
}()
|
|
198
|
+
: [[NSMutableArray alloc] init];
|
|
199
|
+
|
|
200
|
+
parameters.debugSettings = debugSettings;
|
|
201
|
+
parameters.tagForUnderAgeOfConsent = options.tagForUnderAgeOfConsent().value_or(FALSE);
|
|
202
|
+
|
|
203
|
+
[UMPConsentInformation.sharedInstance
|
|
204
|
+
requestConsentInfoUpdateWithParameters:parameters
|
|
205
|
+
completionHandler:^(NSError *_Nullable error) {
|
|
206
|
+
if (error) {
|
|
207
|
+
[RNSharedUtils
|
|
208
|
+
rejectPromiseWithUserInfo:reject
|
|
209
|
+
userInfo:[@{
|
|
210
|
+
@"code" : @"consent-update-failed",
|
|
211
|
+
@"message" : error.localizedDescription,
|
|
212
|
+
} mutableCopy]];
|
|
213
|
+
} else {
|
|
214
|
+
resolve([self getConsentInformation]);
|
|
215
|
+
}
|
|
216
|
+
}];
|
|
217
|
+
#endif
|
|
218
|
+
}
|
|
219
|
+
#endif
|
|
220
|
+
|
|
221
|
+
- (void)showForm:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
222
|
+
#if !TARGET_OS_MACCATALYST
|
|
223
|
+
[UMPConsentForm loadWithCompletionHandler:^(UMPConsentForm *form, NSError *loadError) {
|
|
224
|
+
if (loadError) {
|
|
225
|
+
[RNSharedUtils rejectPromiseWithUserInfo:reject
|
|
226
|
+
userInfo:[@{
|
|
227
|
+
@"code" : @"consent-form-error",
|
|
228
|
+
@"message" : loadError.localizedDescription,
|
|
229
|
+
} mutableCopy]];
|
|
230
|
+
} else {
|
|
231
|
+
[form presentFromViewController:[UIApplication sharedApplication]
|
|
232
|
+
.delegate.window.rootViewController
|
|
233
|
+
completionHandler:^(NSError *_Nullable dismissError) {
|
|
234
|
+
if (dismissError) {
|
|
235
|
+
[RNSharedUtils
|
|
236
|
+
rejectPromiseWithUserInfo:reject
|
|
237
|
+
userInfo:[@{
|
|
238
|
+
@"code" : @"consent-form-error",
|
|
239
|
+
@"message" : dismissError.localizedDescription,
|
|
240
|
+
} mutableCopy]];
|
|
241
|
+
} else {
|
|
242
|
+
resolve([self getConsentInformation]);
|
|
243
|
+
}
|
|
244
|
+
}];
|
|
245
|
+
}
|
|
246
|
+
}];
|
|
247
|
+
#endif
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
- (void)showPrivacyOptionsForm:(RCTPromiseResolveBlock)resolve
|
|
251
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
252
|
+
#if !TARGET_OS_MACCATALYST
|
|
253
|
+
[UMPConsentForm
|
|
254
|
+
presentPrivacyOptionsFormFromViewController:[UIApplication sharedApplication]
|
|
255
|
+
.delegate.window.rootViewController
|
|
256
|
+
completionHandler:^(NSError *_Nullable formError) {
|
|
257
|
+
if (formError) {
|
|
258
|
+
[RNSharedUtils
|
|
259
|
+
rejectPromiseWithUserInfo:reject
|
|
260
|
+
userInfo:[@{
|
|
261
|
+
@"code" : @"privacy-options-form-error",
|
|
262
|
+
@"message" :
|
|
263
|
+
formError.localizedDescription,
|
|
264
|
+
} mutableCopy]];
|
|
265
|
+
} else {
|
|
266
|
+
resolve([self getConsentInformation]);
|
|
267
|
+
}
|
|
268
|
+
}];
|
|
269
|
+
#endif
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
- (void)loadAndShowConsentFormIfRequired:(RCTPromiseResolveBlock)resolve
|
|
273
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
274
|
+
#if !TARGET_OS_MACCATALYST
|
|
275
|
+
[UMPConsentForm
|
|
276
|
+
loadAndPresentIfRequiredFromViewController:[UIApplication sharedApplication]
|
|
277
|
+
.delegate.window.rootViewController
|
|
278
|
+
completionHandler:^(NSError *_Nullable formError) {
|
|
279
|
+
if (formError) {
|
|
280
|
+
[RNSharedUtils
|
|
281
|
+
rejectPromiseWithUserInfo:reject
|
|
282
|
+
userInfo:[@{
|
|
283
|
+
@"code" : @"consent-form-error",
|
|
284
|
+
@"message" :
|
|
285
|
+
formError.localizedDescription,
|
|
286
|
+
} mutableCopy]];
|
|
287
|
+
} else {
|
|
288
|
+
resolve([self getConsentInformation]);
|
|
289
|
+
}
|
|
290
|
+
}];
|
|
291
|
+
#endif
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
- (void)getConsentInfo:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
295
|
+
#if !TARGET_OS_MACCATALYST
|
|
296
|
+
resolve([self getConsentInformation]);
|
|
297
|
+
#endif
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
- (void)getTCString:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
301
|
+
@try {
|
|
302
|
+
// https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#in-app-details
|
|
303
|
+
NSString *tcString = [[NSUserDefaults standardUserDefaults] objectForKey:@"IABTCF_TCString"];
|
|
304
|
+
resolve(tcString);
|
|
305
|
+
} @catch (NSError *error) {
|
|
306
|
+
[RNSharedUtils rejectPromiseWithUserInfo:reject
|
|
307
|
+
userInfo:[@{
|
|
308
|
+
@"code" : @"consent-string-error",
|
|
309
|
+
@"message" : error.localizedDescription,
|
|
310
|
+
} mutableCopy]];
|
|
311
|
+
}
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
- (void)getGdprApplies:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
315
|
+
@try {
|
|
316
|
+
BOOL gdprApplies = [[NSUserDefaults standardUserDefaults] boolForKey:@"IABTCF_gdprApplies"];
|
|
317
|
+
resolve(@(gdprApplies));
|
|
318
|
+
} @catch (NSError *error) {
|
|
319
|
+
[RNSharedUtils rejectPromiseWithUserInfo:reject
|
|
320
|
+
userInfo:[@{
|
|
321
|
+
@"code" : @"consent-string-error",
|
|
322
|
+
@"message" : error.localizedDescription,
|
|
323
|
+
} mutableCopy]];
|
|
324
|
+
}
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
- (void)getPurposeConsents:(RCTPromiseResolveBlock)resolve reject:(RCTPromiseRejectBlock)reject {
|
|
328
|
+
@try {
|
|
329
|
+
NSString *purposeConsents =
|
|
330
|
+
[[NSUserDefaults standardUserDefaults] stringForKey:@"IABTCF_PurposeConsents"];
|
|
331
|
+
resolve(purposeConsents);
|
|
332
|
+
} @catch (NSError *error) {
|
|
333
|
+
[RNSharedUtils rejectPromiseWithUserInfo:reject
|
|
334
|
+
userInfo:[@{
|
|
335
|
+
@"code" : @"consent-string-error",
|
|
336
|
+
@"message" : error.localizedDescription,
|
|
337
|
+
} mutableCopy]];
|
|
338
|
+
}
|
|
339
|
+
}
|
|
340
|
+
|
|
341
|
+
- (void)getPurposeLegitimateInterests:(RCTPromiseResolveBlock)resolve
|
|
342
|
+
reject:(RCTPromiseRejectBlock)reject {
|
|
343
|
+
@try {
|
|
344
|
+
NSString *purposeLegitimateInterests =
|
|
345
|
+
[[NSUserDefaults standardUserDefaults] stringForKey:@"IABTCF_PurposeLegitimateInterests"];
|
|
346
|
+
resolve(purposeLegitimateInterests);
|
|
347
|
+
} @catch (NSError *error) {
|
|
348
|
+
[RNSharedUtils rejectPromiseWithUserInfo:reject
|
|
349
|
+
userInfo:[@{
|
|
350
|
+
@"code" : @"consent-string-error",
|
|
351
|
+
@"message" : error.localizedDescription,
|
|
352
|
+
} mutableCopy]];
|
|
353
|
+
}
|
|
354
|
+
}
|
|
355
|
+
|
|
356
|
+
@end
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Copyright (c) 2016-present Invertase Limited & Contributors
|
|
3
|
+
*
|
|
4
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
5
|
+
* you may not use this library except in compliance with the License.
|
|
6
|
+
* You may obtain a copy of the License at
|
|
7
|
+
*
|
|
8
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
9
|
+
*
|
|
10
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
11
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
12
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
13
|
+
* See the License for the specific language governing permissions and
|
|
14
|
+
* limitations under the License.
|
|
15
|
+
*
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
#if !TARGET_OS_MACCATALYST
|
|
19
|
+
|
|
20
|
+
#import <Foundation/Foundation.h>
|
|
21
|
+
#import <GoogleMobileAds/GoogleMobileAds.h>
|
|
22
|
+
#import "RNGoogleMobileAdsFullScreenContentDelegate.h"
|
|
23
|
+
#import "RNSharedUtils.h"
|
|
24
|
+
|
|
25
|
+
@interface RNGoogleMobileAdsFullScreenAd : NSObject
|
|
26
|
+
|
|
27
|
+
@property(nonatomic, strong) NSMutableDictionary<NSNumber *, id<GADFullScreenPresentingAd>> *adMap;
|
|
28
|
+
@property(nonatomic, strong)
|
|
29
|
+
NSMutableDictionary<NSNumber *, RNGoogleMobileAdsFullScreenContentDelegate *> *delegateMap;
|
|
30
|
+
|
|
31
|
+
- (instancetype)init;
|
|
32
|
+
- (void)invalidate;
|
|
33
|
+
- (NSString *)getAdEventName;
|
|
34
|
+
- (void)loadAd:(NSString *)adUnitId
|
|
35
|
+
adRequest:(GAMRequest *)adRequest
|
|
36
|
+
completionHandler:(void (^)(id<GADFullScreenPresentingAd> ad, NSError *error))completionHandler;
|
|
37
|
+
- (void)sendAdEvent:(NSString *)type
|
|
38
|
+
requestId:(int)requestId
|
|
39
|
+
adUnitId:(NSString *)adUnitId
|
|
40
|
+
error:(NSDictionary *)error
|
|
41
|
+
data:(NSDictionary *)data;
|
|
42
|
+
- (void)loadWithRequestId:(int)requestId
|
|
43
|
+
adUnitId:(NSString *)adUnitId
|
|
44
|
+
adRequestOptions:(NSDictionary *)adRequestOptions;
|
|
45
|
+
- (void)showWithRequestId:(int)requestId
|
|
46
|
+
adUnitId:(NSString *)adUnitId
|
|
47
|
+
showOptions:(NSDictionary *)showOptions
|
|
48
|
+
resolve:(RCTPromiseResolveBlock)resolve
|
|
49
|
+
reject:(RCTPromiseRejectBlock)reject;
|
|
50
|
+
|
|
51
|
+
@end
|
|
52
|
+
|
|
53
|
+
#endif
|