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,57 @@
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
+ #import "RNGoogleMobileAdsFullScreenContentDelegate.h"
19
+
20
+ @implementation RNGoogleMobileAdsFullScreenContentDelegate
21
+
22
+ #pragma mark -
23
+ #pragma mark GADFullScreenContentDelegate Methods
24
+
25
+ /// Tells the delegate that the ad presented full screen content.
26
+ - (void)adDidPresentFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
27
+ [RNGoogleMobileAdsCommon sendAdEvent:_sendAdEvent
28
+ requestId:_requestId
29
+ type:GOOGLE_MOBILE_ADS_EVENT_OPENED
30
+ adUnitId:_adUnitId
31
+ error:nil
32
+ data:nil];
33
+ }
34
+
35
+ /// Tells the delegate that the ad failed to present full screen content.
36
+ - (void)ad:(nonnull id<GADFullScreenPresentingAd>)ad
37
+ didFailToPresentFullScreenContentWithError:(nonnull NSError *)error {
38
+ NSDictionary *codeAndMessage = [RNGoogleMobileAdsCommon getCodeAndMessageFromAdError:error];
39
+ [RNGoogleMobileAdsCommon sendAdEvent:_sendAdEvent
40
+ requestId:_requestId
41
+ type:GOOGLE_MOBILE_ADS_EVENT_ERROR
42
+ adUnitId:_adUnitId
43
+ error:codeAndMessage
44
+ data:nil];
45
+ }
46
+
47
+ /// Tells the delegate that the ad dismissed full screen content.
48
+ - (void)adDidDismissFullScreenContent:(nonnull id<GADFullScreenPresentingAd>)ad {
49
+ [RNGoogleMobileAdsCommon sendAdEvent:_sendAdEvent
50
+ requestId:_requestId
51
+ type:GOOGLE_MOBILE_ADS_EVENT_CLOSED
52
+ adUnitId:_adUnitId
53
+ error:nil
54
+ data:nil];
55
+ }
56
+
57
+ @end
@@ -0,0 +1,25 @@
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 <Foundation/Foundation.h>
20
+
21
+ #import <React/RCTBridgeModule.h>
22
+
23
+ @interface RNGoogleMobileAdsInterstitialModule : NSObject <RCTBridgeModule>
24
+
25
+ @end
@@ -0,0 +1,124 @@
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 "RNGoogleMobileAdsCommon.h"
22
+ #import "RNGoogleMobileAdsFullScreenContentDelegate.h"
23
+ #import "RNGoogleMobileAdsInterstitialModule.h"
24
+ #import "common/RNSharedUtils.h"
25
+
26
+ static __strong NSMutableDictionary *interstitialMap;
27
+ static __strong NSMutableDictionary *interstitialDelegateMap;
28
+
29
+ @implementation RNGoogleMobileAdsInterstitialModule
30
+ #pragma mark -
31
+ #pragma mark Module Setup
32
+
33
+ RCT_EXPORT_MODULE();
34
+
35
+ - (dispatch_queue_t)methodQueue {
36
+ return dispatch_get_main_queue();
37
+ }
38
+
39
+ - (id)init {
40
+ self = [super init];
41
+ static dispatch_once_t onceToken;
42
+ dispatch_once(&onceToken, ^{
43
+ interstitialMap = [[NSMutableDictionary alloc] init];
44
+ interstitialDelegateMap = [[NSMutableDictionary alloc] init];
45
+ });
46
+ return self;
47
+ }
48
+
49
+ + (BOOL)requiresMainQueueSetup {
50
+ return YES;
51
+ }
52
+
53
+ - (void)dealloc {
54
+ [self invalidate];
55
+ }
56
+
57
+ - (void)invalidate {
58
+ for (NSNumber *id in [interstitialMap allKeys]) {
59
+ [interstitialMap removeObjectForKey:id];
60
+ [interstitialDelegateMap removeObjectForKey:id];
61
+ }
62
+ }
63
+
64
+ #pragma mark -
65
+ #pragma mark Google Mobile Ads Methods
66
+
67
+ RCT_EXPORT_METHOD(interstitialLoad
68
+ : (nonnull NSNumber *)requestId
69
+ : (NSString *)adUnitId
70
+ : (NSDictionary *)adRequestOptions) {
71
+ GADRequest *request = [GADRequest request];
72
+ [GADInterstitialAd loadWithAdUnitID:adUnitId
73
+ request:request
74
+ completionHandler:^(GADInterstitialAd *ad, NSError *error) {
75
+ if (error) {
76
+ NSDictionary *codeAndMessage =
77
+ [RNGoogleMobileAdsCommon getCodeAndMessageFromAdError:error];
78
+ [RNGoogleMobileAdsCommon sendAdEvent:GOOGLE_MOBILE_ADS_EVENT_INTERSTITIAL
79
+ requestId:requestId
80
+ type:GOOGLE_MOBILE_ADS_EVENT_ERROR
81
+ adUnitId:adUnitId
82
+ error:codeAndMessage
83
+ data:nil];
84
+ return;
85
+ }
86
+ GADInterstitialAd *interstitial = ad;
87
+ RNGoogleMobileAdsFullScreenContentDelegate *fullScreenContentDelegate =
88
+ [[RNGoogleMobileAdsFullScreenContentDelegate alloc] init];
89
+ fullScreenContentDelegate.sendAdEvent = GOOGLE_MOBILE_ADS_EVENT_INTERSTITIAL;
90
+ fullScreenContentDelegate.requestId = requestId;
91
+ fullScreenContentDelegate.adUnitId = ad.adUnitID;
92
+ interstitial.fullScreenContentDelegate = fullScreenContentDelegate;
93
+ interstitialMap[requestId] = interstitial;
94
+ interstitialDelegateMap[requestId] = fullScreenContentDelegate;
95
+ [RNGoogleMobileAdsCommon sendAdEvent:GOOGLE_MOBILE_ADS_EVENT_INTERSTITIAL
96
+ requestId:requestId
97
+ type:GOOGLE_MOBILE_ADS_EVENT_LOADED
98
+ adUnitId:ad.adUnitID
99
+ error:nil
100
+ data:nil];
101
+ }];
102
+ }
103
+
104
+ RCT_EXPORT_METHOD(interstitialShow
105
+ : (nonnull NSNumber *)requestId
106
+ : (NSDictionary *)showOptions
107
+ : (RCTPromiseResolveBlock)resolve
108
+ : (RCTPromiseRejectBlock)reject) {
109
+ GADInterstitialAd *interstitial = interstitialMap[requestId];
110
+ if (interstitial) {
111
+ [interstitial
112
+ presentFromRootViewController:RCTSharedApplication().delegate.window.rootViewController];
113
+ resolve([NSNull null]);
114
+ } else {
115
+ [RNSharedUtils
116
+ rejectPromiseWithUserInfo:reject
117
+ userInfo:[@{
118
+ @"code" : @"not-ready",
119
+ @"message" : @"Interstitial ad attempted to show but was not ready.",
120
+ } mutableCopy]];
121
+ }
122
+ }
123
+
124
+ @end
@@ -0,0 +1,24 @@
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
+ #import <Foundation/Foundation.h>
19
+
20
+ #import <React/RCTBridgeModule.h>
21
+
22
+ @interface RNGoogleMobileAdsModule : NSObject <RCTBridgeModule>
23
+
24
+ @end
@@ -0,0 +1,104 @@
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
+ #import <GoogleMobileAds/GoogleMobileAds.h>
19
+ #import <React/RCTUtils.h>
20
+
21
+ #import "RNGoogleMobileAdsModule.h"
22
+ #import "common/RNSharedUtils.h"
23
+
24
+ @implementation RNGoogleMobileAdsModule
25
+ #pragma mark -
26
+ #pragma mark Module Setup
27
+
28
+ RCT_EXPORT_MODULE();
29
+
30
+ - (dispatch_queue_t)methodQueue {
31
+ return dispatch_get_main_queue();
32
+ }
33
+
34
+ #pragma mark -
35
+ #pragma mark Google Mobile Ads Methods
36
+
37
+ RCT_EXPORT_METHOD(initialize : (RCTPromiseResolveBlock)resolve : (RCTPromiseRejectBlock)reject) {
38
+ [[GADMobileAds sharedInstance]
39
+ startWithCompletionHandler:^(GADInitializationStatus *_Nonnull status) {
40
+ NSDictionary *adapterStatuses = [status adapterStatusesByClassName];
41
+ NSMutableArray *result = [[NSMutableArray alloc] init];
42
+ for (NSString *adapter in adapterStatuses) {
43
+ GADAdapterStatus *adapterStatus = adapterStatuses[adapter];
44
+ NSDictionary *dict = @{
45
+ @"name" : adapter,
46
+ @"state" : @(adapterStatus.state),
47
+ @"description" : adapterStatus.description
48
+ };
49
+ [result addObject:dict];
50
+ }
51
+ resolve(result);
52
+ }];
53
+ }
54
+
55
+ RCT_EXPORT_METHOD(setRequestConfiguration
56
+ : (NSDictionary *)requestConfiguration
57
+ : (RCTPromiseResolveBlock)resolve
58
+ : (RCTPromiseRejectBlock)reject) {
59
+ [self setRequestConfiguration:requestConfiguration];
60
+ resolve([NSNull null]);
61
+ }
62
+
63
+ - (void)setRequestConfiguration:(NSDictionary *)requestConfiguration {
64
+ if (requestConfiguration[@"maxAdContentRating"]) {
65
+ NSString *rating = requestConfiguration[@"maxAdContentRating"];
66
+ if ([rating isEqualToString:@"G"]) {
67
+ GADMobileAds.sharedInstance.requestConfiguration.maxAdContentRating =
68
+ GADMaxAdContentRatingGeneral;
69
+ } else if ([rating isEqualToString:@"PG"]) {
70
+ GADMobileAds.sharedInstance.requestConfiguration.maxAdContentRating =
71
+ GADMaxAdContentRatingParentalGuidance;
72
+ } else if ([rating isEqualToString:@"T"]) {
73
+ GADMobileAds.sharedInstance.requestConfiguration.maxAdContentRating =
74
+ GADMaxAdContentRatingTeen;
75
+ } else if ([rating isEqualToString:@"MA"]) {
76
+ GADMobileAds.sharedInstance.requestConfiguration.maxAdContentRating =
77
+ GADMaxAdContentRatingMatureAudience;
78
+ }
79
+ }
80
+
81
+ if (requestConfiguration[@"tagForChildDirectedTreatment"]) {
82
+ BOOL tag = [requestConfiguration[@"tagForChildDirectedTreatment"] boolValue];
83
+ [GADMobileAds.sharedInstance.requestConfiguration tagForChildDirectedTreatment:tag];
84
+ }
85
+
86
+ if (requestConfiguration[@"tagForUnderAgeOfConsent"]) {
87
+ BOOL tag = [requestConfiguration[@"tagForUnderAgeOfConsent"] boolValue];
88
+ [GADMobileAds.sharedInstance.requestConfiguration tagForUnderAgeOfConsent:tag];
89
+ }
90
+
91
+ if (requestConfiguration[@"testDeviceIdentifiers"]) {
92
+ NSMutableArray *devices = [@[] mutableCopy];
93
+ for (NSString *key in requestConfiguration[@"testDeviceIdentifiers"]) {
94
+ if ([key isEqualToString:@"EMULATOR"]) {
95
+ [devices addObject:GADSimulatorID];
96
+ } else {
97
+ [devices addObject:key];
98
+ }
99
+ }
100
+ GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = devices;
101
+ }
102
+ }
103
+
104
+ @end
@@ -0,0 +1,25 @@
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 <Foundation/Foundation.h>
20
+
21
+ #import <React/RCTBridgeModule.h>
22
+
23
+ @interface RNGoogleMobileAdsRewardedModule : NSObject <RCTBridgeModule>
24
+
25
+ @end
@@ -0,0 +1,173 @@
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 "RNGoogleMobileAdsCommon.h"
22
+ #import "RNGoogleMobileAdsFullScreenContentDelegate.h"
23
+ #import "RNGoogleMobileAdsRewardedModule.h"
24
+ #import "common/RNSharedUtils.h"
25
+
26
+ static __strong NSMutableDictionary *rewardedMap;
27
+ static __strong NSMutableDictionary *rewardedDelegateMap;
28
+
29
+ @implementation RNGoogleMobileAdsRewardedModule
30
+ #pragma mark -
31
+ #pragma mark Module Setup
32
+
33
+ RCT_EXPORT_MODULE();
34
+
35
+ - (dispatch_queue_t)methodQueue {
36
+ return dispatch_get_main_queue();
37
+ }
38
+
39
+ - (id)init {
40
+ self = [super init];
41
+ static dispatch_once_t onceToken;
42
+ dispatch_once(&onceToken, ^{
43
+ rewardedMap = [[NSMutableDictionary alloc] init];
44
+ rewardedDelegateMap = [[NSMutableDictionary alloc] init];
45
+ });
46
+ return self;
47
+ }
48
+
49
+ + (BOOL)requiresMainQueueSetup {
50
+ return YES;
51
+ }
52
+
53
+ - (void)dealloc {
54
+ [self invalidate];
55
+ }
56
+
57
+ - (void)invalidate {
58
+ for (NSNumber *id in [rewardedMap allKeys]) {
59
+ [rewardedMap removeObjectForKey:id];
60
+ [rewardedDelegateMap removeObjectForKey:id];
61
+ }
62
+ }
63
+
64
+ #pragma mark -
65
+ #pragma mark Google Mobile Ads Methods
66
+
67
+ RCT_EXPORT_METHOD(rewardedLoad
68
+ : (nonnull NSNumber *)requestId
69
+ : (NSString *)adUnitId
70
+ : (NSDictionary *)adRequestOptions) {
71
+ GADRequest *request = [GADRequest request];
72
+ [GADRewardedAd loadWithAdUnitID:adUnitId
73
+ request:request
74
+ completionHandler:^(GADRewardedAd *ad, NSError *error) {
75
+ if (error) {
76
+ NSDictionary *codeAndMessage =
77
+ [RNGoogleMobileAdsCommon getCodeAndMessageFromAdError:error];
78
+ [RNGoogleMobileAdsCommon sendAdEvent:GOOGLE_MOBILE_ADS_EVENT_REWARDED
79
+ requestId:requestId
80
+ type:GOOGLE_MOBILE_ADS_EVENT_ERROR
81
+ adUnitId:adUnitId
82
+ error:codeAndMessage
83
+ data:nil];
84
+ return;
85
+ }
86
+ GADRewardedAd *rewardedAd = ad;
87
+
88
+ NSDictionary *serverSideVerificationOptions =
89
+ [adRequestOptions objectForKey:@"serverSideVerificationOptions"];
90
+
91
+ if (serverSideVerificationOptions != nil) {
92
+ GADServerSideVerificationOptions *options =
93
+ [[GADServerSideVerificationOptions alloc] init];
94
+
95
+ NSString *userId = [serverSideVerificationOptions valueForKey:@"userId"];
96
+
97
+ if (userId != nil) {
98
+ options.userIdentifier = userId;
99
+ }
100
+
101
+ NSString *customData =
102
+ [serverSideVerificationOptions valueForKey:@"customData"];
103
+
104
+ if (customData != nil) {
105
+ options.customRewardString = customData;
106
+ }
107
+
108
+ [rewardedAd setServerSideVerificationOptions:options];
109
+ }
110
+
111
+ RNGoogleMobileAdsFullScreenContentDelegate *fullScreenContentDelegate =
112
+ [[RNGoogleMobileAdsFullScreenContentDelegate alloc] init];
113
+ fullScreenContentDelegate.sendAdEvent = GOOGLE_MOBILE_ADS_EVENT_REWARDED;
114
+ fullScreenContentDelegate.requestId = requestId;
115
+ fullScreenContentDelegate.adUnitId = ad.adUnitID;
116
+ rewardedAd.fullScreenContentDelegate = fullScreenContentDelegate;
117
+ rewardedMap[requestId] = rewardedAd;
118
+ rewardedDelegateMap[requestId] = fullScreenContentDelegate;
119
+ GADAdReward *reward = rewardedAd.adReward;
120
+ NSMutableDictionary *data = [NSMutableDictionary dictionary];
121
+ if (reward.type != nil) {
122
+ [data setValue:reward.type forKey:@"type"];
123
+ }
124
+ if (reward.amount != nil) {
125
+ [data setValue:reward.amount forKey:@"amount"];
126
+ }
127
+ [RNGoogleMobileAdsCommon sendAdEvent:GOOGLE_MOBILE_ADS_EVENT_REWARDED
128
+ requestId:requestId
129
+ type:GOOGLE_MOBILE_ADS_EVENT_REWARDED_LOADED
130
+ adUnitId:ad.adUnitID
131
+ error:nil
132
+ data:data];
133
+ }];
134
+ }
135
+
136
+ RCT_EXPORT_METHOD(rewardedShow
137
+ : (nonnull NSNumber *)requestId
138
+ : (NSString *)adUnitId
139
+ : (NSDictionary *)showOptions
140
+ : (RCTPromiseResolveBlock)resolve
141
+ : (RCTPromiseRejectBlock)reject) {
142
+ GADRewardedAd *rewardedAd = rewardedMap[requestId];
143
+
144
+ if (rewardedAd) {
145
+ [rewardedAd
146
+ presentFromRootViewController:RCTSharedApplication().delegate.window.rootViewController
147
+ userDidEarnRewardHandler:^{
148
+ GADAdReward *reward = rewardedAd.adReward;
149
+ NSMutableDictionary *data = [NSMutableDictionary dictionary];
150
+ if (reward.type != nil) {
151
+ [data setValue:reward.type forKey:@"type"];
152
+ }
153
+ if (reward.amount != nil) {
154
+ [data setValue:reward.amount forKey:@"amount"];
155
+ }
156
+ [RNGoogleMobileAdsCommon sendAdEvent:GOOGLE_MOBILE_ADS_EVENT_REWARDED
157
+ requestId:requestId
158
+ type:GOOGLE_MOBILE_ADS_EVENT_REWARDED_EARNED_REWARD
159
+ adUnitId:rewardedAd.adUnitID
160
+ error:nil
161
+ data:data];
162
+ }];
163
+ } else {
164
+ [RNSharedUtils
165
+ rejectPromiseWithUserInfo:reject
166
+ userInfo:[@{
167
+ @"code" : @"not-ready",
168
+ @"message" : @"Rewarded ad attempted to show but was not ready.",
169
+ } mutableCopy]];
170
+ }
171
+ }
172
+
173
+ @end
@@ -0,0 +1,24 @@
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
+ #import <Foundation/Foundation.h>
19
+
20
+ #import <React/RCTBridgeModule.h>
21
+
22
+ @interface RNAppModule : NSObject <RCTBridgeModule>
23
+
24
+ @end