react-native-google-mobile-ads 4.1.0

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 (373) hide show
  1. package/LICENSE +32 -0
  2. package/README.md +65 -0
  3. package/RNGoogleMobileAds.podspec +42 -0
  4. package/__tests__/consent.test.ts +25 -0
  5. package/__tests__/googleMobileAds.test.ts +63 -0
  6. package/__tests__/interstitial.test.ts +53 -0
  7. package/__tests__/requestOptions.test.tsx +4 -0
  8. package/__tests__/rewarded.test.tsx +4 -0
  9. package/__tests__/showOptions.test.tsx +4 -0
  10. package/android/.editorconfig +10 -0
  11. package/android/app-json.gradle +69 -0
  12. package/android/build.gradle +98 -0
  13. package/android/lint.xml +5 -0
  14. package/android/settings.gradle +1 -0
  15. package/android/src/main/AndroidManifest.xml +17 -0
  16. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeAppModule.java +169 -0
  17. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsAppOpenModule.java +161 -0
  18. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsBannerAdViewManager.java +209 -0
  19. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsCommon.java +256 -0
  20. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsConsentModule.java +226 -0
  21. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsEvent.java +72 -0
  22. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsInterstitialModule.java +159 -0
  23. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsModule.java +143 -0
  24. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsPackage.java +48 -0
  25. package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsRewardedModule.java +177 -0
  26. package/android/src/main/java/io/invertase/googlemobileads/common/RCTConvert.java +111 -0
  27. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeApp.java +34 -0
  28. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeEvent.java +41 -0
  29. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeEventEmitter.java +150 -0
  30. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeInitProvider.java +77 -0
  31. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeJSON.java +107 -0
  32. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeMeta.java +92 -0
  33. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativeModule.java +96 -0
  34. package/android/src/main/java/io/invertase/googlemobileads/common/ReactNativePreferences.java +86 -0
  35. package/android/src/main/java/io/invertase/googlemobileads/common/SharedUtils.java +427 -0
  36. package/android/src/main/java/io/invertase/googlemobileads/common/TaskExecutorService.java +124 -0
  37. package/android/src/main/java/io/invertase/googlemobileads/interfaces/ContextProvider.java +30 -0
  38. package/android/src/main/java/io/invertase/googlemobileads/interfaces/NativeError.java +28 -0
  39. package/android/src/main/java/io/invertase/googlemobileads/interfaces/NativeEvent.java +26 -0
  40. package/babel.config.js +18 -0
  41. package/docs/displaying-ads.mdx +319 -0
  42. package/docs/european-user-consent.mdx +258 -0
  43. package/docs/img/logo_admob_192px.svg +19 -0
  44. package/docs/index.mdx +168 -0
  45. package/docs.json +9 -0
  46. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsAppOpenModule.h +29 -0
  47. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsAppOpenModule.m +98 -0
  48. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerViewManager.h +23 -0
  49. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerViewManager.m +153 -0
  50. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.h +60 -0
  51. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.m +201 -0
  52. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsConsentModule.h +26 -0
  53. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsConsentModule.m +179 -0
  54. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.h +32 -0
  55. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.m +57 -0
  56. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsInterstitialModule.h +25 -0
  57. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsInterstitialModule.m +124 -0
  58. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.h +24 -0
  59. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.m +104 -0
  60. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedModule.h +25 -0
  61. package/ios/RNGoogleMobileAds/RNGoogleMobileAdsRewardedModule.m +173 -0
  62. package/ios/RNGoogleMobileAds/common/RNAppModule.h +24 -0
  63. package/ios/RNGoogleMobileAds/common/RNAppModule.m +158 -0
  64. package/ios/RNGoogleMobileAds/common/RNJSON.h +34 -0
  65. package/ios/RNGoogleMobileAds/common/RNJSON.m +93 -0
  66. package/ios/RNGoogleMobileAds/common/RNMeta.h +30 -0
  67. package/ios/RNGoogleMobileAds/common/RNMeta.m +61 -0
  68. package/ios/RNGoogleMobileAds/common/RNPreferences.h +44 -0
  69. package/ios/RNGoogleMobileAds/common/RNPreferences.m +94 -0
  70. package/ios/RNGoogleMobileAds/common/RNRCTEventEmitter.h +73 -0
  71. package/ios/RNGoogleMobileAds/common/RNRCTEventEmitter.m +150 -0
  72. package/ios/RNGoogleMobileAds/common/RNSharedUtils.h +48 -0
  73. package/ios/RNGoogleMobileAds/common/RNSharedUtils.m +56 -0
  74. package/ios/RNGoogleMobileAds.xcodeproj/project.pbxproj +377 -0
  75. package/ios/RNGoogleMobileAds.xcodeproj/xcshareddata/IDETemplateMacros.plist +24 -0
  76. package/ios_config.sh +140 -0
  77. package/jest.config.js +6 -0
  78. package/jest.setup.ts +29 -0
  79. package/lib/commonjs/AdEventType.js +34 -0
  80. package/lib/commonjs/AdEventType.js.map +1 -0
  81. package/lib/commonjs/AdsConsent.js +160 -0
  82. package/lib/commonjs/AdsConsent.js.map +1 -0
  83. package/lib/commonjs/AdsConsentDebugGeography.js +38 -0
  84. package/lib/commonjs/AdsConsentDebugGeography.js.map +1 -0
  85. package/lib/commonjs/AdsConsentStatus.js +36 -0
  86. package/lib/commonjs/AdsConsentStatus.js.map +1 -0
  87. package/lib/commonjs/BannerAdSize.js +38 -0
  88. package/lib/commonjs/BannerAdSize.js.map +1 -0
  89. package/lib/commonjs/MaxAdContentRating.js +33 -0
  90. package/lib/commonjs/MaxAdContentRating.js.map +1 -0
  91. package/lib/commonjs/MobileAds.js +67 -0
  92. package/lib/commonjs/MobileAds.js.map +1 -0
  93. package/lib/commonjs/RewardedAdEventType.js +31 -0
  94. package/lib/commonjs/RewardedAdEventType.js.map +1 -0
  95. package/lib/commonjs/TestIds.js +47 -0
  96. package/lib/commonjs/TestIds.js.map +1 -0
  97. package/lib/commonjs/ads/AppOpenAd.js +96 -0
  98. package/lib/commonjs/ads/AppOpenAd.js.map +1 -0
  99. package/lib/commonjs/ads/BannerAd.js +128 -0
  100. package/lib/commonjs/ads/BannerAd.js.map +1 -0
  101. package/lib/commonjs/ads/InterstitialAd.js +163 -0
  102. package/lib/commonjs/ads/InterstitialAd.js.map +1 -0
  103. package/lib/commonjs/ads/MobileAd.js +90 -0
  104. package/lib/commonjs/ads/MobileAd.js.map +1 -0
  105. package/lib/commonjs/ads/RewardedAd.js +169 -0
  106. package/lib/commonjs/ads/RewardedAd.js.map +1 -0
  107. package/lib/commonjs/common/Base64.js +121 -0
  108. package/lib/commonjs/common/Base64.js.map +1 -0
  109. package/lib/commonjs/common/MutatableParams.js +46 -0
  110. package/lib/commonjs/common/MutatableParams.js.map +1 -0
  111. package/lib/commonjs/common/ReferenceBase.js +59 -0
  112. package/lib/commonjs/common/ReferenceBase.js.map +1 -0
  113. package/lib/commonjs/common/deeps.js +101 -0
  114. package/lib/commonjs/common/deeps.js.map +1 -0
  115. package/lib/commonjs/common/id.js +82 -0
  116. package/lib/commonjs/common/id.js.map +1 -0
  117. package/lib/commonjs/common/index.js +212 -0
  118. package/lib/commonjs/common/index.js.map +1 -0
  119. package/lib/commonjs/common/path.js +144 -0
  120. package/lib/commonjs/common/path.js.map +1 -0
  121. package/lib/commonjs/common/promise.js +70 -0
  122. package/lib/commonjs/common/promise.js.map +1 -0
  123. package/lib/commonjs/common/serialize.js +52 -0
  124. package/lib/commonjs/common/serialize.js.map +1 -0
  125. package/lib/commonjs/common/validate.js +239 -0
  126. package/lib/commonjs/common/validate.js.map +1 -0
  127. package/lib/commonjs/declarations.d.js +2 -0
  128. package/lib/commonjs/declarations.d.js.map +1 -0
  129. package/lib/commonjs/index.js +143 -0
  130. package/lib/commonjs/index.js.map +1 -0
  131. package/lib/commonjs/internal/GoogleMobileAdsNativeEventEmitter.js +76 -0
  132. package/lib/commonjs/internal/GoogleMobileAdsNativeEventEmitter.js.map +1 -0
  133. package/lib/commonjs/internal/Module.js +60 -0
  134. package/lib/commonjs/internal/Module.js.map +1 -0
  135. package/lib/commonjs/internal/NativeError.js +70 -0
  136. package/lib/commonjs/internal/NativeError.js.map +1 -0
  137. package/lib/commonjs/internal/SharedEventEmitter.js +31 -0
  138. package/lib/commonjs/internal/SharedEventEmitter.js.map +1 -0
  139. package/lib/commonjs/internal/constants.js +30 -0
  140. package/lib/commonjs/internal/constants.js.map +1 -0
  141. package/lib/commonjs/internal/index.js +49 -0
  142. package/lib/commonjs/internal/index.js.map +1 -0
  143. package/lib/commonjs/internal/registry/nativeModule.js +231 -0
  144. package/lib/commonjs/internal/registry/nativeModule.js.map +1 -0
  145. package/lib/commonjs/types/AdEventListener.js +6 -0
  146. package/lib/commonjs/types/AdEventListener.js.map +1 -0
  147. package/lib/commonjs/types/AdShowOptions.js +2 -0
  148. package/lib/commonjs/types/AdShowOptions.js.map +1 -0
  149. package/lib/commonjs/types/AdapterStatus.js +18 -0
  150. package/lib/commonjs/types/AdapterStatus.js.map +1 -0
  151. package/lib/commonjs/types/AdsConsent.interface.js +6 -0
  152. package/lib/commonjs/types/AdsConsent.interface.js.map +1 -0
  153. package/lib/commonjs/types/BannerAdProps.js +6 -0
  154. package/lib/commonjs/types/BannerAdProps.js.map +1 -0
  155. package/lib/commonjs/types/GoogleMobileAdsNativeModule.js +6 -0
  156. package/lib/commonjs/types/GoogleMobileAdsNativeModule.js.map +1 -0
  157. package/lib/commonjs/types/MobileAd.interface.js +6 -0
  158. package/lib/commonjs/types/MobileAd.interface.js.map +1 -0
  159. package/lib/commonjs/types/MobileAdsModule.interface.js +6 -0
  160. package/lib/commonjs/types/MobileAdsModule.interface.js.map +1 -0
  161. package/lib/commonjs/types/Module.interface.js +2 -0
  162. package/lib/commonjs/types/Module.interface.js.map +1 -0
  163. package/lib/commonjs/types/RequestConfiguration.js +6 -0
  164. package/lib/commonjs/types/RequestConfiguration.js.map +1 -0
  165. package/lib/commonjs/types/RequestOptions.js +2 -0
  166. package/lib/commonjs/types/RequestOptions.js.map +1 -0
  167. package/lib/commonjs/types/RewardedAdReward.js +2 -0
  168. package/lib/commonjs/types/RewardedAdReward.js.map +1 -0
  169. package/lib/commonjs/validateAdRequestConfiguration.js +69 -0
  170. package/lib/commonjs/validateAdRequestConfiguration.js.map +1 -0
  171. package/lib/commonjs/validateAdRequestOptions.js +158 -0
  172. package/lib/commonjs/validateAdRequestOptions.js.map +1 -0
  173. package/lib/commonjs/validateAdShowOptions.js +47 -0
  174. package/lib/commonjs/validateAdShowOptions.js.map +1 -0
  175. package/lib/commonjs/version.js +10 -0
  176. package/lib/commonjs/version.js.map +1 -0
  177. package/lib/module/AdEventType.js +26 -0
  178. package/lib/module/AdEventType.js.map +1 -0
  179. package/lib/module/AdsConsent.js +148 -0
  180. package/lib/module/AdsConsent.js.map +1 -0
  181. package/lib/module/AdsConsentDebugGeography.js +30 -0
  182. package/lib/module/AdsConsentDebugGeography.js.map +1 -0
  183. package/lib/module/AdsConsentStatus.js +28 -0
  184. package/lib/module/AdsConsentStatus.js.map +1 -0
  185. package/lib/module/BannerAdSize.js +30 -0
  186. package/lib/module/BannerAdSize.js.map +1 -0
  187. package/lib/module/MaxAdContentRating.js +25 -0
  188. package/lib/module/MaxAdContentRating.js.map +1 -0
  189. package/lib/module/MobileAds.js +53 -0
  190. package/lib/module/MobileAds.js.map +1 -0
  191. package/lib/module/RewardedAdEventType.js +23 -0
  192. package/lib/module/RewardedAdEventType.js.map +1 -0
  193. package/lib/module/TestIds.js +38 -0
  194. package/lib/module/TestIds.js.map +1 -0
  195. package/lib/module/ads/AppOpenAd.js +81 -0
  196. package/lib/module/ads/AppOpenAd.js.map +1 -0
  197. package/lib/module/ads/BannerAd.js +108 -0
  198. package/lib/module/ads/BannerAd.js.map +1 -0
  199. package/lib/module/ads/InterstitialAd.js +149 -0
  200. package/lib/module/ads/InterstitialAd.js.map +1 -0
  201. package/lib/module/ads/MobileAd.js +94 -0
  202. package/lib/module/ads/MobileAd.js.map +1 -0
  203. package/lib/module/ads/RewardedAd.js +155 -0
  204. package/lib/module/ads/RewardedAd.js.map +1 -0
  205. package/lib/module/common/Base64.js +106 -0
  206. package/lib/module/common/Base64.js.map +1 -0
  207. package/lib/module/common/MutatableParams.js +52 -0
  208. package/lib/module/common/MutatableParams.js.map +1 -0
  209. package/lib/module/common/ReferenceBase.js +50 -0
  210. package/lib/module/common/ReferenceBase.js.map +1 -0
  211. package/lib/module/common/deeps.js +91 -0
  212. package/lib/module/common/deeps.js.map +1 -0
  213. package/lib/module/common/id.js +74 -0
  214. package/lib/module/common/id.js.map +1 -0
  215. package/lib/module/common/index.js +109 -0
  216. package/lib/module/common/index.js.map +1 -0
  217. package/lib/module/common/path.js +120 -0
  218. package/lib/module/common/path.js.map +1 -0
  219. package/lib/module/common/promise.js +60 -0
  220. package/lib/module/common/promise.js.map +1 -0
  221. package/lib/module/common/serialize.js +41 -0
  222. package/lib/module/common/serialize.js.map +1 -0
  223. package/lib/module/common/validate.js +197 -0
  224. package/lib/module/common/validate.js.map +1 -0
  225. package/lib/module/declarations.d.js +2 -0
  226. package/lib/module/declarations.d.js.map +1 -0
  227. package/lib/module/index.js +33 -0
  228. package/lib/module/index.js.map +1 -0
  229. package/lib/module/internal/GoogleMobileAdsNativeEventEmitter.js +83 -0
  230. package/lib/module/internal/GoogleMobileAdsNativeEventEmitter.js.map +1 -0
  231. package/lib/module/internal/Module.js +64 -0
  232. package/lib/module/internal/Module.js.map +1 -0
  233. package/lib/module/internal/NativeError.js +61 -0
  234. package/lib/module/internal/NativeError.js.map +1 -0
  235. package/lib/module/internal/SharedEventEmitter.js +20 -0
  236. package/lib/module/internal/SharedEventEmitter.js.map +1 -0
  237. package/lib/module/internal/constants.js +20 -0
  238. package/lib/module/internal/constants.js.map +1 -0
  239. package/lib/module/internal/index.js +21 -0
  240. package/lib/module/internal/index.js.map +1 -0
  241. package/lib/module/internal/registry/nativeModule.js +215 -0
  242. package/lib/module/internal/registry/nativeModule.js.map +1 -0
  243. package/lib/module/types/AdEventListener.js +2 -0
  244. package/lib/module/types/AdEventListener.js.map +1 -0
  245. package/lib/module/types/AdShowOptions.js +2 -0
  246. package/lib/module/types/AdShowOptions.js.map +1 -0
  247. package/lib/module/types/AdapterStatus.js +10 -0
  248. package/lib/module/types/AdapterStatus.js.map +1 -0
  249. package/lib/module/types/AdsConsent.interface.js +2 -0
  250. package/lib/module/types/AdsConsent.interface.js.map +1 -0
  251. package/lib/module/types/BannerAdProps.js +2 -0
  252. package/lib/module/types/BannerAdProps.js.map +1 -0
  253. package/lib/module/types/GoogleMobileAdsNativeModule.js +2 -0
  254. package/lib/module/types/GoogleMobileAdsNativeModule.js.map +1 -0
  255. package/lib/module/types/MobileAd.interface.js +2 -0
  256. package/lib/module/types/MobileAd.interface.js.map +1 -0
  257. package/lib/module/types/MobileAdsModule.interface.js +2 -0
  258. package/lib/module/types/MobileAdsModule.interface.js.map +1 -0
  259. package/lib/module/types/Module.interface.js +2 -0
  260. package/lib/module/types/Module.interface.js.map +1 -0
  261. package/lib/module/types/RequestConfiguration.js +2 -0
  262. package/lib/module/types/RequestConfiguration.js.map +1 -0
  263. package/lib/module/types/RequestOptions.js +2 -0
  264. package/lib/module/types/RequestOptions.js.map +1 -0
  265. package/lib/module/types/RewardedAdReward.js +2 -0
  266. package/lib/module/types/RewardedAdReward.js.map +1 -0
  267. package/lib/module/validateAdRequestConfiguration.js +60 -0
  268. package/lib/module/validateAdRequestConfiguration.js.map +1 -0
  269. package/lib/module/validateAdRequestOptions.js +150 -0
  270. package/lib/module/validateAdRequestOptions.js.map +1 -0
  271. package/lib/module/validateAdShowOptions.js +39 -0
  272. package/lib/module/validateAdShowOptions.js.map +1 -0
  273. package/lib/module/version.js +3 -0
  274. package/lib/module/version.js.map +1 -0
  275. package/lib/typescript/AdEventType.d.ts +47 -0
  276. package/lib/typescript/AdsConsent.d.ts +2 -0
  277. package/lib/typescript/AdsConsentDebugGeography.d.ts +19 -0
  278. package/lib/typescript/AdsConsentStatus.d.ts +17 -0
  279. package/lib/typescript/BannerAdSize.d.ts +34 -0
  280. package/lib/typescript/MaxAdContentRating.d.ts +18 -0
  281. package/lib/typescript/MobileAds.d.ts +11 -0
  282. package/lib/typescript/RewardedAdEventType.d.ts +46 -0
  283. package/lib/typescript/TestIds.d.ts +6 -0
  284. package/lib/typescript/ads/AppOpenAd.d.ts +11 -0
  285. package/lib/typescript/ads/BannerAd.d.ts +3 -0
  286. package/lib/typescript/ads/InterstitialAd.d.ts +78 -0
  287. package/lib/typescript/ads/MobileAd.d.ts +32 -0
  288. package/lib/typescript/ads/RewardedAd.d.ts +84 -0
  289. package/lib/typescript/common/Base64.d.ts +14 -0
  290. package/lib/typescript/common/MutatableParams.d.ts +9 -0
  291. package/lib/typescript/common/ReferenceBase.d.ts +11 -0
  292. package/lib/typescript/common/deeps.d.ts +18 -0
  293. package/lib/typescript/common/id.d.ts +11 -0
  294. package/lib/typescript/common/index.d.ts +28 -0
  295. package/lib/typescript/common/path.d.ts +43 -0
  296. package/lib/typescript/common/promise.d.ts +13 -0
  297. package/lib/typescript/common/serialize.d.ts +5 -0
  298. package/lib/typescript/common/validate.d.ts +90 -0
  299. package/lib/typescript/index.d.ts +14 -0
  300. package/lib/typescript/internal/GoogleMobileAdsNativeEventEmitter.d.ts +12 -0
  301. package/lib/typescript/internal/Module.d.ts +13 -0
  302. package/lib/typescript/internal/NativeError.d.ts +26 -0
  303. package/lib/typescript/internal/SharedEventEmitter.d.ts +2 -0
  304. package/lib/typescript/internal/constants.d.ts +3 -0
  305. package/lib/typescript/internal/index.d.ts +4 -0
  306. package/lib/typescript/internal/registry/nativeModule.d.ts +15 -0
  307. package/lib/typescript/types/AdEventListener.d.ts +11 -0
  308. package/lib/typescript/types/AdShowOptions.d.ts +12 -0
  309. package/lib/typescript/types/AdapterStatus.d.ts +18 -0
  310. package/lib/typescript/types/AdsConsent.interface.d.ts +286 -0
  311. package/lib/typescript/types/BannerAdProps.d.ts +66 -0
  312. package/lib/typescript/types/GoogleMobileAdsNativeModule.d.ts +14 -0
  313. package/lib/typescript/types/MobileAd.interface.d.ts +64 -0
  314. package/lib/typescript/types/MobileAdsModule.interface.d.ts +38 -0
  315. package/lib/typescript/types/Module.interface.d.ts +14 -0
  316. package/lib/typescript/types/RequestConfiguration.d.ts +36 -0
  317. package/lib/typescript/types/RequestOptions.d.ts +106 -0
  318. package/lib/typescript/types/RewardedAdReward.d.ts +13 -0
  319. package/lib/typescript/validateAdRequestConfiguration.d.ts +2 -0
  320. package/lib/typescript/validateAdRequestOptions.d.ts +2 -0
  321. package/lib/typescript/validateAdShowOptions.d.ts +2 -0
  322. package/lib/typescript/version.d.ts +1 -0
  323. package/package.json +143 -0
  324. package/react-native.config.js +19 -0
  325. package/src/AdEventType.ts +68 -0
  326. package/src/AdsConsent.ts +191 -0
  327. package/src/AdsConsentDebugGeography.ts +38 -0
  328. package/src/AdsConsentStatus.ts +36 -0
  329. package/src/BannerAdSize.ts +59 -0
  330. package/src/MaxAdContentRating.ts +38 -0
  331. package/src/MobileAds.ts +84 -0
  332. package/src/RewardedAdEventType.ts +64 -0
  333. package/src/TestIds.ts +39 -0
  334. package/src/ads/AppOpenAd.ts +85 -0
  335. package/src/ads/BannerAd.tsx +126 -0
  336. package/src/ads/InterstitialAd.ts +156 -0
  337. package/src/ads/MobileAd.ts +101 -0
  338. package/src/ads/RewardedAd.ts +161 -0
  339. package/src/common/Base64.ts +114 -0
  340. package/src/common/MutatableParams.ts +50 -0
  341. package/src/common/ReferenceBase.ts +45 -0
  342. package/src/common/deeps.ts +88 -0
  343. package/src/common/id.ts +74 -0
  344. package/src/common/index.ts +103 -0
  345. package/src/common/path.ts +114 -0
  346. package/src/common/promise.ts +66 -0
  347. package/src/common/serialize.ts +43 -0
  348. package/src/common/validate.ts +205 -0
  349. package/src/declarations.d.ts +3 -0
  350. package/src/index.ts +35 -0
  351. package/src/internal/GoogleMobileAdsNativeEventEmitter.ts +81 -0
  352. package/src/internal/Module.ts +58 -0
  353. package/src/internal/NativeError.ts +56 -0
  354. package/src/internal/SharedEventEmitter.ts +22 -0
  355. package/src/internal/constants.ts +43 -0
  356. package/src/internal/index.ts +21 -0
  357. package/src/internal/registry/nativeModule.ts +226 -0
  358. package/src/types/AdEventListener.ts +16 -0
  359. package/src/types/AdShowOptions.ts +12 -0
  360. package/src/types/AdapterStatus.ts +20 -0
  361. package/src/types/AdsConsent.interface.ts +306 -0
  362. package/src/types/BannerAdProps.ts +73 -0
  363. package/src/types/GoogleMobileAdsNativeModule.ts +15 -0
  364. package/src/types/MobileAd.interface.ts +69 -0
  365. package/src/types/MobileAdsModule.interface.ts +43 -0
  366. package/src/types/Module.interface.ts +16 -0
  367. package/src/types/RequestConfiguration.ts +40 -0
  368. package/src/types/RequestOptions.ts +113 -0
  369. package/src/types/RewardedAdReward.ts +14 -0
  370. package/src/validateAdRequestConfiguration.ts +71 -0
  371. package/src/validateAdRequestOptions.ts +168 -0
  372. package/src/validateAdShowOptions.ts +41 -0
  373. package/src/version.ts +2 -0
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.RewardedAdEventType = void 0;
7
+
8
+ /*
9
+ * Copyright (c) 2016-present Invertase Limited & Contributors
10
+ *
11
+ * Licensed under the Apache License, Version 2.0 (the "License");
12
+ * you may not use this library except in compliance with the License.
13
+ * You may obtain a copy of the License at
14
+ *
15
+ * http://www.apache.org/licenses/LICENSE-2.0
16
+ *
17
+ * Unless required by applicable law or agreed to in writing, software
18
+ * distributed under the License is distributed on an "AS IS" BASIS,
19
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
20
+ * See the License for the specific language governing permissions and
21
+ * limitations under the License.
22
+ *
23
+ */
24
+ let RewardedAdEventType;
25
+ exports.RewardedAdEventType = RewardedAdEventType;
26
+
27
+ (function (RewardedAdEventType) {
28
+ RewardedAdEventType["LOADED"] = "rewarded_loaded";
29
+ RewardedAdEventType["EARNED_REWARD"] = "rewarded_earned_reward";
30
+ })(RewardedAdEventType || (exports.RewardedAdEventType = RewardedAdEventType = {}));
31
+ //# sourceMappingURL=RewardedAdEventType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["RewardedAdEventType.ts"],"names":["RewardedAdEventType"],"mappings":";;;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;IAEYA,mB;;;WAAAA,mB;AAAAA,EAAAA,mB;AAAAA,EAAAA,mB;GAAAA,mB,mCAAAA,mB","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nexport enum RewardedAdEventType {\n /**\n * An event fired when a rewarded ad has loaded.\n *\n * This type differs from `AdEventType.LOADED` as when a rewarded ad is loaded,\n * an additional data payload is provided to the event handler containing the ad reward\n * (assuming the user earns the reward).\n *\n * The reward contains a `type` and `amount`.\n *\n * #### Example\n *\n * ```js\n * import { RewardedAdEventType } from 'react-native-google-mobile-ads';\n *\n * rewardedAd.onAdEvent((type, error, data) => {\n * if (type === RewardedAdEventType.LOADED) {\n * console.log(`Rewarded Ad loaded with ${data.amount} ${data.type} as reward`);\n * // E.g. \"Rewarded Ad loaded with 50 coins as reward\"\n * rewardedAd.show();\n * }\n * });\n * ```\n */\n LOADED = 'rewarded_loaded',\n\n /**\n * An event fired when the user earned the reward for the video. If the user does not earn a reward,\n * the `AdEventType.CLOSED` event will be fired with no rewarded event.\n *\n * The reward contains a `type` and `amount`.\n *\n * #### Example\n *\n * ```js\n * import { RewardedAdEventType } from 'react-native-google-mobile-ads';\n *\n * rewardedAd.onAdEvent((type, error, data) => {\n * if (type === RewardedAdEventType.EARNED_REWARD) {\n * console.log(`User earned ${data.amount} ${data.type}`);\n * // E.g. \"User earned 50 coins\"\n * }\n * });\n * ```\n */\n EARNED_REWARD = 'rewarded_earned_reward',\n}\n"]}
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.TestIds = void 0;
7
+
8
+ var _reactNative = require("react-native");
9
+
10
+ /*
11
+ * Copyright (c) 2016-present Invertase Limited & Contributors
12
+ *
13
+ * Licensed under the Apache License, Version 2.0 (the "License");
14
+ * you may not use this library except in compliance with the License.
15
+ * You may obtain a copy of the License at
16
+ *
17
+ * http://www.apache.org/licenses/LICENSE-2.0
18
+ *
19
+ * Unless required by applicable law or agreed to in writing, software
20
+ * distributed under the License is distributed on an "AS IS" BASIS,
21
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
22
+ * See the License for the specific language governing permissions and
23
+ * limitations under the License.
24
+ *
25
+ */
26
+ const TestIds = {
27
+ APP_OPEN: '',
28
+ BANNER: '',
29
+ INTERSTITIAL: '',
30
+ REWARDED: '',
31
+ ..._reactNative.Platform.select({
32
+ android: {
33
+ APP_OPEN: 'ca-app-pub-3940256099942544/3419835294',
34
+ BANNER: 'ca-app-pub-3940256099942544/6300978111',
35
+ INTERSTITIAL: 'ca-app-pub-3940256099942544/1033173712',
36
+ REWARDED: 'ca-app-pub-3940256099942544/5224354917'
37
+ },
38
+ ios: {
39
+ APP_OPEN: 'ca-app-pub-3940256099942544/5662855259',
40
+ BANNER: 'ca-app-pub-3940256099942544/2934735716',
41
+ INTERSTITIAL: 'ca-app-pub-3940256099942544/4411468910',
42
+ REWARDED: 'ca-app-pub-3940256099942544/1712485313'
43
+ }
44
+ })
45
+ };
46
+ exports.TestIds = TestIds;
47
+ //# sourceMappingURL=TestIds.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["TestIds.ts"],"names":["TestIds","APP_OPEN","BANNER","INTERSTITIAL","REWARDED","Platform","select","android","ios"],"mappings":";;;;;;;AAiBA;;AAjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAIO,MAAMA,OAAO,GAAG;AACrBC,EAAAA,QAAQ,EAAE,EADW;AAErBC,EAAAA,MAAM,EAAE,EAFa;AAGrBC,EAAAA,YAAY,EAAE,EAHO;AAIrBC,EAAAA,QAAQ,EAAE,EAJW;AAKrB,KAAGC,sBAASC,MAAT,CAAgB;AACjBC,IAAAA,OAAO,EAAE;AACPN,MAAAA,QAAQ,EAAE,wCADH;AAEPC,MAAAA,MAAM,EAAE,wCAFD;AAGPC,MAAAA,YAAY,EAAE,wCAHP;AAIPC,MAAAA,QAAQ,EAAE;AAJH,KADQ;AAOjBI,IAAAA,GAAG,EAAE;AACHP,MAAAA,QAAQ,EAAE,wCADP;AAEHC,MAAAA,MAAM,EAAE,wCAFL;AAGHC,MAAAA,YAAY,EAAE,wCAHX;AAIHC,MAAAA,QAAQ,EAAE;AAJP;AAPY,GAAhB;AALkB,CAAhB","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { Platform } from 'react-native';\n\nexport const TestIds = {\n APP_OPEN: '',\n BANNER: '',\n INTERSTITIAL: '',\n REWARDED: '',\n ...Platform.select({\n android: {\n APP_OPEN: 'ca-app-pub-3940256099942544/3419835294',\n BANNER: 'ca-app-pub-3940256099942544/6300978111',\n INTERSTITIAL: 'ca-app-pub-3940256099942544/1033173712',\n REWARDED: 'ca-app-pub-3940256099942544/5224354917',\n },\n ios: {\n APP_OPEN: 'ca-app-pub-3940256099942544/5662855259',\n BANNER: 'ca-app-pub-3940256099942544/2934735716',\n INTERSTITIAL: 'ca-app-pub-3940256099942544/4411468910',\n REWARDED: 'ca-app-pub-3940256099942544/1712485313',\n },\n }),\n};\n"]}
@@ -0,0 +1,96 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.AppOpenAd = void 0;
7
+
8
+ var _common = require("../common");
9
+
10
+ var _MobileAds = require("../MobileAds");
11
+
12
+ var _validateAdRequestOptions = require("../validateAdRequestOptions");
13
+
14
+ var _validateAdShowOptions = require("../validateAdShowOptions");
15
+
16
+ var _MobileAd = require("./MobileAd");
17
+
18
+ /*
19
+ * Copyright (c) 2016-present Invertase Limited & Contributors
20
+ *
21
+ * Licensed under the Apache License, Version 2.0 (the "License");
22
+ * you may not use this library except in compliance with the License.
23
+ * You may obtain a copy of the License at
24
+ *
25
+ * http://www.apache.org/licenses/LICENSE-2.0
26
+ *
27
+ * Unless required by applicable law or agreed to in writing, software
28
+ * distributed under the License is distributed on an "AS IS" BASIS,
29
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30
+ * See the License for the specific language governing permissions and
31
+ * limitations under the License.
32
+ *
33
+ */
34
+ let _appOpenRequest = 0;
35
+
36
+ class AppOpenAd extends _MobileAd.MobileAd {
37
+ static createForAdRequest(adUnitId, requestOptions) {
38
+ if (!(0, _common.isString)(adUnitId)) {
39
+ throw new Error("AppOpenAd.createForAdRequest(*) 'adUnitId' expected an string value.");
40
+ }
41
+
42
+ let options = {};
43
+
44
+ try {
45
+ options = (0, _validateAdRequestOptions.validateAdRequestOptions)(requestOptions);
46
+ } catch (e) {
47
+ if (e instanceof Error) {
48
+ throw new Error(`AppOpenAd.createForAdRequest(_, *) ${e.message}.`);
49
+ }
50
+ }
51
+
52
+ const requestId = _appOpenRequest++;
53
+ return new AppOpenAd('app_open', (0, _MobileAds.MobileAds)(), requestId, adUnitId, options);
54
+ }
55
+
56
+ load() {
57
+ // Prevent multiple load calls
58
+ if (this._loaded || this._isLoadCalled) {
59
+ return;
60
+ }
61
+
62
+ this._isLoadCalled = true;
63
+
64
+ this._googleMobileAds.native.appOpenLoad(this._requestId, this._adUnitId, this._requestOptions);
65
+ }
66
+
67
+ onAdEvent(handler) {
68
+ if (!(0, _common.isFunction)(handler)) {
69
+ throw new Error("AppOpenAd.onAdEvent(*) 'handler' expected a function.");
70
+ }
71
+
72
+ return this._setAdEventHandler(handler);
73
+ }
74
+
75
+ show(showOptions) {
76
+ if (!this._loaded) {
77
+ throw new Error('AppOpenAd.show() The requested AppOpenAd has not loaded and could not be shown.');
78
+ }
79
+
80
+ let options;
81
+
82
+ try {
83
+ options = (0, _validateAdShowOptions.validateAdShowOptions)(showOptions);
84
+ } catch (e) {
85
+ if (e instanceof Error) {
86
+ throw new Error(`AppOpenAd.show(*) ${e.message}.`);
87
+ }
88
+ }
89
+
90
+ return this._googleMobileAds.native.appOpenShow(this._requestId, options);
91
+ }
92
+
93
+ }
94
+
95
+ exports.AppOpenAd = AppOpenAd;
96
+ //# sourceMappingURL=AppOpenAd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["AppOpenAd.ts"],"names":["_appOpenRequest","AppOpenAd","MobileAd","createForAdRequest","adUnitId","requestOptions","Error","options","e","message","requestId","load","_loaded","_isLoadCalled","_googleMobileAds","native","appOpenLoad","_requestId","_adUnitId","_requestOptions","onAdEvent","handler","_setAdEventHandler","show","showOptions","appOpenShow"],"mappings":";;;;;;;AAiBA;;AACA;;AACA;;AACA;;AACA;;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA,IAAIA,eAAe,GAAG,CAAtB;;AAEO,MAAMC,SAAN,SAAwBC,kBAAxB,CAA8D;AAC1C,SAAlBC,kBAAkB,CAACC,QAAD,EAAmBC,cAAnB,EAA+D;AACtF,QAAI,CAAC,sBAASD,QAAT,CAAL,EAAyB;AACvB,YAAM,IAAIE,KAAJ,CAAU,sEAAV,CAAN;AACD;;AAED,QAAIC,OAAO,GAAG,EAAd;;AACA,QAAI;AACFA,MAAAA,OAAO,GAAG,wDAAyBF,cAAzB,CAAV;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACV,UAAIA,CAAC,YAAYF,KAAjB,EAAwB;AACtB,cAAM,IAAIA,KAAJ,CAAW,sCAAqCE,CAAC,CAACC,OAAQ,GAA1D,CAAN;AACD;AACF;;AAED,UAAMC,SAAS,GAAGV,eAAe,EAAjC;AACA,WAAO,IAAIC,SAAJ,CAAc,UAAd,EAA0B,2BAA1B,EAAuCS,SAAvC,EAAkDN,QAAlD,EAA4DG,OAA5D,CAAP;AACD;;AAEDI,EAAAA,IAAI,GAAG;AACL;AACA,QAAI,KAAKC,OAAL,IAAgB,KAAKC,aAAzB,EAAwC;AACtC;AACD;;AAED,SAAKA,aAAL,GAAqB,IAArB;;AACA,SAAKC,gBAAL,CAAsBC,MAAtB,CAA6BC,WAA7B,CAAyC,KAAKC,UAA9C,EAA0D,KAAKC,SAA/D,EAA0E,KAAKC,eAA/E;AACD;;AAEDC,EAAAA,SAAS,CAACC,OAAD,EAA2B;AAClC,QAAI,CAAC,wBAAWA,OAAX,CAAL,EAA0B;AACxB,YAAM,IAAIf,KAAJ,CAAU,uDAAV,CAAN;AACD;;AAED,WAAO,KAAKgB,kBAAL,CAAwBD,OAAxB,CAAP;AACD;;AAEDE,EAAAA,IAAI,CAACC,WAAD,EAA8B;AAChC,QAAI,CAAC,KAAKZ,OAAV,EAAmB;AACjB,YAAM,IAAIN,KAAJ,CACJ,iFADI,CAAN;AAGD;;AAED,QAAIC,OAAJ;;AACA,QAAI;AACFA,MAAAA,OAAO,GAAG,kDAAsBiB,WAAtB,CAAV;AACD,KAFD,CAEE,OAAOhB,CAAP,EAAU;AACV,UAAIA,CAAC,YAAYF,KAAjB,EAAwB;AACtB,cAAM,IAAIA,KAAJ,CAAW,qBAAoBE,CAAC,CAACC,OAAQ,GAAzC,CAAN;AACD;AACF;;AAED,WAAO,KAAKK,gBAAL,CAAsBC,MAAtB,CAA6BU,WAA7B,CAAyC,KAAKR,UAA9C,EAA0DV,OAA1D,CAAP;AACD;;AAtDkE","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isFunction, isString } from '../common';\nimport { MobileAds } from '../MobileAds';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { validateAdShowOptions } from '../validateAdShowOptions';\nimport { MobileAd } from './MobileAd';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdInterface } from '../types/MobileAd.interface';\n\nlet _appOpenRequest = 0;\n\nexport class AppOpenAd extends MobileAd implements MobileAdInterface {\n static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions): AppOpenAd {\n if (!isString(adUnitId)) {\n throw new Error(\"AppOpenAd.createForAdRequest(*) 'adUnitId' expected an string value.\");\n }\n\n let options = {};\n try {\n options = validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`AppOpenAd.createForAdRequest(_, *) ${e.message}.`);\n }\n }\n\n const requestId = _appOpenRequest++;\n return new AppOpenAd('app_open', MobileAds(), requestId, adUnitId, options);\n }\n\n load() {\n // Prevent multiple load calls\n if (this._loaded || this._isLoadCalled) {\n return;\n }\n\n this._isLoadCalled = true;\n this._googleMobileAds.native.appOpenLoad(this._requestId, this._adUnitId, this._requestOptions);\n }\n\n onAdEvent(handler: AdEventListener) {\n if (!isFunction(handler)) {\n throw new Error(\"AppOpenAd.onAdEvent(*) 'handler' expected a function.\");\n }\n\n return this._setAdEventHandler(handler);\n }\n\n show(showOptions?: AdShowOptions) {\n if (!this._loaded) {\n throw new Error(\n 'AppOpenAd.show() The requested AppOpenAd has not loaded and could not be shown.',\n );\n }\n\n let options;\n try {\n options = validateAdShowOptions(showOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`AppOpenAd.show(*) ${e.message}.`);\n }\n }\n\n return this._googleMobileAds.native.appOpenShow(this._requestId, options);\n }\n}\n"]}
@@ -0,0 +1,128 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BannerAd = BannerAd;
7
+
8
+ var _react = _interopRequireWildcard(require("react"));
9
+
10
+ var _reactNative = require("react-native");
11
+
12
+ var _common = require("../common");
13
+
14
+ var _NativeError = require("../internal/NativeError");
15
+
16
+ var _BannerAdSize = require("../BannerAdSize");
17
+
18
+ var _validateAdRequestOptions = require("../validateAdRequestOptions");
19
+
20
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
21
+
22
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
23
+
24
+ /*
25
+ * Copyright (c) 2016-present Invertase Limited & Contributors
26
+ *
27
+ * Licensed under the Apache License, Version 2.0 (the "License");
28
+ * you may not use this library except in compliance with the License.
29
+ * You may obtain a copy of the License at
30
+ *
31
+ * http://www.apache.org/licenses/LICENSE-2.0
32
+ *
33
+ * Unless required by applicable law or agreed to in writing, software
34
+ * distributed under the License is distributed on an "AS IS" BASIS,
35
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
36
+ * See the License for the specific language governing permissions and
37
+ * limitations under the License.
38
+ *
39
+ */
40
+ const initialState = [0, 0];
41
+ const sizeRegex = /([0-9]+)x([0-9]+)/;
42
+
43
+ function BannerAd(_ref) {
44
+ let {
45
+ unitId,
46
+ size,
47
+ requestOptions,
48
+ ...props
49
+ } = _ref;
50
+ const [dimensions, setDimensions] = (0, _react.useState)(initialState);
51
+ (0, _react.useEffect)(() => {
52
+ if (!unitId) {
53
+ throw new Error("BannerAd: 'unitId' expected a valid string unit ID.");
54
+ }
55
+ }, [unitId]);
56
+ (0, _react.useEffect)(() => {
57
+ if (!(size in _BannerAdSize.BannerAdSize) && !sizeRegex.test(size)) {
58
+ throw new Error("BannerAd: 'size' expected a valid BannerAdSize or custom size string.");
59
+ }
60
+ }, [size]);
61
+ (0, _react.useEffect)(() => {
62
+ if (!(size in _BannerAdSize.BannerAdSize) && !sizeRegex.test(size)) {
63
+ throw new Error("BannerAd: 'size' expected a valid BannerAdSize or custom size string.");
64
+ }
65
+ }, [size]);
66
+ const parsedRequestOptions = JSON.stringify(requestOptions);
67
+ (0, _react.useEffect)(() => {
68
+ if (requestOptions) {
69
+ try {
70
+ (0, _validateAdRequestOptions.validateAdRequestOptions)(requestOptions);
71
+ } catch (e) {
72
+ if (e instanceof Error) {
73
+ throw new Error(`BannerAd: ${e.message}`);
74
+ }
75
+ }
76
+ }
77
+ }, [parsedRequestOptions]);
78
+
79
+ function onNativeEvent(_ref2) {
80
+ let {
81
+ nativeEvent
82
+ } = _ref2;
83
+ const {
84
+ type
85
+ } = nativeEvent;
86
+
87
+ if (type !== 'onSizeChange' && (0, _common.isFunction)(props[type])) {
88
+ let eventHandler;
89
+
90
+ if (type === 'onAdFailedToLoad') {
91
+ const eventPayload = _NativeError.NativeError.fromEvent(nativeEvent, 'googleMobileAds');
92
+
93
+ if (eventHandler = props[type]) eventHandler(eventPayload);
94
+ } else if (eventHandler = props[type]) eventHandler();
95
+ }
96
+
97
+ if ((type === 'onAdLoaded' || type === 'onSizeChange') && size !== 'FLUID') {
98
+ const {
99
+ width,
100
+ height
101
+ } = nativeEvent;
102
+ if (width && height) setDimensions([width, height]);
103
+ }
104
+ }
105
+
106
+ let style;
107
+
108
+ if (size === 'FLUID') {
109
+ // @ts-ignore: Property 'style' does not exist on type error
110
+ style = props.style;
111
+ } else {
112
+ style = {
113
+ width: dimensions[0],
114
+ height: dimensions[1]
115
+ };
116
+ }
117
+
118
+ return /*#__PURE__*/_react.default.createElement(GoogleMobileAdsBannerView, {
119
+ size: size,
120
+ style: style,
121
+ unitId: unitId,
122
+ request: (0, _validateAdRequestOptions.validateAdRequestOptions)(requestOptions),
123
+ onNativeEvent: onNativeEvent
124
+ });
125
+ }
126
+
127
+ const GoogleMobileAdsBannerView = (0, _reactNative.requireNativeComponent)('RNGoogleMobileAdsBannerView');
128
+ //# sourceMappingURL=BannerAd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["BannerAd.tsx"],"names":["initialState","sizeRegex","BannerAd","unitId","size","requestOptions","props","dimensions","setDimensions","Error","BannerAdSize","test","parsedRequestOptions","JSON","stringify","e","message","onNativeEvent","nativeEvent","type","eventHandler","eventPayload","NativeError","fromEvent","width","height","style","GoogleMobileAdsBannerView"],"mappings":";;;;;;;AAiBA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;AAtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAwBA,MAAMA,YAAY,GAAG,CAAC,CAAD,EAAI,CAAJ,CAArB;AACA,MAAMC,SAAS,GAAG,mBAAlB;;AAEO,SAASC,QAAT,OAA6E;AAAA,MAA3D;AAAEC,IAAAA,MAAF;AAAUC,IAAAA,IAAV;AAAgBC,IAAAA,cAAhB;AAAgC,OAAGC;AAAnC,GAA2D;AAClF,QAAM,CAACC,UAAD,EAAaC,aAAb,IAA8B,qBAASR,YAAT,CAApC;AAEA,wBAAU,MAAM;AACd,QAAI,CAACG,MAAL,EAAa;AACX,YAAM,IAAIM,KAAJ,CAAU,qDAAV,CAAN;AACD;AACF,GAJD,EAIG,CAACN,MAAD,CAJH;AAMA,wBAAU,MAAM;AACd,QAAI,EAAEC,IAAI,IAAIM,0BAAV,KAA2B,CAACT,SAAS,CAACU,IAAV,CAAeP,IAAf,CAAhC,EAAsD;AACpD,YAAM,IAAIK,KAAJ,CAAU,uEAAV,CAAN;AACD;AACF,GAJD,EAIG,CAACL,IAAD,CAJH;AAMA,wBAAU,MAAM;AACd,QAAI,EAAEA,IAAI,IAAIM,0BAAV,KAA2B,CAACT,SAAS,CAACU,IAAV,CAAeP,IAAf,CAAhC,EAAsD;AACpD,YAAM,IAAIK,KAAJ,CAAU,uEAAV,CAAN;AACD;AACF,GAJD,EAIG,CAACL,IAAD,CAJH;AAMA,QAAMQ,oBAAoB,GAAGC,IAAI,CAACC,SAAL,CAAeT,cAAf,CAA7B;AAEA,wBAAU,MAAM;AACd,QAAIA,cAAJ,EAAoB;AAClB,UAAI;AACF,gEAAyBA,cAAzB;AACD,OAFD,CAEE,OAAOU,CAAP,EAAU;AACV,YAAIA,CAAC,YAAYN,KAAjB,EAAwB;AACtB,gBAAM,IAAIA,KAAJ,CAAW,aAAYM,CAAC,CAACC,OAAQ,EAAjC,CAAN;AACD;AACF;AACF;AACF,GAVD,EAUG,CAACJ,oBAAD,CAVH;;AAYA,WAASK,aAAT,QAAsE;AAAA,QAA/C;AAAEC,MAAAA;AAAF,KAA+C;AACpE,UAAM;AAAEC,MAAAA;AAAF,QAAWD,WAAjB;;AAEA,QAAIC,IAAI,KAAK,cAAT,IAA2B,wBAAWb,KAAK,CAACa,IAAD,CAAhB,CAA/B,EAAwD;AACtD,UAAIC,YAAJ;;AACA,UAAID,IAAI,KAAK,kBAAb,EAAiC;AAC/B,cAAME,YAAY,GAAGC,yBAAYC,SAAZ,CAAsBL,WAAtB,EAAmC,iBAAnC,CAArB;;AACA,YAAKE,YAAY,GAAGd,KAAK,CAACa,IAAD,CAAzB,EAAkCC,YAAY,CAACC,YAAD,CAAZ;AACnC,OAHD,MAGO,IAAKD,YAAY,GAAGd,KAAK,CAACa,IAAD,CAAzB,EAAkCC,YAAY;AACtD;;AAED,QAAI,CAACD,IAAI,KAAK,YAAT,IAAyBA,IAAI,KAAK,cAAnC,KAAsDf,IAAI,KAAK,OAAnE,EAA4E;AAC1E,YAAM;AAAEoB,QAAAA,KAAF;AAASC,QAAAA;AAAT,UAAoBP,WAA1B;AACA,UAAIM,KAAK,IAAIC,MAAb,EAAqBjB,aAAa,CAAC,CAACgB,KAAD,EAAQC,MAAR,CAAD,CAAb;AACtB;AACF;;AAED,MAAIC,KAAJ;;AACA,MAAItB,IAAI,KAAK,OAAb,EAAsB;AACpB;AACAsB,IAAAA,KAAK,GAAGpB,KAAK,CAACoB,KAAd;AACD,GAHD,MAGO;AACLA,IAAAA,KAAK,GAAG;AACNF,MAAAA,KAAK,EAAEjB,UAAU,CAAC,CAAD,CADX;AAENkB,MAAAA,MAAM,EAAElB,UAAU,CAAC,CAAD;AAFZ,KAAR;AAID;;AAED,sBACE,6BAAC,yBAAD;AACE,IAAA,IAAI,EAAEH,IADR;AAEE,IAAA,KAAK,EAAEsB,KAFT;AAGE,IAAA,MAAM,EAAEvB,MAHV;AAIE,IAAA,OAAO,EAAE,wDAAyBE,cAAzB,CAJX;AAKE,IAAA,aAAa,EAAEY;AALjB,IADF;AASD;;AAED,MAAMU,yBASJ,GAAG,yCAAuB,6BAAvB,CATL","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport React, { useState, useEffect } from 'react';\nimport { HostComponent, requireNativeComponent } from 'react-native';\nimport { isFunction } from '../common';\nimport { NativeError } from '../internal/NativeError';\nimport { BannerAdSize } from '../BannerAdSize';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { BannerAdProps } from '../types/BannerAdProps';\nimport { RequestOptions } from '../types/RequestOptions';\n\ntype NativeEvent =\n | {\n type: 'onAdLoaded' | 'onSizeChange';\n width: number;\n height: number;\n }\n | { type: 'onAdOpened' | 'onAdClosed' }\n | {\n type: 'onAdFailedToLoad';\n code: string;\n message: string;\n };\n\nconst initialState = [0, 0];\nconst sizeRegex = /([0-9]+)x([0-9]+)/;\n\nexport function BannerAd({ unitId, size, requestOptions, ...props }: BannerAdProps) {\n const [dimensions, setDimensions] = useState(initialState);\n\n useEffect(() => {\n if (!unitId) {\n throw new Error(\"BannerAd: 'unitId' expected a valid string unit ID.\");\n }\n }, [unitId]);\n\n useEffect(() => {\n if (!(size in BannerAdSize) && !sizeRegex.test(size)) {\n throw new Error(\"BannerAd: 'size' expected a valid BannerAdSize or custom size string.\");\n }\n }, [size]);\n\n useEffect(() => {\n if (!(size in BannerAdSize) && !sizeRegex.test(size)) {\n throw new Error(\"BannerAd: 'size' expected a valid BannerAdSize or custom size string.\");\n }\n }, [size]);\n\n const parsedRequestOptions = JSON.stringify(requestOptions);\n\n useEffect(() => {\n if (requestOptions) {\n try {\n validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`BannerAd: ${e.message}`);\n }\n }\n }\n }, [parsedRequestOptions]);\n\n function onNativeEvent({ nativeEvent }: { nativeEvent: NativeEvent }) {\n const { type } = nativeEvent;\n\n if (type !== 'onSizeChange' && isFunction(props[type])) {\n let eventHandler;\n if (type === 'onAdFailedToLoad') {\n const eventPayload = NativeError.fromEvent(nativeEvent, 'googleMobileAds');\n if ((eventHandler = props[type])) eventHandler(eventPayload);\n } else if ((eventHandler = props[type])) eventHandler();\n }\n\n if ((type === 'onAdLoaded' || type === 'onSizeChange') && size !== 'FLUID') {\n const { width, height } = nativeEvent;\n if (width && height) setDimensions([width, height]);\n }\n }\n\n let style;\n if (size === 'FLUID') {\n // @ts-ignore: Property 'style' does not exist on type error\n style = props.style;\n } else {\n style = {\n width: dimensions[0],\n height: dimensions[1],\n };\n }\n\n return (\n <GoogleMobileAdsBannerView\n size={size}\n style={style}\n unitId={unitId}\n request={validateAdRequestOptions(requestOptions)}\n onNativeEvent={onNativeEvent}\n />\n );\n}\n\nconst GoogleMobileAdsBannerView: HostComponent<{\n size: BannerAdProps['size'];\n style: {\n width: number;\n height: number;\n };\n unitId: string;\n request: RequestOptions;\n onNativeEvent: (event: { nativeEvent: NativeEvent }) => void;\n}> = requireNativeComponent('RNGoogleMobileAdsBannerView');\n"]}
@@ -0,0 +1,163 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.InterstitialAd = void 0;
7
+
8
+ var _common = require("../common");
9
+
10
+ var _MobileAds = require("../MobileAds");
11
+
12
+ var _validateAdRequestOptions = require("../validateAdRequestOptions");
13
+
14
+ var _validateAdShowOptions = require("../validateAdShowOptions");
15
+
16
+ var _MobileAd = require("./MobileAd");
17
+
18
+ /*
19
+ * Copyright (c) 2016-present Invertase Limited & Contributors
20
+ *
21
+ * Licensed under the Apache License, Version 2.0 (the "License");
22
+ * you may not use this library except in compliance with the License.
23
+ * You may obtain a copy of the License at
24
+ *
25
+ * http://www.apache.org/licenses/LICENSE-2.0
26
+ *
27
+ * Unless required by applicable law or agreed to in writing, software
28
+ * distributed under the License is distributed on an "AS IS" BASIS,
29
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
30
+ * See the License for the specific language governing permissions and
31
+ * limitations under the License.
32
+ *
33
+ */
34
+ let _interstitialRequest = 0;
35
+ /**
36
+ * A class for interacting and showing Interstitial Ads.
37
+ *
38
+ * An Interstitial advert can be pre-loaded and shown at a suitable point in your apps flow, such as at the end of a level
39
+ * in a game. An Interstitial is a full screen advert, laid on-top of your entire application which the user can interact with.
40
+ * Interactions are passed back via events which should be handled accordingly inside of your app.
41
+ *
42
+ * #### Example
43
+ *
44
+ * First create a new Interstitial instance, passing in your Ad Unit ID from the Google Mobile Ads configuration console, and any additional
45
+ * request options. The example below will present a test advert, and only request a non-personalized ad.
46
+ *
47
+ * ```js
48
+ * import { InterstitialAd, TestIds } from 'react-native-google-mobile-ads';
49
+ *
50
+ * const interstitial = InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL, {
51
+ * requestNonPersonalizedAdsOnly: true,
52
+ * });
53
+ * ```
54
+ *
55
+ * Each advert needs to be loaded from Google Mobile Ads before being shown. It is recommended this is performed before the user
56
+ * reaches the checkpoint to show the advert, so it's ready to go. Before loading the advert, we need to setup
57
+ * event listeners to listen for updates from Google Mobile Ads, such as advert loaded or failed to load.
58
+ *
59
+ * Event types match the `AdEventType` interface. Once the advert has loaded, we can trigger it to show:
60
+ *
61
+ * ```js
62
+ * import { AdEventType } from 'react-native-google-mobile-ads';
63
+ *
64
+ * interstitial.onAdEvent((type) => {
65
+ * if (type === AdEventType.LOADED) {
66
+ * interstitial.show();
67
+ * }
68
+ * });
69
+ *
70
+ * interstitial.load();
71
+ * ```
72
+ *
73
+ * The advert will be presented to the user, and several more events can be triggered such as the user clicking the
74
+ * advert or closing it.
75
+ */
76
+
77
+ class InterstitialAd extends _MobileAd.MobileAd {
78
+ /**
79
+ * Creates a new InterstitialAd instance.
80
+ *
81
+ * #### Example
82
+ *
83
+ * ```js
84
+ * import { InterstitialAd, AdEventType, TestIds } from 'react-native-google-mobile-ads';
85
+ *
86
+ * const interstitialAd = await InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL, {
87
+ * requestAgent: 'CoolAds',
88
+ * });
89
+ *
90
+ * interstitialAd.onAdEvent((type, error) => {
91
+ * console.log('New event: ', type, error);
92
+ *
93
+ * if (type === AdEventType.LOADED) {
94
+ * interstitialAd.show();
95
+ * }
96
+ * });
97
+ *
98
+ * interstitialAd.load();
99
+ * ```
100
+ *
101
+ * @param adUnitId The Ad Unit ID for the Interstitial. You can find this on your Google Mobile Ads dashboard.
102
+ * @param requestOptions Optional RequestOptions used to load the ad.
103
+ */
104
+ static createForAdRequest(adUnitId, requestOptions) {
105
+ if (!(0, _common.isString)(adUnitId)) {
106
+ throw new Error("InterstitialAd.createForAdRequest(*) 'adUnitId' expected an string value.");
107
+ }
108
+
109
+ let options = {};
110
+
111
+ try {
112
+ options = (0, _validateAdRequestOptions.validateAdRequestOptions)(requestOptions);
113
+ } catch (e) {
114
+ if (e instanceof Error) {
115
+ throw new Error(`InterstitialAd.createForAdRequest(_, *) ${e.message}.`);
116
+ }
117
+ }
118
+
119
+ const requestId = _interstitialRequest++;
120
+ return new InterstitialAd('interstitial', (0, _MobileAds.MobileAds)(), requestId, adUnitId, options);
121
+ }
122
+
123
+ load() {
124
+ // Prevent multiple load calls
125
+ if (this._loaded || this._isLoadCalled) {
126
+ return;
127
+ }
128
+
129
+ this._isLoadCalled = true;
130
+
131
+ this._googleMobileAds.native.interstitialLoad(this._requestId, this._adUnitId, this._requestOptions);
132
+ }
133
+
134
+ onAdEvent(handler) {
135
+ if (!(0, _common.isFunction)(handler)) {
136
+ throw new Error("InterstitialAd.onAdEvent(*) 'handler' expected a function.");
137
+ }
138
+
139
+ return this._setAdEventHandler(handler);
140
+ }
141
+
142
+ show(showOptions) {
143
+ if (!this._loaded) {
144
+ throw new Error('InterstitialAd.show() The requested InterstitialAd has not loaded and could not be shown.');
145
+ }
146
+
147
+ let options;
148
+
149
+ try {
150
+ options = (0, _validateAdShowOptions.validateAdShowOptions)(showOptions);
151
+ } catch (e) {
152
+ if (e instanceof Error) {
153
+ throw new Error(`InterstitialAd.show(*) ${e.message}.`);
154
+ }
155
+ }
156
+
157
+ return this._googleMobileAds.native.interstitialShow(this._requestId, options);
158
+ }
159
+
160
+ }
161
+
162
+ exports.InterstitialAd = InterstitialAd;
163
+ //# sourceMappingURL=InterstitialAd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["InterstitialAd.ts"],"names":["_interstitialRequest","InterstitialAd","MobileAd","createForAdRequest","adUnitId","requestOptions","Error","options","e","message","requestId","load","_loaded","_isLoadCalled","_googleMobileAds","native","interstitialLoad","_requestId","_adUnitId","_requestOptions","onAdEvent","handler","_setAdEventHandler","show","showOptions","interstitialShow"],"mappings":";;;;;;;AAiBA;;AACA;;AACA;;AACA;;AACA;;AArBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAYA,IAAIA,oBAAoB,GAAG,CAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,MAAMC,cAAN,SAA6BC,kBAA7B,CAAmE;AACxE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAC2B,SAAlBC,kBAAkB,CAACC,QAAD,EAAmBC,cAAnB,EAAoE;AAC3F,QAAI,CAAC,sBAASD,QAAT,CAAL,EAAyB;AACvB,YAAM,IAAIE,KAAJ,CAAU,2EAAV,CAAN;AACD;;AAED,QAAIC,OAAO,GAAG,EAAd;;AACA,QAAI;AACFA,MAAAA,OAAO,GAAG,wDAAyBF,cAAzB,CAAV;AACD,KAFD,CAEE,OAAOG,CAAP,EAAU;AACV,UAAIA,CAAC,YAAYF,KAAjB,EAAwB;AACtB,cAAM,IAAIA,KAAJ,CAAW,2CAA0CE,CAAC,CAACC,OAAQ,GAA/D,CAAN;AACD;AACF;;AAED,UAAMC,SAAS,GAAGV,oBAAoB,EAAtC;AACA,WAAO,IAAIC,cAAJ,CAAmB,cAAnB,EAAmC,2BAAnC,EAAgDS,SAAhD,EAA2DN,QAA3D,EAAqEG,OAArE,CAAP;AACD;;AAEDI,EAAAA,IAAI,GAAG;AACL;AACA,QAAI,KAAKC,OAAL,IAAgB,KAAKC,aAAzB,EAAwC;AACtC;AACD;;AAED,SAAKA,aAAL,GAAqB,IAArB;;AACA,SAAKC,gBAAL,CAAsBC,MAAtB,CAA6BC,gBAA7B,CACE,KAAKC,UADP,EAEE,KAAKC,SAFP,EAGE,KAAKC,eAHP;AAKD;;AAEDC,EAAAA,SAAS,CAACC,OAAD,EAA2B;AAClC,QAAI,CAAC,wBAAWA,OAAX,CAAL,EAA0B;AACxB,YAAM,IAAIf,KAAJ,CAAU,4DAAV,CAAN;AACD;;AAED,WAAO,KAAKgB,kBAAL,CAAwBD,OAAxB,CAAP;AACD;;AAEDE,EAAAA,IAAI,CAACC,WAAD,EAA8B;AAChC,QAAI,CAAC,KAAKZ,OAAV,EAAmB;AACjB,YAAM,IAAIN,KAAJ,CACJ,2FADI,CAAN;AAGD;;AAED,QAAIC,OAAJ;;AACA,QAAI;AACFA,MAAAA,OAAO,GAAG,kDAAsBiB,WAAtB,CAAV;AACD,KAFD,CAEE,OAAOhB,CAAP,EAAU;AACV,UAAIA,CAAC,YAAYF,KAAjB,EAAwB;AACtB,cAAM,IAAIA,KAAJ,CAAW,0BAAyBE,CAAC,CAACC,OAAQ,GAA9C,CAAN;AACD;AACF;;AAED,WAAO,KAAKK,gBAAL,CAAsBC,MAAtB,CAA6BU,gBAA7B,CAA8C,KAAKR,UAAnD,EAA+DV,OAA/D,CAAP;AACD;;AApFuE","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { isFunction, isString } from '../common';\nimport { MobileAds } from '../MobileAds';\nimport { validateAdRequestOptions } from '../validateAdRequestOptions';\nimport { validateAdShowOptions } from '../validateAdShowOptions';\nimport { MobileAd } from './MobileAd';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdInterface } from '../types/MobileAd.interface';\n\nlet _interstitialRequest = 0;\n\n/**\n * A class for interacting and showing Interstitial Ads.\n *\n * An Interstitial advert can be pre-loaded and shown at a suitable point in your apps flow, such as at the end of a level\n * in a game. An Interstitial is a full screen advert, laid on-top of your entire application which the user can interact with.\n * Interactions are passed back via events which should be handled accordingly inside of your app.\n *\n * #### Example\n *\n * First create a new Interstitial instance, passing in your Ad Unit ID from the Google Mobile Ads configuration console, and any additional\n * request options. The example below will present a test advert, and only request a non-personalized ad.\n *\n * ```js\n * import { InterstitialAd, TestIds } from 'react-native-google-mobile-ads';\n *\n * const interstitial = InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL, {\n * requestNonPersonalizedAdsOnly: true,\n * });\n * ```\n *\n * Each advert needs to be loaded from Google Mobile Ads before being shown. It is recommended this is performed before the user\n * reaches the checkpoint to show the advert, so it's ready to go. Before loading the advert, we need to setup\n * event listeners to listen for updates from Google Mobile Ads, such as advert loaded or failed to load.\n *\n * Event types match the `AdEventType` interface. Once the advert has loaded, we can trigger it to show:\n *\n * ```js\n * import { AdEventType } from 'react-native-google-mobile-ads';\n *\n * interstitial.onAdEvent((type) => {\n * if (type === AdEventType.LOADED) {\n * interstitial.show();\n * }\n * });\n *\n * interstitial.load();\n * ```\n *\n * The advert will be presented to the user, and several more events can be triggered such as the user clicking the\n * advert or closing it.\n */\nexport class InterstitialAd extends MobileAd implements MobileAdInterface {\n /**\n * Creates a new InterstitialAd instance.\n *\n * #### Example\n *\n * ```js\n * import { InterstitialAd, AdEventType, TestIds } from 'react-native-google-mobile-ads';\n *\n * const interstitialAd = await InterstitialAd.createForAdRequest(TestIds.INTERSTITIAL, {\n * requestAgent: 'CoolAds',\n * });\n *\n * interstitialAd.onAdEvent((type, error) => {\n * console.log('New event: ', type, error);\n *\n * if (type === AdEventType.LOADED) {\n * interstitialAd.show();\n * }\n * });\n *\n * interstitialAd.load();\n * ```\n *\n * @param adUnitId The Ad Unit ID for the Interstitial. You can find this on your Google Mobile Ads dashboard.\n * @param requestOptions Optional RequestOptions used to load the ad.\n */\n static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions): InterstitialAd {\n if (!isString(adUnitId)) {\n throw new Error(\"InterstitialAd.createForAdRequest(*) 'adUnitId' expected an string value.\");\n }\n\n let options = {};\n try {\n options = validateAdRequestOptions(requestOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`InterstitialAd.createForAdRequest(_, *) ${e.message}.`);\n }\n }\n\n const requestId = _interstitialRequest++;\n return new InterstitialAd('interstitial', MobileAds(), requestId, adUnitId, options);\n }\n\n load() {\n // Prevent multiple load calls\n if (this._loaded || this._isLoadCalled) {\n return;\n }\n\n this._isLoadCalled = true;\n this._googleMobileAds.native.interstitialLoad(\n this._requestId,\n this._adUnitId,\n this._requestOptions,\n );\n }\n\n onAdEvent(handler: AdEventListener) {\n if (!isFunction(handler)) {\n throw new Error(\"InterstitialAd.onAdEvent(*) 'handler' expected a function.\");\n }\n\n return this._setAdEventHandler(handler);\n }\n\n show(showOptions?: AdShowOptions) {\n if (!this._loaded) {\n throw new Error(\n 'InterstitialAd.show() The requested InterstitialAd has not loaded and could not be shown.',\n );\n }\n\n let options;\n try {\n options = validateAdShowOptions(showOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`InterstitialAd.show(*) ${e.message}.`);\n }\n }\n\n return this._googleMobileAds.native.interstitialShow(this._requestId, options);\n }\n}\n"]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.MobileAd = void 0;
7
+
8
+ var _NativeError = require("../internal/NativeError");
9
+
10
+ var _RewardedAdEventType = require("../RewardedAdEventType");
11
+
12
+ var _AdEventType = require("../AdEventType");
13
+
14
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
15
+
16
+ class MobileAd {
17
+ constructor(type, googleMobileAds, requestId, adUnitId, requestOptions) {
18
+ _defineProperty(this, "_type", void 0);
19
+
20
+ _defineProperty(this, "_googleMobileAds", void 0);
21
+
22
+ _defineProperty(this, "_requestId", void 0);
23
+
24
+ _defineProperty(this, "_adUnitId", void 0);
25
+
26
+ _defineProperty(this, "_requestOptions", void 0);
27
+
28
+ _defineProperty(this, "_loaded", void 0);
29
+
30
+ _defineProperty(this, "_isLoadCalled", void 0);
31
+
32
+ _defineProperty(this, "_onAdEventHandler", void 0);
33
+
34
+ _defineProperty(this, "_nativeListener", void 0);
35
+
36
+ this._type = type;
37
+ this._googleMobileAds = googleMobileAds;
38
+ this._requestId = requestId;
39
+ this._adUnitId = adUnitId;
40
+ this._requestOptions = requestOptions;
41
+ this._loaded = false;
42
+ this._isLoadCalled = false;
43
+ this._onAdEventHandler = null;
44
+ this._nativeListener = googleMobileAds.emitter.addListener(`google_mobile_ads_${type}_event:${adUnitId}:${requestId}`, this._handleAdEvent.bind(this));
45
+ }
46
+
47
+ _handleAdEvent(event) {
48
+ const {
49
+ type,
50
+ error,
51
+ data
52
+ } = event.body;
53
+
54
+ if (type === _AdEventType.AdEventType.LOADED || type === _RewardedAdEventType.RewardedAdEventType.LOADED) {
55
+ this._loaded = true;
56
+ }
57
+
58
+ if (type === _AdEventType.AdEventType.CLOSED) {
59
+ this._loaded = false;
60
+ this._isLoadCalled = false;
61
+ }
62
+
63
+ if (this._onAdEventHandler) {
64
+ let nativeError;
65
+
66
+ if (error) {
67
+ nativeError = _NativeError.NativeError.fromEvent(error, 'googleMobileAds');
68
+ }
69
+
70
+ this._onAdEventHandler(type, nativeError, data);
71
+ }
72
+ }
73
+
74
+ _setAdEventHandler(handler) {
75
+ this._onAdEventHandler = handler;
76
+ return () => this._onAdEventHandler = null;
77
+ }
78
+
79
+ get adUnitId() {
80
+ return this._adUnitId;
81
+ }
82
+
83
+ get loaded() {
84
+ return this._loaded;
85
+ }
86
+
87
+ }
88
+
89
+ exports.MobileAd = MobileAd;
90
+ //# sourceMappingURL=MobileAd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["MobileAd.ts"],"names":["MobileAd","constructor","type","googleMobileAds","requestId","adUnitId","requestOptions","_type","_googleMobileAds","_requestId","_adUnitId","_requestOptions","_loaded","_isLoadCalled","_onAdEventHandler","_nativeListener","emitter","addListener","_handleAdEvent","bind","event","error","data","body","AdEventType","LOADED","RewardedAdEventType","CLOSED","nativeError","NativeError","fromEvent","_setAdEventHandler","handler","loaded"],"mappings":";;;;;;;AAkBA;;AACA;;AACA;;;;AAMO,MAAMA,QAAN,CAAe;AAWpBC,EAAAA,WAAW,CACTC,IADS,EAETC,eAFS,EAGTC,SAHS,EAITC,QAJS,EAKTC,cALS,EAMT;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AAAA;;AACA,SAAKC,KAAL,GAAaL,IAAb;AACA,SAAKM,gBAAL,GAAwBL,eAAxB;AACA,SAAKM,UAAL,GAAkBL,SAAlB;AACA,SAAKM,SAAL,GAAiBL,QAAjB;AACA,SAAKM,eAAL,GAAuBL,cAAvB;AAEA,SAAKM,OAAL,GAAe,KAAf;AACA,SAAKC,aAAL,GAAqB,KAArB;AACA,SAAKC,iBAAL,GAAyB,IAAzB;AAEA,SAAKC,eAAL,GAAuBZ,eAAe,CAACa,OAAhB,CAAwBC,WAAxB,CACpB,qBAAoBf,IAAK,UAASG,QAAS,IAAGD,SAAU,EADpC,EAErB,KAAKc,cAAL,CAAoBC,IAApB,CAAyB,IAAzB,CAFqB,CAAvB;AAID;;AAEDD,EAAAA,cAAc,CAACE,KAAD,EAMX;AACD,UAAM;AAAElB,MAAAA,IAAF;AAAQmB,MAAAA,KAAR;AAAeC,MAAAA;AAAf,QAAwBF,KAAK,CAACG,IAApC;;AAEA,QAAIrB,IAAI,KAAKsB,yBAAYC,MAArB,IAA+BvB,IAAI,KAAKwB,yCAAoBD,MAAhE,EAAwE;AACtE,WAAKb,OAAL,GAAe,IAAf;AACD;;AAED,QAAIV,IAAI,KAAKsB,yBAAYG,MAAzB,EAAiC;AAC/B,WAAKf,OAAL,GAAe,KAAf;AACA,WAAKC,aAAL,GAAqB,KAArB;AACD;;AAED,QAAI,KAAKC,iBAAT,EAA4B;AAC1B,UAAIc,WAAJ;;AACA,UAAIP,KAAJ,EAAW;AACTO,QAAAA,WAAW,GAAGC,yBAAYC,SAAZ,CAAsBT,KAAtB,EAA6B,iBAA7B,CAAd;AACD;;AAED,WAAKP,iBAAL,CAAuBZ,IAAvB,EAA6B0B,WAA7B,EAA0CN,IAA1C;AACD;AACF;;AAEDS,EAAAA,kBAAkB,CAACC,OAAD,EAA2B;AAC3C,SAAKlB,iBAAL,GAAyBkB,OAAzB;AACA,WAAO,MAAO,KAAKlB,iBAAL,GAAyB,IAAvC;AACD;;AAEW,MAART,QAAQ,GAAG;AACb,WAAO,KAAKK,SAAZ;AACD;;AAES,MAANuB,MAAM,GAAG;AACX,WAAO,KAAKrB,OAAZ;AACD;;AAzEmB","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { EmitterSubscription } from 'react-native';\nimport { NativeError } from '../internal/NativeError';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventType } from '../AdEventType';\nimport { AdEventListener } from '../types/AdEventListener';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdsModuleInterface } from '../types/MobileAdsModule.interface';\nimport { RewardedAdReward } from '../types/RewardedAdReward';\n\nexport class MobileAd {\n _type: 'app_open' | 'interstitial' | 'rewarded';\n _googleMobileAds: MobileAdsModuleInterface;\n _requestId: number;\n _adUnitId: string;\n _requestOptions: RequestOptions;\n _loaded: boolean;\n _isLoadCalled: boolean;\n _onAdEventHandler: AdEventListener | null;\n _nativeListener: EmitterSubscription;\n\n constructor(\n type: 'app_open' | 'interstitial' | 'rewarded',\n googleMobileAds: MobileAdsModuleInterface,\n requestId: number,\n adUnitId: string,\n requestOptions: RequestOptions,\n ) {\n this._type = type;\n this._googleMobileAds = googleMobileAds;\n this._requestId = requestId;\n this._adUnitId = adUnitId;\n this._requestOptions = requestOptions;\n\n this._loaded = false;\n this._isLoadCalled = false;\n this._onAdEventHandler = null;\n\n this._nativeListener = googleMobileAds.emitter.addListener(\n `google_mobile_ads_${type}_event:${adUnitId}:${requestId}`,\n this._handleAdEvent.bind(this),\n );\n }\n\n _handleAdEvent(event: {\n body: {\n type: AdEventType | RewardedAdEventType;\n error?: { code: string; message: string };\n data?: RewardedAdReward;\n };\n }) {\n const { type, error, data } = event.body;\n\n if (type === AdEventType.LOADED || type === RewardedAdEventType.LOADED) {\n this._loaded = true;\n }\n\n if (type === AdEventType.CLOSED) {\n this._loaded = false;\n this._isLoadCalled = false;\n }\n\n if (this._onAdEventHandler) {\n let nativeError;\n if (error) {\n nativeError = NativeError.fromEvent(error, 'googleMobileAds');\n }\n\n this._onAdEventHandler(type, nativeError, data);\n }\n }\n\n _setAdEventHandler(handler: AdEventListener) {\n this._onAdEventHandler = handler;\n return () => (this._onAdEventHandler = null);\n }\n\n get adUnitId() {\n return this._adUnitId;\n }\n\n get loaded() {\n return this._loaded;\n }\n}\n"]}