@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,24 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
name: 'example',
|
|
3
|
+
slug: 'example',
|
|
4
|
+
android: {
|
|
5
|
+
package: 'com.example',
|
|
6
|
+
},
|
|
7
|
+
ios: {
|
|
8
|
+
bundleIdentifier: 'com.example',
|
|
9
|
+
},
|
|
10
|
+
plugins: [
|
|
11
|
+
[
|
|
12
|
+
'../../build',
|
|
13
|
+
{
|
|
14
|
+
androidAppId: 'TestAppId',
|
|
15
|
+
iosAppId: 'TestIosId',
|
|
16
|
+
delayAppMeasurementInit: true,
|
|
17
|
+
optimizeInitialization: true,
|
|
18
|
+
optimizeAdLoading: true,
|
|
19
|
+
skAdNetworkItems: ['TestSkAdNetworkItem1', 'TestSkAdNetworkItem2'],
|
|
20
|
+
userTrackingUsageDescription: 'TestUserTrackingUsageDescription',
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
],
|
|
24
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export default {
|
|
2
|
+
name: 'example',
|
|
3
|
+
slug: 'example',
|
|
4
|
+
android: {
|
|
5
|
+
package: 'com.example',
|
|
6
|
+
},
|
|
7
|
+
ios: {
|
|
8
|
+
bundleIdentifier: 'com.example',
|
|
9
|
+
},
|
|
10
|
+
plugins: [
|
|
11
|
+
[
|
|
12
|
+
'../../build',
|
|
13
|
+
{
|
|
14
|
+
androidAppId: 'TestAppId',
|
|
15
|
+
iosAppId: 'TestIosId',
|
|
16
|
+
delayAppMeasurementInit: true,
|
|
17
|
+
optimizeInitialization: true,
|
|
18
|
+
optimizeAdLoading: true,
|
|
19
|
+
skAdNetworkItems: ['TestSkAdNetworkItem1', 'TestSkAdNetworkItem2'],
|
|
20
|
+
userTrackingUsageDescription: 'TestUserTrackingUsageDescription',
|
|
21
|
+
},
|
|
22
|
+
],
|
|
23
|
+
],
|
|
24
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "example",
|
|
3
|
+
"slug": "example",
|
|
4
|
+
"android": {
|
|
5
|
+
"package": "com.example"
|
|
6
|
+
},
|
|
7
|
+
"ios": {
|
|
8
|
+
"bundleIdentifier": "com.example"
|
|
9
|
+
},
|
|
10
|
+
"plugins": [
|
|
11
|
+
[
|
|
12
|
+
"../../build",
|
|
13
|
+
{
|
|
14
|
+
"androidAppId": "TestAppId",
|
|
15
|
+
"iosAppId": "TestIosId",
|
|
16
|
+
"delayAppMeasurementInit": true,
|
|
17
|
+
"optimizeInitialization": true,
|
|
18
|
+
"optimizeAdLoading": true,
|
|
19
|
+
"skAdNetworkItems": ["TestSkAdNetworkItem1", "TestSkAdNetworkItem2"],
|
|
20
|
+
"userTrackingUsageDescription": "TestUserTrackingUsageDescription"
|
|
21
|
+
}
|
|
22
|
+
]
|
|
23
|
+
]
|
|
24
|
+
}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "example",
|
|
3
|
+
"version": "1.0.0",
|
|
4
|
+
"scripts": {
|
|
5
|
+
"start": "expo start --dev-client",
|
|
6
|
+
"android": "expo run:android",
|
|
7
|
+
"ios": "expo run:ios"
|
|
8
|
+
},
|
|
9
|
+
"devDependencies": {
|
|
10
|
+
"@babel/core": "^7.12.9"
|
|
11
|
+
},
|
|
12
|
+
"dependencies": {
|
|
13
|
+
"expo": "~47.0.14",
|
|
14
|
+
"expo-splash-screen": "~0.17.5",
|
|
15
|
+
"expo-status-bar": "~1.4.2",
|
|
16
|
+
"react": "18.1.0",
|
|
17
|
+
"react-native": "0.70.8"
|
|
18
|
+
}
|
|
19
|
+
}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { exec } from 'child_process';
|
|
2
|
+
import path from 'path';
|
|
3
|
+
import fs from 'fs/promises';
|
|
4
|
+
import util from 'util';
|
|
5
|
+
|
|
6
|
+
const execAsync = util.promisify(exec);
|
|
7
|
+
|
|
8
|
+
describe.each(['app.json', 'app.config.js', 'app.config.ts'])('Expo Config Plugin Tests', expoConfigFileName => {
|
|
9
|
+
const fixturesPath = path.join(__dirname, 'fixtures');
|
|
10
|
+
const testAppPath = path.join(__dirname, 'build');
|
|
11
|
+
const infoPlistPath = path.join(testAppPath, 'ios', 'example', 'Info.plist');
|
|
12
|
+
const androidManifestPath = path.join(
|
|
13
|
+
testAppPath,
|
|
14
|
+
'android',
|
|
15
|
+
'app',
|
|
16
|
+
'src',
|
|
17
|
+
'main',
|
|
18
|
+
'AndroidManifest.xml',
|
|
19
|
+
);
|
|
20
|
+
|
|
21
|
+
beforeEach(async () => {
|
|
22
|
+
await fs.rm(testAppPath, { recursive: true, force: true });
|
|
23
|
+
await fs.mkdir(testAppPath);
|
|
24
|
+
await fs.copyFile(
|
|
25
|
+
path.join(fixturesPath, expoConfigFileName),
|
|
26
|
+
path.join(testAppPath, expoConfigFileName),
|
|
27
|
+
);
|
|
28
|
+
await fs.copyFile(
|
|
29
|
+
path.join(fixturesPath, 'package.json'),
|
|
30
|
+
path.join(testAppPath, 'package.json'),
|
|
31
|
+
);
|
|
32
|
+
});
|
|
33
|
+
|
|
34
|
+
it('Technically requires no parameters', async () => {
|
|
35
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
36
|
+
});
|
|
37
|
+
|
|
38
|
+
it('Warns about missing androidAppId', async () => {
|
|
39
|
+
await fs.copyFile(
|
|
40
|
+
path.join(fixturesPath, "without-params", expoConfigFileName),
|
|
41
|
+
path.join(testAppPath, expoConfigFileName),
|
|
42
|
+
);
|
|
43
|
+
|
|
44
|
+
const { stderr } = await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
45
|
+
expect(stderr).toMatch(/No 'androidAppId' was provided/);
|
|
46
|
+
});
|
|
47
|
+
|
|
48
|
+
it('Warns about missing iosAppId', async () => {
|
|
49
|
+
await fs.copyFile(
|
|
50
|
+
path.join(fixturesPath, "without-params", expoConfigFileName),
|
|
51
|
+
path.join(testAppPath, expoConfigFileName),
|
|
52
|
+
);
|
|
53
|
+
|
|
54
|
+
const { stderr } = await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
55
|
+
expect(stderr).toMatch(/No 'iosAppId' was provided/);
|
|
56
|
+
});
|
|
57
|
+
|
|
58
|
+
it('Optimizes initialization on Android by default', async () => {
|
|
59
|
+
await fs.copyFile(
|
|
60
|
+
path.join(fixturesPath, "without-params", expoConfigFileName),
|
|
61
|
+
path.join(testAppPath, expoConfigFileName),
|
|
62
|
+
);
|
|
63
|
+
|
|
64
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
65
|
+
|
|
66
|
+
const androidManifest = await fs.readFile(androidManifestPath, 'utf8');
|
|
67
|
+
expect(androidManifest).toContain(
|
|
68
|
+
'<meta-data android:name="com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION" android:value="true" tools:replace="android:value"/>',
|
|
69
|
+
);
|
|
70
|
+
});
|
|
71
|
+
|
|
72
|
+
it('Optimizes ad loading on Android by default', async () => {
|
|
73
|
+
await fs.copyFile(
|
|
74
|
+
path.join(fixturesPath, "without-params", expoConfigFileName),
|
|
75
|
+
path.join(testAppPath, expoConfigFileName),
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
79
|
+
|
|
80
|
+
const androidManifest = await fs.readFile(androidManifestPath, 'utf8');
|
|
81
|
+
expect(androidManifest).toContain(
|
|
82
|
+
'<meta-data android:name="com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING" android:value="true" tools:replace="android:value"/>',
|
|
83
|
+
);
|
|
84
|
+
});
|
|
85
|
+
|
|
86
|
+
it('Should modify AndroidManifest.xml', async () => {
|
|
87
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
88
|
+
|
|
89
|
+
const androidManifest = await fs.readFile(androidManifestPath, 'utf8');
|
|
90
|
+
expect(androidManifest).toMatchSnapshot();
|
|
91
|
+
});
|
|
92
|
+
|
|
93
|
+
it('Should modify AndroidManifest.xml idempotently', async () => {
|
|
94
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
95
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
96
|
+
|
|
97
|
+
const androidManifest = await fs.readFile(androidManifestPath, 'utf8');
|
|
98
|
+
expect(androidManifest).toMatchSnapshot();
|
|
99
|
+
});
|
|
100
|
+
|
|
101
|
+
it('Should modify Info.plist', async () => {
|
|
102
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
103
|
+
|
|
104
|
+
const infoPlist = await fs.readFile(infoPlistPath, 'utf8');
|
|
105
|
+
expect(infoPlist).toMatchSnapshot();
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
it('Should modify Info.plist idempotently', async () => {
|
|
109
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
110
|
+
await execAsync(`yarn expo prebuild --no-install ${testAppPath}`);
|
|
111
|
+
|
|
112
|
+
const infoPlist = await fs.readFile(infoPlistPath, 'utf8');
|
|
113
|
+
expect(infoPlist).toMatchSnapshot();
|
|
114
|
+
});
|
|
115
|
+
});
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { ConfigPlugin } from '@expo/config-plugins';
|
|
2
|
+
type PluginParameters = {
|
|
3
|
+
androidAppId?: string;
|
|
4
|
+
iosAppId?: string;
|
|
5
|
+
delayAppMeasurementInit?: boolean;
|
|
6
|
+
optimizeInitialization?: boolean;
|
|
7
|
+
optimizeAdLoading?: boolean;
|
|
8
|
+
skAdNetworkItems?: string[];
|
|
9
|
+
userTrackingUsageDescription?: string;
|
|
10
|
+
};
|
|
11
|
+
declare const withReactNativeGoogleMobileAds: ConfigPlugin<PluginParameters>;
|
|
12
|
+
export default withReactNativeGoogleMobileAds;
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const config_plugins_1 = require("@expo/config-plugins");
|
|
4
|
+
function addReplacingMainApplicationMetaDataItem(manifest, itemName, itemValue) {
|
|
5
|
+
config_plugins_1.AndroidConfig.Manifest.ensureToolsAvailable(manifest);
|
|
6
|
+
const newItem = {
|
|
7
|
+
$: {
|
|
8
|
+
'android:name': itemName,
|
|
9
|
+
'android:value': itemValue,
|
|
10
|
+
'tools:replace': 'android:value',
|
|
11
|
+
},
|
|
12
|
+
};
|
|
13
|
+
const mainApplication = config_plugins_1.AndroidConfig.Manifest.getMainApplicationOrThrow(manifest);
|
|
14
|
+
mainApplication['meta-data'] = mainApplication['meta-data'] ?? [];
|
|
15
|
+
const existingItem = mainApplication['meta-data'].find(item => item.$['android:name'] === itemName);
|
|
16
|
+
if (existingItem) {
|
|
17
|
+
existingItem.$['android:value'] = itemValue;
|
|
18
|
+
existingItem.$['tools:replace'] =
|
|
19
|
+
'android:value';
|
|
20
|
+
}
|
|
21
|
+
else {
|
|
22
|
+
mainApplication['meta-data'].push(newItem);
|
|
23
|
+
}
|
|
24
|
+
return manifest;
|
|
25
|
+
}
|
|
26
|
+
const withAndroidAppId = (config, androidAppId) => {
|
|
27
|
+
if (androidAppId === undefined)
|
|
28
|
+
return config;
|
|
29
|
+
return (0, config_plugins_1.withAndroidManifest)(config, config => {
|
|
30
|
+
addReplacingMainApplicationMetaDataItem(config.modResults, 'com.google.android.gms.ads.APPLICATION_ID', androidAppId);
|
|
31
|
+
return config;
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
const withAndroidAppMeasurementInitDelayed = (config, delayAppMeasurementInit) => {
|
|
35
|
+
if (delayAppMeasurementInit === undefined)
|
|
36
|
+
return config;
|
|
37
|
+
return (0, config_plugins_1.withAndroidManifest)(config, config => {
|
|
38
|
+
addReplacingMainApplicationMetaDataItem(config.modResults, 'com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT', delayAppMeasurementInit.toString());
|
|
39
|
+
return config;
|
|
40
|
+
});
|
|
41
|
+
};
|
|
42
|
+
const withAndroidInitializationOptimized = (config, optimizeInitialization = true) => {
|
|
43
|
+
return (0, config_plugins_1.withAndroidManifest)(config, config => {
|
|
44
|
+
addReplacingMainApplicationMetaDataItem(config.modResults, 'com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION', optimizeInitialization.toString());
|
|
45
|
+
return config;
|
|
46
|
+
});
|
|
47
|
+
};
|
|
48
|
+
const withAndroidAdLoadingOptimized = (config, optimizeAdLoading = true) => {
|
|
49
|
+
return (0, config_plugins_1.withAndroidManifest)(config, config => {
|
|
50
|
+
addReplacingMainApplicationMetaDataItem(config.modResults, 'com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING', optimizeAdLoading.toString());
|
|
51
|
+
return config;
|
|
52
|
+
});
|
|
53
|
+
};
|
|
54
|
+
const withIosAppId = (config, iosAppId) => {
|
|
55
|
+
if (iosAppId === undefined)
|
|
56
|
+
return config;
|
|
57
|
+
return (0, config_plugins_1.withInfoPlist)(config, config => {
|
|
58
|
+
config.modResults.GADApplicationIdentifier = iosAppId;
|
|
59
|
+
return config;
|
|
60
|
+
});
|
|
61
|
+
};
|
|
62
|
+
const withIosAppMeasurementInitDelayed = (config, delayAppMeasurementInit = false) => {
|
|
63
|
+
return (0, config_plugins_1.withInfoPlist)(config, config => {
|
|
64
|
+
config.modResults.GADDelayAppMeasurementInit = delayAppMeasurementInit;
|
|
65
|
+
return config;
|
|
66
|
+
});
|
|
67
|
+
};
|
|
68
|
+
const withIosSkAdNetworkItems = (config, skAdNetworkItems) => {
|
|
69
|
+
if (skAdNetworkItems === undefined)
|
|
70
|
+
return config;
|
|
71
|
+
return (0, config_plugins_1.withInfoPlist)(config, config => {
|
|
72
|
+
config.modResults.SKAdNetworkItems = config.modResults.SKAdNetworkItems ?? [];
|
|
73
|
+
const existingIdentifiers = config.modResults.SKAdNetworkItems.map((item) => item.SKAdNetworkIdentifier);
|
|
74
|
+
const missingIdentifiers = skAdNetworkItems.filter(skAdNetworkItem => !existingIdentifiers.includes(skAdNetworkItem));
|
|
75
|
+
config.modResults.SKAdNetworkItems.push(...missingIdentifiers.map(identifier => ({
|
|
76
|
+
SKAdNetworkIdentifier: identifier,
|
|
77
|
+
})));
|
|
78
|
+
return config;
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
const withIosUserTrackingUsageDescription = (config, userTrackingUsageDescription) => {
|
|
82
|
+
if (userTrackingUsageDescription === undefined)
|
|
83
|
+
return config;
|
|
84
|
+
return (0, config_plugins_1.withInfoPlist)(config, config => {
|
|
85
|
+
config.modResults.NSUserTrackingUsageDescription = userTrackingUsageDescription;
|
|
86
|
+
return config;
|
|
87
|
+
});
|
|
88
|
+
};
|
|
89
|
+
const withReactNativeGoogleMobileAds = (config, { androidAppId, delayAppMeasurementInit, optimizeInitialization, optimizeAdLoading, iosAppId, skAdNetworkItems, userTrackingUsageDescription, } = {}) => {
|
|
90
|
+
if (androidAppId === undefined) {
|
|
91
|
+
console.warn("No 'androidAppId' was provided. The native Google Mobile Ads SDK will crash on Android without it.");
|
|
92
|
+
}
|
|
93
|
+
if (iosAppId === undefined) {
|
|
94
|
+
console.warn("No 'iosAppId' was provided. The native Google Mobile Ads SDK will crash on iOS without it.");
|
|
95
|
+
}
|
|
96
|
+
return (0, config_plugins_1.withPlugins)(config, [
|
|
97
|
+
// Android
|
|
98
|
+
[withAndroidAppId, androidAppId],
|
|
99
|
+
[withAndroidAppMeasurementInitDelayed, delayAppMeasurementInit],
|
|
100
|
+
[withAndroidInitializationOptimized, optimizeInitialization],
|
|
101
|
+
[withAndroidAdLoadingOptimized, optimizeAdLoading],
|
|
102
|
+
// iOS
|
|
103
|
+
[withIosAppId, iosAppId],
|
|
104
|
+
[withIosAppMeasurementInitDelayed, delayAppMeasurementInit],
|
|
105
|
+
[withIosSkAdNetworkItems, skAdNetworkItems],
|
|
106
|
+
[withIosUserTrackingUsageDescription, userTrackingUsageDescription],
|
|
107
|
+
]);
|
|
108
|
+
};
|
|
109
|
+
exports.default = withReactNativeGoogleMobileAds;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = require("expo-module-scripts/jest-preset-plugin");
|
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
import {
|
|
2
|
+
AndroidConfig,
|
|
3
|
+
ConfigPlugin,
|
|
4
|
+
withAndroidManifest,
|
|
5
|
+
withPlugins,
|
|
6
|
+
withInfoPlist,
|
|
7
|
+
} from '@expo/config-plugins';
|
|
8
|
+
|
|
9
|
+
type PluginParameters = {
|
|
10
|
+
androidAppId?: string;
|
|
11
|
+
iosAppId?: string;
|
|
12
|
+
delayAppMeasurementInit?: boolean;
|
|
13
|
+
optimizeInitialization?: boolean;
|
|
14
|
+
optimizeAdLoading?: boolean;
|
|
15
|
+
skAdNetworkItems?: string[];
|
|
16
|
+
userTrackingUsageDescription?: string;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
function addReplacingMainApplicationMetaDataItem(
|
|
20
|
+
manifest: AndroidConfig.Manifest.AndroidManifest,
|
|
21
|
+
itemName: string,
|
|
22
|
+
itemValue: string,
|
|
23
|
+
): AndroidConfig.Manifest.AndroidManifest {
|
|
24
|
+
AndroidConfig.Manifest.ensureToolsAvailable(manifest);
|
|
25
|
+
|
|
26
|
+
const newItem = {
|
|
27
|
+
$: {
|
|
28
|
+
'android:name': itemName,
|
|
29
|
+
'android:value': itemValue,
|
|
30
|
+
'tools:replace': 'android:value',
|
|
31
|
+
},
|
|
32
|
+
} as AndroidConfig.Manifest.ManifestMetaData;
|
|
33
|
+
|
|
34
|
+
const mainApplication = AndroidConfig.Manifest.getMainApplicationOrThrow(manifest);
|
|
35
|
+
mainApplication['meta-data'] = mainApplication['meta-data'] ?? [];
|
|
36
|
+
|
|
37
|
+
const existingItem = mainApplication['meta-data'].find(
|
|
38
|
+
item => item.$['android:name'] === itemName,
|
|
39
|
+
);
|
|
40
|
+
|
|
41
|
+
if (existingItem) {
|
|
42
|
+
existingItem.$['android:value'] = itemValue;
|
|
43
|
+
existingItem.$['tools:replace' as keyof AndroidConfig.Manifest.ManifestMetaData['$']] =
|
|
44
|
+
'android:value';
|
|
45
|
+
} else {
|
|
46
|
+
mainApplication['meta-data'].push(newItem);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return manifest;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
const withAndroidAppId: ConfigPlugin<PluginParameters['androidAppId']> = (config, androidAppId) => {
|
|
53
|
+
if (androidAppId === undefined) return config;
|
|
54
|
+
|
|
55
|
+
return withAndroidManifest(config, config => {
|
|
56
|
+
addReplacingMainApplicationMetaDataItem(
|
|
57
|
+
config.modResults,
|
|
58
|
+
'com.google.android.gms.ads.APPLICATION_ID',
|
|
59
|
+
androidAppId,
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
return config;
|
|
63
|
+
});
|
|
64
|
+
};
|
|
65
|
+
|
|
66
|
+
const withAndroidAppMeasurementInitDelayed: ConfigPlugin<
|
|
67
|
+
PluginParameters['delayAppMeasurementInit']
|
|
68
|
+
> = (config, delayAppMeasurementInit) => {
|
|
69
|
+
if (delayAppMeasurementInit === undefined) return config;
|
|
70
|
+
|
|
71
|
+
return withAndroidManifest(config, config => {
|
|
72
|
+
addReplacingMainApplicationMetaDataItem(
|
|
73
|
+
config.modResults,
|
|
74
|
+
'com.google.android.gms.ads.DELAY_APP_MEASUREMENT_INIT',
|
|
75
|
+
delayAppMeasurementInit.toString(),
|
|
76
|
+
);
|
|
77
|
+
|
|
78
|
+
return config;
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
|
|
82
|
+
const withAndroidInitializationOptimized: ConfigPlugin<
|
|
83
|
+
PluginParameters['optimizeInitialization']
|
|
84
|
+
> = (config, optimizeInitialization = true) => {
|
|
85
|
+
return withAndroidManifest(config, config => {
|
|
86
|
+
addReplacingMainApplicationMetaDataItem(
|
|
87
|
+
config.modResults,
|
|
88
|
+
'com.google.android.gms.ads.flag.OPTIMIZE_INITIALIZATION',
|
|
89
|
+
optimizeInitialization.toString(),
|
|
90
|
+
);
|
|
91
|
+
|
|
92
|
+
return config;
|
|
93
|
+
});
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
const withAndroidAdLoadingOptimized: ConfigPlugin<PluginParameters['optimizeAdLoading']> = (
|
|
97
|
+
config,
|
|
98
|
+
optimizeAdLoading = true,
|
|
99
|
+
) => {
|
|
100
|
+
return withAndroidManifest(config, config => {
|
|
101
|
+
addReplacingMainApplicationMetaDataItem(
|
|
102
|
+
config.modResults,
|
|
103
|
+
'com.google.android.gms.ads.flag.OPTIMIZE_AD_LOADING',
|
|
104
|
+
optimizeAdLoading.toString(),
|
|
105
|
+
);
|
|
106
|
+
|
|
107
|
+
return config;
|
|
108
|
+
});
|
|
109
|
+
};
|
|
110
|
+
|
|
111
|
+
const withIosAppId: ConfigPlugin<PluginParameters['iosAppId']> = (config, iosAppId) => {
|
|
112
|
+
if (iosAppId === undefined) return config;
|
|
113
|
+
|
|
114
|
+
return withInfoPlist(config, config => {
|
|
115
|
+
config.modResults.GADApplicationIdentifier = iosAppId;
|
|
116
|
+
return config;
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
const withIosAppMeasurementInitDelayed: ConfigPlugin<
|
|
121
|
+
PluginParameters['delayAppMeasurementInit']
|
|
122
|
+
> = (config, delayAppMeasurementInit = false) => {
|
|
123
|
+
return withInfoPlist(config, config => {
|
|
124
|
+
config.modResults.GADDelayAppMeasurementInit = delayAppMeasurementInit;
|
|
125
|
+
return config;
|
|
126
|
+
});
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
const withIosSkAdNetworkItems: ConfigPlugin<PluginParameters['skAdNetworkItems']> = (
|
|
130
|
+
config,
|
|
131
|
+
skAdNetworkItems,
|
|
132
|
+
) => {
|
|
133
|
+
if (skAdNetworkItems === undefined) return config;
|
|
134
|
+
|
|
135
|
+
return withInfoPlist(config, config => {
|
|
136
|
+
config.modResults.SKAdNetworkItems = config.modResults.SKAdNetworkItems ?? [];
|
|
137
|
+
|
|
138
|
+
const existingIdentifiers = config.modResults.SKAdNetworkItems.map(
|
|
139
|
+
(item: { SKAdNetworkIdentifier: string }) => item.SKAdNetworkIdentifier,
|
|
140
|
+
);
|
|
141
|
+
|
|
142
|
+
const missingIdentifiers = skAdNetworkItems.filter(
|
|
143
|
+
skAdNetworkItem => !existingIdentifiers.includes(skAdNetworkItem),
|
|
144
|
+
);
|
|
145
|
+
|
|
146
|
+
config.modResults.SKAdNetworkItems.push(
|
|
147
|
+
...missingIdentifiers.map(identifier => ({
|
|
148
|
+
SKAdNetworkIdentifier: identifier,
|
|
149
|
+
})),
|
|
150
|
+
);
|
|
151
|
+
|
|
152
|
+
return config;
|
|
153
|
+
});
|
|
154
|
+
};
|
|
155
|
+
|
|
156
|
+
const withIosUserTrackingUsageDescription: ConfigPlugin<
|
|
157
|
+
PluginParameters['userTrackingUsageDescription']
|
|
158
|
+
> = (config, userTrackingUsageDescription) => {
|
|
159
|
+
if (userTrackingUsageDescription === undefined) return config;
|
|
160
|
+
|
|
161
|
+
return withInfoPlist(config, config => {
|
|
162
|
+
config.modResults.NSUserTrackingUsageDescription = userTrackingUsageDescription;
|
|
163
|
+
return config;
|
|
164
|
+
});
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
const withReactNativeGoogleMobileAds: ConfigPlugin<PluginParameters> = (
|
|
168
|
+
config,
|
|
169
|
+
{
|
|
170
|
+
androidAppId,
|
|
171
|
+
delayAppMeasurementInit,
|
|
172
|
+
optimizeInitialization,
|
|
173
|
+
optimizeAdLoading,
|
|
174
|
+
iosAppId,
|
|
175
|
+
skAdNetworkItems,
|
|
176
|
+
userTrackingUsageDescription,
|
|
177
|
+
} = {},
|
|
178
|
+
) => {
|
|
179
|
+
if (androidAppId === undefined) {
|
|
180
|
+
console.warn(
|
|
181
|
+
"No 'androidAppId' was provided. The native Google Mobile Ads SDK will crash on Android without it.",
|
|
182
|
+
);
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
if (iosAppId === undefined) {
|
|
186
|
+
console.warn(
|
|
187
|
+
"No 'iosAppId' was provided. The native Google Mobile Ads SDK will crash on iOS without it.",
|
|
188
|
+
);
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return withPlugins(config, [
|
|
192
|
+
// Android
|
|
193
|
+
[withAndroidAppId, androidAppId],
|
|
194
|
+
[withAndroidAppMeasurementInitDelayed, delayAppMeasurementInit],
|
|
195
|
+
[withAndroidInitializationOptimized, optimizeInitialization],
|
|
196
|
+
[withAndroidAdLoadingOptimized, optimizeAdLoading],
|
|
197
|
+
// iOS
|
|
198
|
+
[withIosAppId, iosAppId],
|
|
199
|
+
[withIosAppMeasurementInitDelayed, delayAppMeasurementInit],
|
|
200
|
+
[withIosSkAdNetworkItems, skAdNetworkItems],
|
|
201
|
+
[withIosUserTrackingUsageDescription, userTrackingUsageDescription],
|
|
202
|
+
]);
|
|
203
|
+
};
|
|
204
|
+
|
|
205
|
+
export default withReactNativeGoogleMobileAds;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"root":["./src/index.ts"],"version":"5.9.3"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
dependency: {
|
|
3
|
+
platforms: {
|
|
4
|
+
android: {
|
|
5
|
+
packageImportPath: 'import io.invertase.googlemobileads.ReactNativeGoogleMobileAdsPackage;',
|
|
6
|
+
},
|
|
7
|
+
ios: {
|
|
8
|
+
scriptPhases: [
|
|
9
|
+
{
|
|
10
|
+
name: '[RNGoogleMobileAds] Configuration',
|
|
11
|
+
path: './ios_config.sh',
|
|
12
|
+
execution_position: 'after_compile',
|
|
13
|
+
input_files: ['$(BUILT_PRODUCTS_DIR)/$(INFOPLIST_PATH)'],
|
|
14
|
+
},
|
|
15
|
+
],
|
|
16
|
+
},
|
|
17
|
+
},
|
|
18
|
+
},
|
|
19
|
+
};
|
|
@@ -0,0 +1,70 @@
|
|
|
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
|
+
export enum AdEventType {
|
|
19
|
+
/**
|
|
20
|
+
* When an ad has loaded. At this point, the ad is ready to be shown to the user.
|
|
21
|
+
*
|
|
22
|
+
* #### Example
|
|
23
|
+
*
|
|
24
|
+
* ```js
|
|
25
|
+
* import { AdEventType } from 'react-native-google-mobile-ads';
|
|
26
|
+
*
|
|
27
|
+
* advert.addEventListener(AdEventType.LOADED, () => {
|
|
28
|
+
* advert.show();
|
|
29
|
+
* });
|
|
30
|
+
* ```
|
|
31
|
+
*/
|
|
32
|
+
LOADED = 'loaded',
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* The ad has thrown an error. See the error parameter the listener callback for more information.
|
|
36
|
+
*
|
|
37
|
+
* #### Example
|
|
38
|
+
*
|
|
39
|
+
* ```js
|
|
40
|
+
* import { AdEventType } from 'react-native-google-mobile-ads';
|
|
41
|
+
*
|
|
42
|
+
* advert.addEventListener(AdEventType.ERROR, (error) => {
|
|
43
|
+
* console.log('Ad error:', error);
|
|
44
|
+
* });
|
|
45
|
+
* ```
|
|
46
|
+
*/
|
|
47
|
+
ERROR = 'error',
|
|
48
|
+
|
|
49
|
+
/**
|
|
50
|
+
* The ad opened and is currently visible to the user. This event is fired after the `show()`
|
|
51
|
+
* method has been called.
|
|
52
|
+
*/
|
|
53
|
+
OPENED = 'opened',
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* Called when ad generates revenue.
|
|
57
|
+
* See: https://developers.google.com/admob/android/impression-level-ad-revenue
|
|
58
|
+
*/
|
|
59
|
+
PAID = 'paid',
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* The user clicked the advert.
|
|
63
|
+
*/
|
|
64
|
+
CLICKED = 'clicked',
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* The user closed the ad and has returned back to your application.
|
|
68
|
+
*/
|
|
69
|
+
CLOSED = 'closed',
|
|
70
|
+
}
|