@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.
Files changed (626) hide show
  1. package/LICENSE +32 -0
  2. package/README.md +181 -0
  3. package/RNGoogleMobileAds.podspec +74 -0
  4. package/__tests__/banner.test.tsx +53 -0
  5. package/__tests__/consent.test.ts +33 -0
  6. package/__tests__/googleMobileAds.test.ts +108 -0
  7. package/__tests__/interstitial.test.ts +140 -0
  8. package/__tests__/nativeEventEmitter.test.ts +72 -0
  9. package/__tests__/requestOptions.test.tsx +82 -0
  10. package/__tests__/rewarded.test.tsx +4 -0
  11. package/__tests__/showOptions.test.tsx +4 -0
  12. package/android/.editorconfig +10 -0
  13. package/android/app-json.gradle +69 -0
  14. package/android/build.gradle +149 -0
  15. package/android/lint.xml +5 -0
  16. package/android/settings.gradle +1 -0
  17. package/android/src/main/AndroidManifest.xml +23 -0
  18. package/android/src/main/java/io/invertase/googlemobileads/OnNativeEvent.kt +23 -0
  19. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeAppModule.java +152 -0
  20. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsAppOpenModule.kt +92 -0
  21. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsBannerAdViewManager.java +303 -0
  22. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsCommon.java +277 -0
  23. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsConsentModule.java +293 -0
  24. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsEvent.java +76 -0
  25. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsFullScreenAdModule.kt +201 -0
  26. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsInterstitialModule.kt +92 -0
  27. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsMediaViewManager.java +79 -0
  28. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsModule.kt +178 -0
  29. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsNativeAdViewManager.java +164 -0
  30. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsNativeModule.kt +172 -0
  31. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.kt +113 -0
  32. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsRewardedInterstitialModule.kt +127 -0
  33. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsRewardedModule.kt +121 -0
  34. package/android/src/main/java/io/invertase/googlemobileads/common/RCTConvert.java +111 -0
  35. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeAdView.java +128 -0
  36. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeApp.java +34 -0
  37. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeEvent.java +41 -0
  38. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeEventEmitter.java +150 -0
  39. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeInitProvider.java +77 -0
  40. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeJSON.java +107 -0
  41. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeMeta.java +92 -0
  42. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeModule.java +96 -0
  43. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativePreferences.java +86 -0
  44. package/android/src/main/java/io/invertase/googlemobileads/common/SharedUtils.java +429 -0
  45. package/android/src/main/java/io/invertase/googlemobileads/common/TaskExecutorService.java +124 -0
  46. package/android/src/main/java/io/invertase/googlemobileads/interfaces/ContextProvider.java +30 -0
  47. package/android/src/main/java/io/invertase/googlemobileads/interfaces/NativeError.java +28 -0
  48. package/android/src/main/java/io/invertase/googlemobileads/interfaces/NativeEvent.java +26 -0
  49. package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsMediaViewManagerDelegate.java +32 -0
  50. package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsMediaViewManagerInterface.java +10 -0
  51. package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsNativeViewManagerDelegate.java +36 -0
  52. package/android/src/oldarch/com/facebook/react/viewmanagers/RNGoogleMobileAdsNativeViewManagerInterface.java +10 -0
  53. package/android/src/oldarch/io/invertase/googlemobileads/NativeGoogleMobileAdsNativeModuleSpec.kt +18 -0
  54. package/app.plugin.js +1 -0
  55. package/babel.config.js +8 -0
  56. package/docs/ad-inspector.mdx +47 -0
  57. package/docs/common-reasons-for-ads-not-showing.mdx +111 -0
  58. package/docs/displaying-ads-hook.mdx +103 -0
  59. package/docs/displaying-ads.mdx +512 -0
  60. package/docs/european-user-consent.mdx +315 -0
  61. package/docs/img/logo_admob_192px.svg +19 -0
  62. package/docs/impression-level-ad-revenue.mdx +41 -0
  63. package/docs/index.mdx +508 -0
  64. package/docs/mediation.mdx +323 -0
  65. package/docs/migrating-to-v15.mdx +7 -0
  66. package/docs/migrating-to-v5.mdx +63 -0
  67. package/docs/migrating-to-v6.mdx +111 -0
  68. package/docs/native-ads.mdx +385 -0
  69. package/docs/testing.mdx +17 -0
  70. package/docs/video-ad_volume-control.mdx +49 -0
  71. package/docs.json +36 -0
  72. package/ios/RNGoogleMobileAds/RNGoogleMobileAds-Bridging-Header.h +5 -0
  73. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsAppOpenModule.h +36 -0
  74. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsAppOpenModule.mm +104 -0
  75. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.h +44 -0
  76. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerComponent.m +221 -0
  77. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.h +34 -0
  78. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerView.mm +282 -0
  79. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerViewManager.mm +87 -0
  80. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.h +72 -0
  81. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.mm +248 -0
  82. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsConsentModule.h +36 -0
  83. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsConsentModule.mm +356 -0
  84. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenAd.h +53 -0
  85. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenAd.mm +220 -0
  86. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.h +36 -0
  87. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.mm +80 -0
  88. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsInterstitialModule.h +36 -0
  89. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsInterstitialModule.mm +106 -0
  90. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsMediaView.h +52 -0
  91. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsMediaView.mm +155 -0
  92. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.h +32 -0
  93. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.mm +180 -0
  94. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeModule.h +35 -0
  95. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeModule.mm +321 -0
  96. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.h +51 -0
  97. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm +251 -0
  98. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedInterstitialModule.h +37 -0
  99. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedInterstitialModule.mm +106 -0
  100. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedModule.h +36 -0
  101. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedModule.mm +104 -0
  102. package/ios/RNGoogleMobileAds/common/RNAppModule.h +24 -0
  103. package/ios/RNGoogleMobileAds/common/RNAppModule.mm +95 -0
  104. package/ios/RNGoogleMobileAds/common/RNRCTEventEmitter.h +73 -0
  105. package/ios/RNGoogleMobileAds/common/RNRCTEventEmitter.mm +150 -0
  106. package/ios/RNGoogleMobileAds/common/RNSharedUtils.h +43 -0
  107. package/ios/RNGoogleMobileAds/common/RNSharedUtils.mm +34 -0
  108. package/ios/RNGoogleMobileAds.xcodeproj/project.pbxproj +377 -0
  109. package/ios/RNGoogleMobileAds.xcodeproj/xcshareddata/IDETemplateMacros.plist +24 -0
  110. package/ios_config.sh +192 -0
  111. package/jest.config.js +7 -0
  112. package/jest.setup.ts +92 -0
  113. package/lib/commonjs/AdEventType.js +72 -0
  114. package/lib/commonjs/AdEventType.js.map +1 -0
  115. package/lib/commonjs/AdsConsent.js +117 -0
  116. package/lib/commonjs/AdsConsent.js.map +1 -0
  117. package/lib/commonjs/AdsConsentPurposes.js +180 -0
  118. package/lib/commonjs/AdsConsentPurposes.js.map +1 -0
  119. package/lib/commonjs/AdsConsentSpecialFeatures.js +54 -0
  120. package/lib/commonjs/AdsConsentSpecialFeatures.js.map +1 -0
  121. package/lib/commonjs/BannerAdSize.js +75 -0
  122. package/lib/commonjs/BannerAdSize.js.map +1 -0
  123. package/lib/commonjs/GAMAdEventType.js +44 -0
  124. package/lib/commonjs/GAMAdEventType.js.map +1 -0
  125. package/lib/commonjs/MaxAdContentRating.js +42 -0
  126. package/lib/commonjs/MaxAdContentRating.js.map +1 -0
  127. package/lib/commonjs/MobileAds.js +63 -0
  128. package/lib/commonjs/MobileAds.js.map +1 -0
  129. package/lib/commonjs/NativeAdEventType.js +50 -0
  130. package/lib/commonjs/NativeAdEventType.js.map +1 -0
  131. package/lib/commonjs/RewardedAdEventType.js +66 -0
  132. package/lib/commonjs/RewardedAdEventType.js.map +1 -0
  133. package/lib/commonjs/TestIds.js +66 -0
  134. package/lib/commonjs/TestIds.js.map +1 -0
  135. package/lib/commonjs/ads/AppOpenAd.js +54 -0
  136. package/lib/commonjs/ads/AppOpenAd.js.map +1 -0
  137. package/lib/commonjs/ads/BannerAd.js +45 -0
  138. package/lib/commonjs/ads/BannerAd.js.map +1 -0
  139. package/lib/commonjs/ads/BaseAd.js +155 -0
  140. package/lib/commonjs/ads/BaseAd.js.map +1 -0
  141. package/lib/commonjs/ads/GAMBannerAd.js +49 -0
  142. package/lib/commonjs/ads/GAMBannerAd.js.map +1 -0
  143. package/lib/commonjs/ads/GAMInterstitialAd.js +42 -0
  144. package/lib/commonjs/ads/GAMInterstitialAd.js.map +1 -0
  145. package/lib/commonjs/ads/InterstitialAd.js +115 -0
  146. package/lib/commonjs/ads/InterstitialAd.js.map +1 -0
  147. package/lib/commonjs/ads/MobileAd.js +153 -0
  148. package/lib/commonjs/ads/MobileAd.js.map +1 -0
  149. package/lib/commonjs/ads/RewardedAd.js +128 -0
  150. package/lib/commonjs/ads/RewardedAd.js.map +1 -0
  151. package/lib/commonjs/ads/RewardedInterstitialAd.js +128 -0
  152. package/lib/commonjs/ads/RewardedInterstitialAd.js.map +1 -0
  153. package/lib/commonjs/ads/native-ad/NativeAd.js +123 -0
  154. package/lib/commonjs/ads/native-ad/NativeAd.js.map +1 -0
  155. package/lib/commonjs/ads/native-ad/NativeAdContext.js +26 -0
  156. package/lib/commonjs/ads/native-ad/NativeAdContext.js.map +1 -0
  157. package/lib/commonjs/ads/native-ad/NativeAdView.js +52 -0
  158. package/lib/commonjs/ads/native-ad/NativeAdView.js.map +1 -0
  159. package/lib/commonjs/ads/native-ad/NativeAsset.js +70 -0
  160. package/lib/commonjs/ads/native-ad/NativeAsset.js.map +1 -0
  161. package/lib/commonjs/ads/native-ad/NativeMediaView.js +61 -0
  162. package/lib/commonjs/ads/native-ad/NativeMediaView.js.map +1 -0
  163. package/lib/commonjs/common/constants.js +17 -0
  164. package/lib/commonjs/common/constants.js.map +1 -0
  165. package/lib/commonjs/common/debounce.js +18 -0
  166. package/lib/commonjs/common/debounce.js.map +1 -0
  167. package/lib/commonjs/common/index.js +47 -0
  168. package/lib/commonjs/common/index.js.map +1 -0
  169. package/lib/commonjs/common/ref.js +46 -0
  170. package/lib/commonjs/common/ref.js.map +1 -0
  171. package/lib/commonjs/common/validate.js +132 -0
  172. package/lib/commonjs/common/validate.js.map +1 -0
  173. package/lib/commonjs/declarations.d.js +2 -0
  174. package/lib/commonjs/declarations.d.js.map +1 -0
  175. package/lib/commonjs/hooks/useAppOpenAd.js +44 -0
  176. package/lib/commonjs/hooks/useAppOpenAd.js.map +1 -0
  177. package/lib/commonjs/hooks/useForeground.js +45 -0
  178. package/lib/commonjs/hooks/useForeground.js.map +1 -0
  179. package/lib/commonjs/hooks/useFullScreenAd.js +121 -0
  180. package/lib/commonjs/hooks/useFullScreenAd.js.map +1 -0
  181. package/lib/commonjs/hooks/useInterstitialAd.js +44 -0
  182. package/lib/commonjs/hooks/useInterstitialAd.js.map +1 -0
  183. package/lib/commonjs/hooks/useRewardedAd.js +44 -0
  184. package/lib/commonjs/hooks/useRewardedAd.js.map +1 -0
  185. package/lib/commonjs/hooks/useRewardedInterstitialAd.js +44 -0
  186. package/lib/commonjs/hooks/useRewardedInterstitialAd.js.map +1 -0
  187. package/lib/commonjs/index.js +337 -0
  188. package/lib/commonjs/index.js.map +1 -0
  189. package/lib/commonjs/internal/GoogleMobileAdsNativeEventEmitter.js +54 -0
  190. package/lib/commonjs/internal/GoogleMobileAdsNativeEventEmitter.js.map +1 -0
  191. package/lib/commonjs/internal/NativeError.js +53 -0
  192. package/lib/commonjs/internal/NativeError.js.map +1 -0
  193. package/lib/commonjs/internal/SharedEventEmitter.js +27 -0
  194. package/lib/commonjs/internal/SharedEventEmitter.js.map +1 -0
  195. package/lib/commonjs/package.json +1 -0
  196. package/lib/commonjs/specs/components/GoogleMobileAdsBannerViewNativeComponent.ts +62 -0
  197. package/lib/commonjs/specs/components/GoogleMobileAdsMediaViewNativeComponent.ts +30 -0
  198. package/lib/commonjs/specs/components/GoogleMobileAdsNativeViewNativeComponent.ts +45 -0
  199. package/lib/commonjs/specs/modules/NativeAppModule.js +24 -0
  200. package/lib/commonjs/specs/modules/NativeAppModule.js.map +1 -0
  201. package/lib/commonjs/specs/modules/NativeAppOpenModule.js +25 -0
  202. package/lib/commonjs/specs/modules/NativeAppOpenModule.js.map +1 -0
  203. package/lib/commonjs/specs/modules/NativeConsentModule.js +105 -0
  204. package/lib/commonjs/specs/modules/NativeConsentModule.js.map +1 -0
  205. package/lib/commonjs/specs/modules/NativeGoogleMobileAdsModule.js +25 -0
  206. package/lib/commonjs/specs/modules/NativeGoogleMobileAdsModule.js.map +1 -0
  207. package/lib/commonjs/specs/modules/NativeGoogleMobileAdsNativeModule.js +25 -0
  208. package/lib/commonjs/specs/modules/NativeGoogleMobileAdsNativeModule.js.map +1 -0
  209. package/lib/commonjs/specs/modules/NativeInterstitialModule.js +25 -0
  210. package/lib/commonjs/specs/modules/NativeInterstitialModule.js.map +1 -0
  211. package/lib/commonjs/specs/modules/NativeRewardedInterstitialModule.js +25 -0
  212. package/lib/commonjs/specs/modules/NativeRewardedInterstitialModule.js.map +1 -0
  213. package/lib/commonjs/specs/modules/NativeRewardedModule.js +25 -0
  214. package/lib/commonjs/specs/modules/NativeRewardedModule.js.map +1 -0
  215. package/lib/commonjs/types/AdEventListener.js +6 -0
  216. package/lib/commonjs/types/AdEventListener.js.map +1 -0
  217. package/lib/commonjs/types/AdEventsListener.js +6 -0
  218. package/lib/commonjs/types/AdEventsListener.js.map +1 -0
  219. package/lib/commonjs/types/AdShowOptions.js +2 -0
  220. package/lib/commonjs/types/AdShowOptions.js.map +1 -0
  221. package/lib/commonjs/types/AdStates.js +6 -0
  222. package/lib/commonjs/types/AdStates.js.map +1 -0
  223. package/lib/commonjs/types/AdapterStatus.js +21 -0
  224. package/lib/commonjs/types/AdapterStatus.js.map +1 -0
  225. package/lib/commonjs/types/AppEvent.js +2 -0
  226. package/lib/commonjs/types/AppEvent.js.map +1 -0
  227. package/lib/commonjs/types/BannerAdProps.js +6 -0
  228. package/lib/commonjs/types/BannerAdProps.js.map +1 -0
  229. package/lib/commonjs/types/MobileAd.interface.js +6 -0
  230. package/lib/commonjs/types/MobileAd.interface.js.map +1 -0
  231. package/lib/commonjs/types/MobileAdsModule.interface.js +6 -0
  232. package/lib/commonjs/types/MobileAdsModule.interface.js.map +1 -0
  233. package/lib/commonjs/types/NativeAdRequestOptions.js +37 -0
  234. package/lib/commonjs/types/NativeAdRequestOptions.js.map +1 -0
  235. package/lib/commonjs/types/PaidEventListener.js +6 -0
  236. package/lib/commonjs/types/PaidEventListener.js.map +1 -0
  237. package/lib/commonjs/types/RequestConfiguration.js +6 -0
  238. package/lib/commonjs/types/RequestConfiguration.js.map +1 -0
  239. package/lib/commonjs/types/RequestOptions.js +2 -0
  240. package/lib/commonjs/types/RequestOptions.js.map +1 -0
  241. package/lib/commonjs/types/RewardedAdReward.js +2 -0
  242. package/lib/commonjs/types/RewardedAdReward.js.map +1 -0
  243. package/lib/commonjs/types/index.js +138 -0
  244. package/lib/commonjs/types/index.js.map +1 -0
  245. package/lib/commonjs/validateAdRequestConfiguration.js +57 -0
  246. package/lib/commonjs/validateAdRequestConfiguration.js.map +1 -0
  247. package/lib/commonjs/validateAdRequestOptions.js +121 -0
  248. package/lib/commonjs/validateAdRequestOptions.js.map +1 -0
  249. package/lib/commonjs/validateAdShowOptions.js +41 -0
  250. package/lib/commonjs/validateAdShowOptions.js.map +1 -0
  251. package/lib/commonjs/validateNativeAdRequestOptions.js +51 -0
  252. package/lib/commonjs/validateNativeAdRequestOptions.js.map +1 -0
  253. package/lib/commonjs/version.js +9 -0
  254. package/lib/commonjs/version.js.map +1 -0
  255. package/lib/module/AdEventType.js +69 -0
  256. package/lib/module/AdEventType.js.map +1 -0
  257. package/lib/module/AdsConsent.js +113 -0
  258. package/lib/module/AdsConsent.js.map +1 -0
  259. package/lib/module/AdsConsentPurposes.js +177 -0
  260. package/lib/module/AdsConsentPurposes.js.map +1 -0
  261. package/lib/module/AdsConsentSpecialFeatures.js +51 -0
  262. package/lib/module/AdsConsentSpecialFeatures.js.map +1 -0
  263. package/lib/module/BannerAdSize.js +72 -0
  264. package/lib/module/BannerAdSize.js.map +1 -0
  265. package/lib/module/GAMAdEventType.js +41 -0
  266. package/lib/module/GAMAdEventType.js.map +1 -0
  267. package/lib/module/MaxAdContentRating.js +39 -0
  268. package/lib/module/MaxAdContentRating.js.map +1 -0
  269. package/lib/module/MobileAds.js +57 -0
  270. package/lib/module/MobileAds.js.map +1 -0
  271. package/lib/module/NativeAdEventType.js +46 -0
  272. package/lib/module/NativeAdEventType.js.map +1 -0
  273. package/lib/module/RewardedAdEventType.js +63 -0
  274. package/lib/module/RewardedAdEventType.js.map +1 -0
  275. package/lib/module/TestIds.js +62 -0
  276. package/lib/module/TestIds.js.map +1 -0
  277. package/lib/module/ads/AppOpenAd.js +48 -0
  278. package/lib/module/ads/AppOpenAd.js.map +1 -0
  279. package/lib/module/ads/BannerAd.js +39 -0
  280. package/lib/module/ads/BannerAd.js.map +1 -0
  281. package/lib/module/ads/BaseAd.js +149 -0
  282. package/lib/module/ads/BaseAd.js.map +1 -0
  283. package/lib/module/ads/GAMBannerAd.js +43 -0
  284. package/lib/module/ads/GAMBannerAd.js.map +1 -0
  285. package/lib/module/ads/GAMInterstitialAd.js +37 -0
  286. package/lib/module/ads/GAMInterstitialAd.js.map +1 -0
  287. package/lib/module/ads/InterstitialAd.js +110 -0
  288. package/lib/module/ads/InterstitialAd.js.map +1 -0
  289. package/lib/module/ads/MobileAd.js +148 -0
  290. package/lib/module/ads/MobileAd.js.map +1 -0
  291. package/lib/module/ads/RewardedAd.js +123 -0
  292. package/lib/module/ads/RewardedAd.js.map +1 -0
  293. package/lib/module/ads/RewardedInterstitialAd.js +123 -0
  294. package/lib/module/ads/RewardedInterstitialAd.js.map +1 -0
  295. package/lib/module/ads/native-ad/NativeAd.js +117 -0
  296. package/lib/module/ads/native-ad/NativeAd.js.map +1 -0
  297. package/lib/module/ads/native-ad/NativeAdContext.js +22 -0
  298. package/lib/module/ads/native-ad/NativeAdContext.js.map +1 -0
  299. package/lib/module/ads/native-ad/NativeAdView.js +45 -0
  300. package/lib/module/ads/native-ad/NativeAdView.js.map +1 -0
  301. package/lib/module/ads/native-ad/NativeAsset.js +65 -0
  302. package/lib/module/ads/native-ad/NativeAsset.js.map +1 -0
  303. package/lib/module/ads/native-ad/NativeMediaView.js +54 -0
  304. package/lib/module/ads/native-ad/NativeMediaView.js.map +1 -0
  305. package/lib/module/common/constants.js +13 -0
  306. package/lib/module/common/constants.js.map +1 -0
  307. package/lib/module/common/debounce.js +13 -0
  308. package/lib/module/common/debounce.js.map +1 -0
  309. package/lib/module/common/index.js +28 -0
  310. package/lib/module/common/index.js.map +1 -0
  311. package/lib/module/common/ref.js +41 -0
  312. package/lib/module/common/ref.js.map +1 -0
  313. package/lib/module/common/validate.js +119 -0
  314. package/lib/module/common/validate.js.map +1 -0
  315. package/lib/module/declarations.d.js +2 -0
  316. package/lib/module/declarations.d.js.map +1 -0
  317. package/lib/module/hooks/useAppOpenAd.js +40 -0
  318. package/lib/module/hooks/useAppOpenAd.js.map +1 -0
  319. package/lib/module/hooks/useForeground.js +42 -0
  320. package/lib/module/hooks/useForeground.js.map +1 -0
  321. package/lib/module/hooks/useFullScreenAd.js +117 -0
  322. package/lib/module/hooks/useFullScreenAd.js.map +1 -0
  323. package/lib/module/hooks/useInterstitialAd.js +40 -0
  324. package/lib/module/hooks/useInterstitialAd.js.map +1 -0
  325. package/lib/module/hooks/useRewardedAd.js +40 -0
  326. package/lib/module/hooks/useRewardedAd.js.map +1 -0
  327. package/lib/module/hooks/useRewardedInterstitialAd.js +40 -0
  328. package/lib/module/hooks/useRewardedInterstitialAd.js.map +1 -0
  329. package/lib/module/index.js +54 -0
  330. package/lib/module/index.js.map +1 -0
  331. package/lib/module/internal/GoogleMobileAdsNativeEventEmitter.js +49 -0
  332. package/lib/module/internal/GoogleMobileAdsNativeEventEmitter.js.map +1 -0
  333. package/lib/module/internal/NativeError.js +48 -0
  334. package/lib/module/internal/NativeError.js.map +1 -0
  335. package/lib/module/internal/SharedEventEmitter.js +22 -0
  336. package/lib/module/internal/SharedEventEmitter.js.map +1 -0
  337. package/lib/module/specs/components/GoogleMobileAdsBannerViewNativeComponent.ts +62 -0
  338. package/lib/module/specs/components/GoogleMobileAdsMediaViewNativeComponent.ts +30 -0
  339. package/lib/module/specs/components/GoogleMobileAdsNativeViewNativeComponent.ts +45 -0
  340. package/lib/module/specs/modules/NativeAppModule.js +21 -0
  341. package/lib/module/specs/modules/NativeAppModule.js.map +1 -0
  342. package/lib/module/specs/modules/NativeAppOpenModule.js +22 -0
  343. package/lib/module/specs/modules/NativeAppOpenModule.js.map +1 -0
  344. package/lib/module/specs/modules/NativeConsentModule.js +108 -0
  345. package/lib/module/specs/modules/NativeConsentModule.js.map +1 -0
  346. package/lib/module/specs/modules/NativeGoogleMobileAdsModule.js +22 -0
  347. package/lib/module/specs/modules/NativeGoogleMobileAdsModule.js.map +1 -0
  348. package/lib/module/specs/modules/NativeGoogleMobileAdsNativeModule.js +22 -0
  349. package/lib/module/specs/modules/NativeGoogleMobileAdsNativeModule.js.map +1 -0
  350. package/lib/module/specs/modules/NativeInterstitialModule.js +22 -0
  351. package/lib/module/specs/modules/NativeInterstitialModule.js.map +1 -0
  352. package/lib/module/specs/modules/NativeRewardedInterstitialModule.js +22 -0
  353. package/lib/module/specs/modules/NativeRewardedInterstitialModule.js.map +1 -0
  354. package/lib/module/specs/modules/NativeRewardedModule.js +22 -0
  355. package/lib/module/specs/modules/NativeRewardedModule.js.map +1 -0
  356. package/lib/module/types/AdEventListener.js +4 -0
  357. package/lib/module/types/AdEventListener.js.map +1 -0
  358. package/lib/module/types/AdEventsListener.js +4 -0
  359. package/lib/module/types/AdEventsListener.js.map +1 -0
  360. package/lib/module/types/AdShowOptions.js +2 -0
  361. package/lib/module/types/AdShowOptions.js.map +1 -0
  362. package/lib/module/types/AdStates.js +4 -0
  363. package/lib/module/types/AdStates.js.map +1 -0
  364. package/lib/module/types/AdapterStatus.js +18 -0
  365. package/lib/module/types/AdapterStatus.js.map +1 -0
  366. package/lib/module/types/AppEvent.js +2 -0
  367. package/lib/module/types/AppEvent.js.map +1 -0
  368. package/lib/module/types/BannerAdProps.js +4 -0
  369. package/lib/module/types/BannerAdProps.js.map +1 -0
  370. package/lib/module/types/MobileAd.interface.js +4 -0
  371. package/lib/module/types/MobileAd.interface.js.map +1 -0
  372. package/lib/module/types/MobileAdsModule.interface.js +4 -0
  373. package/lib/module/types/MobileAdsModule.interface.js.map +1 -0
  374. package/lib/module/types/NativeAdRequestOptions.js +34 -0
  375. package/lib/module/types/NativeAdRequestOptions.js.map +1 -0
  376. package/lib/module/types/PaidEventListener.js +4 -0
  377. package/lib/module/types/PaidEventListener.js.map +1 -0
  378. package/lib/module/types/RequestConfiguration.js +4 -0
  379. package/lib/module/types/RequestConfiguration.js.map +1 -0
  380. package/lib/module/types/RequestOptions.js +2 -0
  381. package/lib/module/types/RequestOptions.js.map +1 -0
  382. package/lib/module/types/RewardedAdReward.js +2 -0
  383. package/lib/module/types/RewardedAdReward.js.map +1 -0
  384. package/lib/module/types/index.js +32 -0
  385. package/lib/module/types/index.js.map +1 -0
  386. package/lib/module/validateAdRequestConfiguration.js +53 -0
  387. package/lib/module/validateAdRequestConfiguration.js.map +1 -0
  388. package/lib/module/validateAdRequestOptions.js +117 -0
  389. package/lib/module/validateAdRequestOptions.js.map +1 -0
  390. package/lib/module/validateAdShowOptions.js +37 -0
  391. package/lib/module/validateAdShowOptions.js.map +1 -0
  392. package/lib/module/validateNativeAdRequestOptions.js +47 -0
  393. package/lib/module/validateNativeAdRequestOptions.js.map +1 -0
  394. package/lib/module/version.js +5 -0
  395. package/lib/module/version.js.map +1 -0
  396. package/lib/typescript/AdEventType.d.ts +49 -0
  397. package/lib/typescript/AdEventType.d.ts.map +1 -0
  398. package/lib/typescript/AdsConsent.d.ts +3 -0
  399. package/lib/typescript/AdsConsent.d.ts.map +1 -0
  400. package/lib/typescript/AdsConsentPurposes.d.ts +149 -0
  401. package/lib/typescript/AdsConsentPurposes.d.ts.map +1 -0
  402. package/lib/typescript/AdsConsentSpecialFeatures.d.ts +23 -0
  403. package/lib/typescript/AdsConsentSpecialFeatures.d.ts.map +1 -0
  404. package/lib/typescript/BannerAdSize.d.ts +91 -0
  405. package/lib/typescript/BannerAdSize.d.ts.map +1 -0
  406. package/lib/typescript/GAMAdEventType.d.ts +21 -0
  407. package/lib/typescript/GAMAdEventType.d.ts.map +1 -0
  408. package/lib/typescript/MaxAdContentRating.d.ts +19 -0
  409. package/lib/typescript/MaxAdContentRating.d.ts.map +1 -0
  410. package/lib/typescript/MobileAds.d.ts +15 -0
  411. package/lib/typescript/MobileAds.d.ts.map +1 -0
  412. package/lib/typescript/NativeAdEventType.d.ts +43 -0
  413. package/lib/typescript/NativeAdEventType.d.ts.map +1 -0
  414. package/lib/typescript/RewardedAdEventType.d.ts +43 -0
  415. package/lib/typescript/RewardedAdEventType.d.ts.map +1 -0
  416. package/lib/typescript/TestIds.d.ts +19 -0
  417. package/lib/typescript/TestIds.d.ts.map +1 -0
  418. package/lib/typescript/ads/AppOpenAd.d.ts +12 -0
  419. package/lib/typescript/ads/AppOpenAd.d.ts.map +1 -0
  420. package/lib/typescript/ads/BannerAd.d.ts +8 -0
  421. package/lib/typescript/ads/BannerAd.d.ts.map +1 -0
  422. package/lib/typescript/ads/BaseAd.d.ts +4 -0
  423. package/lib/typescript/ads/BaseAd.d.ts.map +1 -0
  424. package/lib/typescript/ads/GAMBannerAd.d.ts +9 -0
  425. package/lib/typescript/ads/GAMBannerAd.d.ts.map +1 -0
  426. package/lib/typescript/ads/GAMInterstitialAd.d.ts +34 -0
  427. package/lib/typescript/ads/GAMInterstitialAd.d.ts.map +1 -0
  428. package/lib/typescript/ads/InterstitialAd.d.ts +73 -0
  429. package/lib/typescript/ads/InterstitialAd.d.ts.map +1 -0
  430. package/lib/typescript/ads/MobileAd.d.ts +54 -0
  431. package/lib/typescript/ads/MobileAd.d.ts.map +1 -0
  432. package/lib/typescript/ads/RewardedAd.d.ts +83 -0
  433. package/lib/typescript/ads/RewardedAd.d.ts.map +1 -0
  434. package/lib/typescript/ads/RewardedInterstitialAd.d.ts +83 -0
  435. package/lib/typescript/ads/RewardedInterstitialAd.d.ts.map +1 -0
  436. package/lib/typescript/ads/native-ad/NativeAd.d.ts +48 -0
  437. package/lib/typescript/ads/native-ad/NativeAd.d.ts.map +1 -0
  438. package/lib/typescript/ads/native-ad/NativeAdContext.d.ts +10 -0
  439. package/lib/typescript/ads/native-ad/NativeAdContext.d.ts.map +1 -0
  440. package/lib/typescript/ads/native-ad/NativeAdView.d.ts +8 -0
  441. package/lib/typescript/ads/native-ad/NativeAdView.d.ts.map +1 -0
  442. package/lib/typescript/ads/native-ad/NativeAsset.d.ts +18 -0
  443. package/lib/typescript/ads/native-ad/NativeAsset.d.ts.map +1 -0
  444. package/lib/typescript/ads/native-ad/NativeMediaView.d.ts +7 -0
  445. package/lib/typescript/ads/native-ad/NativeMediaView.d.ts.map +1 -0
  446. package/lib/typescript/common/constants.d.ts +7 -0
  447. package/lib/typescript/common/constants.d.ts.map +1 -0
  448. package/lib/typescript/common/debounce.d.ts +2 -0
  449. package/lib/typescript/common/debounce.d.ts.map +1 -0
  450. package/lib/typescript/common/index.d.ts +4 -0
  451. package/lib/typescript/common/index.d.ts.map +1 -0
  452. package/lib/typescript/common/ref.d.ts +13 -0
  453. package/lib/typescript/common/ref.d.ts.map +1 -0
  454. package/lib/typescript/common/validate.d.ts +62 -0
  455. package/lib/typescript/common/validate.d.ts.map +1 -0
  456. package/lib/typescript/hooks/useAppOpenAd.d.ts +10 -0
  457. package/lib/typescript/hooks/useAppOpenAd.d.ts.map +1 -0
  458. package/lib/typescript/hooks/useForeground.d.ts +7 -0
  459. package/lib/typescript/hooks/useForeground.d.ts.map +1 -0
  460. package/lib/typescript/hooks/useFullScreenAd.d.ts +7 -0
  461. package/lib/typescript/hooks/useFullScreenAd.d.ts.map +1 -0
  462. package/lib/typescript/hooks/useInterstitialAd.d.ts +10 -0
  463. package/lib/typescript/hooks/useInterstitialAd.d.ts.map +1 -0
  464. package/lib/typescript/hooks/useRewardedAd.d.ts +10 -0
  465. package/lib/typescript/hooks/useRewardedAd.d.ts.map +1 -0
  466. package/lib/typescript/hooks/useRewardedInterstitialAd.d.ts +10 -0
  467. package/lib/typescript/hooks/useRewardedInterstitialAd.d.ts.map +1 -0
  468. package/lib/typescript/index.d.ts +32 -0
  469. package/lib/typescript/index.d.ts.map +1 -0
  470. package/lib/typescript/internal/GoogleMobileAdsNativeEventEmitter.d.ts +13 -0
  471. package/lib/typescript/internal/GoogleMobileAdsNativeEventEmitter.d.ts.map +1 -0
  472. package/lib/typescript/internal/NativeError.d.ts +27 -0
  473. package/lib/typescript/internal/NativeError.d.ts.map +1 -0
  474. package/lib/typescript/internal/SharedEventEmitter.d.ts +3 -0
  475. package/lib/typescript/internal/SharedEventEmitter.d.ts.map +1 -0
  476. package/lib/typescript/specs/components/GoogleMobileAdsBannerViewNativeComponent.d.ts +35 -0
  477. package/lib/typescript/specs/components/GoogleMobileAdsBannerViewNativeComponent.d.ts.map +1 -0
  478. package/lib/typescript/specs/components/GoogleMobileAdsMediaViewNativeComponent.d.ts +9 -0
  479. package/lib/typescript/specs/components/GoogleMobileAdsMediaViewNativeComponent.d.ts.map +1 -0
  480. package/lib/typescript/specs/components/GoogleMobileAdsNativeViewNativeComponent.d.ts +14 -0
  481. package/lib/typescript/specs/components/GoogleMobileAdsNativeViewNativeComponent.d.ts.map +1 -0
  482. package/lib/typescript/specs/modules/NativeAppModule.d.ts +23 -0
  483. package/lib/typescript/specs/modules/NativeAppModule.d.ts.map +1 -0
  484. package/lib/typescript/specs/modules/NativeAppOpenModule.d.ts +25 -0
  485. package/lib/typescript/specs/modules/NativeAppOpenModule.d.ts.map +1 -0
  486. package/lib/typescript/specs/modules/NativeConsentModule.d.ts +498 -0
  487. package/lib/typescript/specs/modules/NativeConsentModule.d.ts.map +1 -0
  488. package/lib/typescript/specs/modules/NativeGoogleMobileAdsModule.d.ts +14 -0
  489. package/lib/typescript/specs/modules/NativeGoogleMobileAdsModule.d.ts.map +1 -0
  490. package/lib/typescript/specs/modules/NativeGoogleMobileAdsNativeModule.d.ts +42 -0
  491. package/lib/typescript/specs/modules/NativeGoogleMobileAdsNativeModule.d.ts.map +1 -0
  492. package/lib/typescript/specs/modules/NativeInterstitialModule.d.ts +25 -0
  493. package/lib/typescript/specs/modules/NativeInterstitialModule.d.ts.map +1 -0
  494. package/lib/typescript/specs/modules/NativeRewardedInterstitialModule.d.ts +25 -0
  495. package/lib/typescript/specs/modules/NativeRewardedInterstitialModule.d.ts.map +1 -0
  496. package/lib/typescript/specs/modules/NativeRewardedModule.d.ts +25 -0
  497. package/lib/typescript/specs/modules/NativeRewardedModule.d.ts.map +1 -0
  498. package/lib/typescript/types/AdEventListener.d.ts +8 -0
  499. package/lib/typescript/types/AdEventListener.d.ts.map +1 -0
  500. package/lib/typescript/types/AdEventsListener.d.ts +9 -0
  501. package/lib/typescript/types/AdEventsListener.d.ts.map +1 -0
  502. package/lib/typescript/types/AdShowOptions.d.ts +13 -0
  503. package/lib/typescript/types/AdShowOptions.d.ts.map +1 -0
  504. package/lib/typescript/types/AdStates.d.ts +91 -0
  505. package/lib/typescript/types/AdStates.d.ts.map +1 -0
  506. package/lib/typescript/types/AdapterStatus.d.ts +19 -0
  507. package/lib/typescript/types/AdapterStatus.d.ts.map +1 -0
  508. package/lib/typescript/types/AppEvent.d.ts +14 -0
  509. package/lib/typescript/types/AppEvent.d.ts.map +1 -0
  510. package/lib/typescript/types/BannerAdProps.d.ts +175 -0
  511. package/lib/typescript/types/BannerAdProps.d.ts.map +1 -0
  512. package/lib/typescript/types/MobileAd.interface.d.ts +90 -0
  513. package/lib/typescript/types/MobileAd.interface.d.ts.map +1 -0
  514. package/lib/typescript/types/MobileAdsModule.interface.d.ts +75 -0
  515. package/lib/typescript/types/MobileAdsModule.interface.d.ts.map +1 -0
  516. package/lib/typescript/types/NativeAdRequestOptions.d.ts +36 -0
  517. package/lib/typescript/types/NativeAdRequestOptions.d.ts.map +1 -0
  518. package/lib/typescript/types/PaidEventListener.d.ts +8 -0
  519. package/lib/typescript/types/PaidEventListener.d.ts.map +1 -0
  520. package/lib/typescript/types/RequestConfiguration.d.ts +37 -0
  521. package/lib/typescript/types/RequestConfiguration.d.ts.map +1 -0
  522. package/lib/typescript/types/RequestOptions.d.ts +133 -0
  523. package/lib/typescript/types/RequestOptions.d.ts.map +1 -0
  524. package/lib/typescript/types/RewardedAdReward.d.ts +14 -0
  525. package/lib/typescript/types/RewardedAdReward.d.ts.map +1 -0
  526. package/lib/typescript/types/index.d.ts +13 -0
  527. package/lib/typescript/types/index.d.ts.map +1 -0
  528. package/lib/typescript/validateAdRequestConfiguration.d.ts +3 -0
  529. package/lib/typescript/validateAdRequestConfiguration.d.ts.map +1 -0
  530. package/lib/typescript/validateAdRequestOptions.d.ts +3 -0
  531. package/lib/typescript/validateAdRequestOptions.d.ts.map +1 -0
  532. package/lib/typescript/validateAdShowOptions.d.ts +3 -0
  533. package/lib/typescript/validateAdShowOptions.d.ts.map +1 -0
  534. package/lib/typescript/validateNativeAdRequestOptions.d.ts +3 -0
  535. package/lib/typescript/validateNativeAdRequestOptions.d.ts.map +1 -0
  536. package/lib/typescript/version.d.ts +2 -0
  537. package/lib/typescript/version.d.ts.map +1 -0
  538. package/package.json +176 -0
  539. package/plugin/__tests__/__snapshots__/plugin.test.ts.snap +739 -0
  540. package/plugin/__tests__/fixtures/app.config.js +24 -0
  541. package/plugin/__tests__/fixtures/app.config.ts +24 -0
  542. package/plugin/__tests__/fixtures/app.json +24 -0
  543. package/plugin/__tests__/fixtures/package.json +19 -0
  544. package/plugin/__tests__/fixtures/without-params/app.config.js +11 -0
  545. package/plugin/__tests__/fixtures/without-params/app.config.ts +11 -0
  546. package/plugin/__tests__/fixtures/without-params/app.json +11 -0
  547. package/plugin/__tests__/plugin.test.ts +115 -0
  548. package/plugin/build/index.d.ts +12 -0
  549. package/plugin/build/index.js +109 -0
  550. package/plugin/jest.config.js +1 -0
  551. package/plugin/src/index.ts +205 -0
  552. package/plugin/tsconfig.json +9 -0
  553. package/plugin/tsconfig.tsbuildinfo +1 -0
  554. package/react-native.config.js +19 -0
  555. package/src/AdEventType.ts +70 -0
  556. package/src/AdsConsent.ts +170 -0
  557. package/src/AdsConsentPurposes.ts +182 -0
  558. package/src/AdsConsentSpecialFeatures.ts +48 -0
  559. package/src/BannerAdSize.ts +78 -0
  560. package/src/GAMAdEventType.ts +37 -0
  561. package/src/MaxAdContentRating.ts +38 -0
  562. package/src/MobileAds.ts +77 -0
  563. package/src/NativeAdEventType.ts +51 -0
  564. package/src/RewardedAdEventType.ts +60 -0
  565. package/src/TestIds.ts +60 -0
  566. package/src/ads/AppOpenAd.ts +62 -0
  567. package/src/ads/BannerAd.tsx +37 -0
  568. package/src/ads/BaseAd.tsx +185 -0
  569. package/src/ads/GAMBannerAd.tsx +43 -0
  570. package/src/ads/GAMInterstitialAd.ts +45 -0
  571. package/src/ads/InterstitialAd.ts +122 -0
  572. package/src/ads/MobileAd.ts +227 -0
  573. package/src/ads/RewardedAd.ts +142 -0
  574. package/src/ads/RewardedInterstitialAd.ts +144 -0
  575. package/src/ads/native-ad/NativeAd.ts +159 -0
  576. package/src/ads/native-ad/NativeAdContext.ts +26 -0
  577. package/src/ads/native-ad/NativeAdView.tsx +43 -0
  578. package/src/ads/native-ad/NativeAsset.tsx +66 -0
  579. package/src/ads/native-ad/NativeMediaView.tsx +44 -0
  580. package/src/common/constants.ts +9 -0
  581. package/src/common/debounce.ts +15 -0
  582. package/src/common/index.ts +30 -0
  583. package/src/common/ref.ts +46 -0
  584. package/src/common/validate.ts +116 -0
  585. package/src/declarations.d.ts +3 -0
  586. package/src/hooks/useAppOpenAd.ts +46 -0
  587. package/src/hooks/useForeground.ts +41 -0
  588. package/src/hooks/useFullScreenAd.ts +112 -0
  589. package/src/hooks/useInterstitialAd.ts +46 -0
  590. package/src/hooks/useRewardedAd.ts +46 -0
  591. package/src/hooks/useRewardedInterstitialAd.ts +47 -0
  592. package/src/index.ts +60 -0
  593. package/src/internal/GoogleMobileAdsNativeEventEmitter.ts +58 -0
  594. package/src/internal/NativeError.ts +56 -0
  595. package/src/internal/SharedEventEmitter.ts +20 -0
  596. package/src/specs/components/GoogleMobileAdsBannerViewNativeComponent.ts +62 -0
  597. package/src/specs/components/GoogleMobileAdsMediaViewNativeComponent.ts +30 -0
  598. package/src/specs/components/GoogleMobileAdsNativeViewNativeComponent.ts +45 -0
  599. package/src/specs/modules/NativeAppModule.ts +57 -0
  600. package/src/specs/modules/NativeAppOpenModule.ts +26 -0
  601. package/src/specs/modules/NativeConsentModule.ts +532 -0
  602. package/src/specs/modules/NativeGoogleMobileAdsModule.ts +33 -0
  603. package/src/specs/modules/NativeGoogleMobileAdsNativeModule.ts +70 -0
  604. package/src/specs/modules/NativeInterstitialModule.ts +26 -0
  605. package/src/specs/modules/NativeRewardedInterstitialModule.ts +32 -0
  606. package/src/specs/modules/NativeRewardedModule.ts +26 -0
  607. package/src/types/AdEventListener.ts +34 -0
  608. package/src/types/AdEventsListener.ts +24 -0
  609. package/src/types/AdShowOptions.ts +12 -0
  610. package/src/types/AdStates.ts +92 -0
  611. package/src/types/AdapterStatus.ts +20 -0
  612. package/src/types/AppEvent.ts +14 -0
  613. package/src/types/BannerAdProps.ts +184 -0
  614. package/src/types/MobileAd.interface.ts +113 -0
  615. package/src/types/MobileAdsModule.interface.ts +80 -0
  616. package/src/types/NativeAdRequestOptions.ts +55 -0
  617. package/src/types/PaidEventListener.ts +9 -0
  618. package/src/types/RequestConfiguration.ts +40 -0
  619. package/src/types/RequestOptions.ts +137 -0
  620. package/src/types/RewardedAdReward.ts +14 -0
  621. package/src/types/index.ts +29 -0
  622. package/src/validateAdRequestConfiguration.ts +66 -0
  623. package/src/validateAdRequestOptions.ts +154 -0
  624. package/src/validateAdShowOptions.ts +41 -0
  625. package/src/validateNativeAdRequestOptions.ts +50 -0
  626. 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