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,286 @@
1
+ import { AdsConsentDebugGeography } from '../AdsConsentDebugGeography';
2
+ import { AdsConsentStatus } from '../AdsConsentStatus';
3
+ /**
4
+ * Under the Google [EU User Consent Policy](https://www.google.com/about/company/consentstaging.html), you must make certain disclosures to your users in the European Economic Area (EEA)
5
+ * and obtain their consent to use cookies or other local storage, where legally required, and to use personal data
6
+ * (such as AdID) to serve ads. This policy reflects the requirements of the EU ePrivacy Directive and the
7
+ * General Data Protection Regulation (GDPR).
8
+ *
9
+ * It is recommended that you determine the status of a user's consent at every app launch. The user consent status is held
10
+ * on the device until a condition changes which requires the user to consent again, such as a change in publishers.
11
+ *
12
+ * For more information, see [here](https://developers.google.com/admob/android/eu-consent#delay_app_measurement_optional).
13
+ */
14
+ /**
15
+ * A AdProvider interface returned from `AdsConsent.getProviders`.
16
+ */
17
+ export interface AdProvider {
18
+ /**
19
+ * A provider company ID.
20
+ */
21
+ companyId: string;
22
+ /**
23
+ * A provider company name.
24
+ */
25
+ companyName: string;
26
+ /**
27
+ * A fully formed URL for the privacy policy of the provider.
28
+ */
29
+ privacyPolicyUrl: string;
30
+ }
31
+ export interface AdsConsentInterface {
32
+ /**
33
+ * Requests user consent for a given list of publisher IDs.
34
+ *
35
+ * The list of publisher IDs can be obtained from the settings panel on the Google Mobile Ads console. If the list of
36
+ * publisher IDs has changed since the last time a user provided consent, their consent status will be reset to
37
+ * 'UNKNOWN' and they must provide consent again.
38
+ *
39
+ * If the request fails with the error "Could not parse Event FE preflight response", this means the state of your
40
+ * Google Mobile Ads account is not complete. Ensure you have validated your account and have setup valid payment
41
+ * information. This error is also thrown when a Publisher ID is invalid.
42
+ *
43
+ * The response from this method provides request location and consent status properties.
44
+ *
45
+ * If request location is within the EEA or unknown, and the consent status is also unknown, you
46
+ * must request consent via the `showForm()` method or your own means.
47
+ *
48
+ * If the consent status is not unknown, the user has already previously provided consent for the current publisher
49
+ * scope.
50
+ *
51
+ * #### Example
52
+ *
53
+ * ```js
54
+ * import { AdsConsent } from 'react-native-google-mobile-ads';
55
+ *
56
+ * const consent = await AdsConsent.requestInfoUpdate(['pub-6189033257628554']);
57
+ * console.log('User location within EEA or Unknown:', consent.isRequestLocationInEeaOrUnknown);
58
+ * console.log('User consent status:', consent.status);
59
+ * ```
60
+ *
61
+ * @param publisherIds A list of publisher IDs found on your Google Mobile Ads dashboard.
62
+ */
63
+ requestInfoUpdate(publisherIds: string[]): Promise<AdsConsentInfo>;
64
+ /**
65
+ * Shows a Google-rendered user consent form.
66
+ *
67
+ * The Google-rendered consent form is a full-screen configurable form that displays over your app content. The form
68
+ * allows the following configuration options:
69
+ *
70
+ *
71
+ * 1. Consent to view personalized ads (via `withPersonalizedAds`).
72
+ * 2. Consent to view non-personalized ads (via `withNonPersonalizedAds`).
73
+ * 3. Use a paid version of the app instead of viewing ads (via `withAdFree`).
74
+ *
75
+ * Every consent form requires a privacy policy URL which outlines the usage of your application.
76
+ *
77
+ * You should review the consent text carefully: what appears by default is a message that might be appropriate if
78
+ * you use Google to monetize your app.
79
+ *
80
+ * If providing an ad-free version of your app, ensure you handle this once the form has been handled by the user
81
+ * via the `userPrefersAdFree` property. The users preference on consent is automatically forwarded onto the Google
82
+ * Mobile SDKs and saved.
83
+ *
84
+ * If the user is outside of the EEA, the request form will error.
85
+ *
86
+ * #### Example
87
+ *
88
+ * ```js
89
+ * import { AdsConsent, AdsConsentStatus } from 'react-native-google-mobile-ads';
90
+ *
91
+ * async function requestConsent() {
92
+ * const consent = await AdsConsent.requestInfoUpdate(['pub-6189033257628554']);
93
+ *
94
+ * // Check if user requires consent
95
+ * if (consent.isRequestLocationInEeaOrUnknown && consent.status === AdsConsentStatus.UNKNOWN) {
96
+ * // Show a Google-rendered form
97
+ * const result = await AdsConsent.showForm({
98
+ * privacyPolicy: 'https://invertase.io/privacy-policy',
99
+ * withPersonalizedAds: true,
100
+ * withNonPersonalizedAds: true,
101
+ * withAdFree: true,
102
+ * });
103
+ *
104
+ * console.log('User accepted personalized: ', result.status === AdsConsentStatus.PERSONALIZED);
105
+ * console.log('User accepted non-personalized: ', result.status === AdsConsentStatus.NON_PERSONALIZED);
106
+ * console.log('User prefers Ad Free version of app: ', result.userPrefersAdFree);
107
+ * }
108
+ * }
109
+ *
110
+ * ```
111
+ *
112
+ * @param options An AdsConsentFormOptions interface to control the Google-rendered form.
113
+ */
114
+ showForm(options: AdsConsentFormOptions): Promise<AdsConsentFormResult>;
115
+ /**
116
+ * Returns a list of ad providers currently in use for the given Google Mobile Ads App ID.
117
+ *
118
+ * If requesting consent from the user via your own method, this list of ad providers must be shown to the user
119
+ * for them to accept consent.
120
+ *
121
+ * #### Example
122
+ *
123
+ * ```js
124
+ * import { AdsConsent } from 'react-native-google-mobile-ads';
125
+ *
126
+ * const providers = await AdsConsent.getAdProviders();
127
+ * ```
128
+ */
129
+ getAdProviders(): Promise<AdProvider[]>;
130
+ /**
131
+ * Sets the debug geography to locally test consent.
132
+ *
133
+ * If debugging on an emulator (where location cannot be determined) or outside of the EEA,
134
+ * it is possible set your own location to test how your app handles different scenarios.
135
+ *
136
+ * If using a real device, ensure you have set it as a test device via `addTestDevice()` otherwise this method will have
137
+ * no effect.
138
+ *
139
+ * #### Example
140
+ *
141
+ * ```js
142
+ * import { AdsConsent, AdsConsentDebugGeography } from 'react-native-google-mobile-ads';
143
+ *
144
+ * // Set disabled
145
+ * await AdsConsentDebugGeography.setDebugGeography(AdsConsentDebugGeography.DISABLED);
146
+ *
147
+ * // Set within EEA
148
+ * await AdsConsentDebugGeography.setDebugGeography(AdsConsentDebugGeography.EEA);
149
+ *
150
+ * // Set outside EEA
151
+ * await AdsConsentDebugGeography.setDebugGeography(AdsConsentDebugGeography.NOT_EEA);
152
+ * ```
153
+ *
154
+ * @param geography The debug geography location.
155
+ */
156
+ setDebugGeography(geography: AdsConsentDebugGeography): Promise<void>;
157
+ /**
158
+ * Manually update the consent status of the user.
159
+ *
160
+ * This method is used when providing your own means of user consent. If using the Google-rendered form via `showForm()`,
161
+ * the consent status is automatically set and calling this method is not required.
162
+ *
163
+ * This method can also be used to reset the consent status, by setting it to `AdsConsentStatus.UNKNOWN`, which may be useful in certain circumstances.
164
+ *
165
+ * #### Example
166
+ *
167
+ * ```js
168
+ * import { AdsConsent, AdsConsentStatus } from 'react-native-google-mobile-ads';
169
+ *
170
+ * // User accepted personalized ads
171
+ * await AdsConsent.setStatus(AdsConsentStatus.PERSONALIZED);
172
+ * ```
173
+ *
174
+ * @param status The user consent status.
175
+ */
176
+ setStatus(status: AdsConsentStatus): Promise<void>;
177
+ /**
178
+ * Returns the current consent status of the user.
179
+ *
180
+ * > The user consent status may change at any time, therefore don't reuse old values locally and always request the current value at any time consent is required.
181
+ *
182
+ * #### Example
183
+ *
184
+ * ```js
185
+ * import { AdsConsent } from 'react-native-google-mobile-ads';
186
+ *
187
+ * const status = await AdsConsent.getStatus();
188
+ * ```
189
+ */
190
+ getStatus(): Promise<AdsConsentStatus>;
191
+ /**
192
+ * If a publisher is aware that the user is under the age of consent, all ad requests must set TFUA (Tag For Users
193
+ * Under the Age of consent in Europe). This setting takes effect for all future ad requests.
194
+ *
195
+ * Once the TFUA setting is enabled, the Google-rendered consent form will fail to load. All ad requests that include
196
+ * TFUA will be made ineligible for personalized advertising and remarketing. TFUA disables requests to third-party
197
+ * ad technology providers, such as ad measurement pixels and third-party ad servers.
198
+ *
199
+ * To remove TFUA from ad requests, set the value to `false`.
200
+ *
201
+ * #### Example
202
+ *
203
+ * ```js
204
+ * import { AdsConsent } from 'react-native-google-mobile-ads';
205
+ *
206
+ * // User is under age of consent
207
+ * await AdsConsent.setTagForUnderAgeOfConsent(true);
208
+ * ```
209
+ *
210
+ * @param tag The boolean value to tag for under age consent.
211
+ */
212
+ setTagForUnderAgeOfConsent(tag: boolean): Promise<void>;
213
+ /**
214
+ * If using a real device to test, ensure the device ID is provided to the Google Mobile Ads SDK so any mock debug locations
215
+ * can take effect.
216
+ *
217
+ * Emulators are automatically on the allowlist and should require no action.
218
+ *
219
+ * If you are seeing real ad activity from a test device, examine logcat / console
220
+ * during execution in association with google mobile ads test device documentation to
221
+ * configure your device correctly.
222
+ *
223
+ * @param deviceIds An array of testing device ID.
224
+ */
225
+ addTestDevices(deviceIds: string[]): Promise<void>;
226
+ }
227
+ /**
228
+ * The options used to show on the Google-rendered consent form. At least one of `withAdFree`, `withPersonalizedAds` and `WithNonPersonalizedAds` needs to be set to `true`.
229
+ */
230
+ export interface AdsConsentFormOptions {
231
+ /**
232
+ * A fully formed HTTP or HTTPS privacy policy URL for your application.
233
+ *
234
+ * Users will have the option to visit this web page before consenting to ads.
235
+ */
236
+ privacyPolicy: string;
237
+ /**
238
+ * Set to `true` to provide the option for the user to accept being shown personalized ads, defaults to `false`.
239
+ */
240
+ withPersonalizedAds?: boolean;
241
+ /**
242
+ * Set to `true` to provide the option for the user to accept being shown non-personalized ads, defaults to `false`.
243
+ */
244
+ withNonPersonalizedAds?: boolean;
245
+ /**
246
+ * Set to `true` to provide the option for the user to choose an ad-free version of your app, defaults to `false`.
247
+ *
248
+ * If the user chooses this option, you must handle it as required (e.g. navigating to a paid version of the app,
249
+ * or a subscribe view).
250
+ */
251
+ withAdFree?: boolean;
252
+ }
253
+ /**
254
+ * The result of a Google-rendered consent form.
255
+ */
256
+ export interface AdsConsentFormResult {
257
+ /**
258
+ * The consent status of the user after closing the consent form.
259
+ *
260
+ * - UNKNOWN: The form was unable to determine the users consent status.
261
+ * - NON_PERSONALIZED: The user has accepted non-personalized ads.
262
+ * - PERSONALIZED: The user has accepted personalized ads.
263
+ */
264
+ status: AdsConsentStatus;
265
+ /**
266
+ * If `true`, the user requested an ad-free version of your application.
267
+ */
268
+ userPrefersAdFree: boolean;
269
+ }
270
+ /**
271
+ * The result of requesting info about a users consent status.
272
+ */
273
+ export interface AdsConsentInfo {
274
+ /**
275
+ * The consent status of the user.
276
+ *
277
+ * - UNKNOWN: The consent status is unknown and the user must provide consent to show ads if they are within the EEA or location is also unknown.
278
+ * - NON_PERSONALIZED: The user has accepted non-personalized ads.
279
+ * - PERSONALIZED: The user has accepted personalized ads.
280
+ */
281
+ status: AdsConsentStatus;
282
+ /**
283
+ * If `true` the user is within the EEA or their location could not be determined.
284
+ */
285
+ isRequestLocationInEeaOrUnknown: boolean;
286
+ }
@@ -0,0 +1,66 @@
1
+ import { BannerAdSize } from '../BannerAdSize';
2
+ import { RequestOptions } from './RequestOptions';
3
+ /**
4
+ * An interface for a Banner advert component.
5
+ *
6
+ * #### Example
7
+ *
8
+ * The `BannerAd` interface is exposed as a React component, allowing you to integrate ads within your existing React
9
+ * Native code base. The component itself is isolated, meaning any standard `View` props (e.g. `style`) are not
10
+ * forwarded on. It is recommended you wrap the `BannerAd` within your own `View` if you wish to apply custom props for use-cases
11
+ * such as positioning.
12
+ *
13
+ * ```js
14
+ * import { BannerAd, BannerAdSize, TestIds } from 'react-native-google-mobile-ads';
15
+ *
16
+ * function HomeScreen() {
17
+ * return (
18
+ * <BannerAd
19
+ * unitId={TestIds.BANNER}
20
+ * size={BannerAdSize.FULL_BANNER}
21
+ * requestOptions={{
22
+ * requestNonPersonalizedAdsOnly: true,
23
+ * }}
24
+ * onAdLoaded={() => {
25
+ * console.log('Advert loaded');
26
+ * }}
27
+ * onAdFailedToLoad={(error) => {
28
+ * console.error('Advert failed to load: ', error);
29
+ * }}
30
+ * />
31
+ * );
32
+ * }
33
+ * ```
34
+ */
35
+ export declare type BannerAdProps = {
36
+ /**
37
+ * The Google Mobile Ads unit ID for the banner.
38
+ */
39
+ unitId: string;
40
+ /**
41
+ * The size of the banner. Can be a predefined size via `BannerAdSize` or custom dimensions, e.g. `300x200`.
42
+ *
43
+ * Inventory must be available for the banner size specified, otherwise a no-fill error will be sent to `onAdFailedToLoad`.
44
+ */
45
+ size: BannerAdSize;
46
+ /**
47
+ * The request options for this banner.
48
+ */
49
+ requestOptions?: RequestOptions;
50
+ /**
51
+ * When an ad has finished loading.
52
+ */
53
+ onAdLoaded?: () => void;
54
+ /**
55
+ * When an ad has failed to load. Callback contains an Error.
56
+ */
57
+ onAdFailedToLoad?: (error: Error) => void;
58
+ /**
59
+ * The ad is now visible to the user.
60
+ */
61
+ onAdOpened?: () => void;
62
+ /**
63
+ * Called when the user is about to return to the app after tapping on an ad.
64
+ */
65
+ onAdClosed?: () => void;
66
+ };
@@ -0,0 +1,14 @@
1
+ import { AdapterStatus } from './AdapterStatus';
2
+ import { RequestConfiguration } from './RequestConfiguration';
3
+ import { RequestOptions } from './RequestOptions';
4
+ import { AdShowOptions } from './AdShowOptions';
5
+ export interface GoogleMobileAdsNativeModule {
6
+ initialize(): Promise<AdapterStatus[]>;
7
+ setRequestConfiguration(requestConfiguration?: RequestConfiguration): Promise<void>;
8
+ appOpenLoad(requestId: number, adUnitId: string, requestOptions: RequestOptions): void;
9
+ appOpenShow(requestId: number, showOptions?: AdShowOptions): Promise<void>;
10
+ interstitialLoad(requestId: number, adUnitId: string, requestOptions: RequestOptions): void;
11
+ interstitialShow(requestId: number, showOptions?: AdShowOptions): Promise<void>;
12
+ rewardedLoad(requestId: number, adUnitId: string, requestOptions: RequestOptions): void;
13
+ rewardedShow(requestId: number, adUnitId: string, showOptions?: AdShowOptions): Promise<void>;
14
+ }
@@ -0,0 +1,64 @@
1
+ import { AdEventListener } from './AdEventListener';
2
+ import { AdShowOptions } from './AdShowOptions';
3
+ /**
4
+ * Base class for InterstitialAd, RewardedAd, NativeAd and BannerAd.
5
+ */
6
+ export interface MobileAdInterface {
7
+ /**
8
+ * The Ad Unit ID for this Gogole Mobile Ads ad.
9
+ */
10
+ adUnitId: string;
11
+ /**
12
+ * Whether the advert is loaded and can be shown.
13
+ */
14
+ loaded: boolean;
15
+ /**
16
+ * Start loading the advert with the provided RequestOptions.
17
+ *
18
+ * It is recommended you setup ad event handlers before calling this method.
19
+ */
20
+ load(): void;
21
+ /**
22
+ * Listen to ad events. See AdEventTypes for more information.
23
+ *
24
+ * Returns an unsubscriber function to stop listening to further events.
25
+ *
26
+ * #### Example
27
+ *
28
+ * ```js
29
+ * // Create InterstitialAd/RewardedAd
30
+ * const advert = InterstitialAd.createForAdRequest('...');
31
+ *
32
+ * const unsubscribe = advert.onAdEvent((type) => {
33
+ *
34
+ * });
35
+ *
36
+ * // Sometime later...
37
+ * unsubscribe();
38
+ * ```
39
+ *
40
+ * @param listener A listener callback containing a event type, error and data.
41
+ */
42
+ onAdEvent(listener: AdEventListener): () => void;
43
+ /**
44
+ * Show the loaded advert to the user.
45
+ *
46
+ * #### Example
47
+ *
48
+ * ```js
49
+ * // Create InterstitialAd/RewardedAd
50
+ * const advert = InterstitialAd.createForAdRequest('...');
51
+ *
52
+ * advert.onAdEvent((type) => {
53
+ * if (type === AdEventType.LOADED) {
54
+ * advert.show({
55
+ * immersiveModeEnabled: true,
56
+ * });
57
+ * }
58
+ * });
59
+ * ```
60
+ *
61
+ * @param showOptions An optional `AdShowOptions` interface.
62
+ */
63
+ show(showOptions?: AdShowOptions): Promise<void>;
64
+ }
@@ -0,0 +1,38 @@
1
+ import { EventEmitter } from 'react-native';
2
+ import { AdapterStatus } from './AdapterStatus';
3
+ import { GoogleMobileAdsNativeModule } from './GoogleMobileAdsNativeModule';
4
+ import { RequestConfiguration } from './RequestConfiguration';
5
+ /**
6
+ * The Google Mobile Ads service interface.
7
+ */
8
+ export interface MobileAdsModuleInterface {
9
+ /**
10
+ * Initialize the SDK.
11
+ */
12
+ initialize(): Promise<AdapterStatus[]>;
13
+ /**
14
+ * Sets request options for all future ad requests.
15
+ *
16
+ * #### Example
17
+ *
18
+ * ```js
19
+ * import mobileAds, { MaxAdContentRating } from 'react-native-google-mobile-ads';
20
+ *
21
+ * await mobileAds().setRequestConfiguration({
22
+ * // Update all future requests suitable for parental guidance
23
+ * maxAdContentRating: MaxAdContentRating.PG,
24
+ * });
25
+ * ```
26
+ *
27
+ * @param requestConfiguration An RequestConfiguration interface used on all future Google Mobile Ads ad requests.
28
+ */
29
+ setRequestConfiguration(requestConfiguration: RequestConfiguration): Promise<void>;
30
+ /**
31
+ * The native module instance for the Google Mobile Ads service.
32
+ */
33
+ native: GoogleMobileAdsNativeModule;
34
+ /**
35
+ * Returns the shared event emitter instance used for all JS event routing.
36
+ */
37
+ emitter: EventEmitter;
38
+ }
@@ -0,0 +1,14 @@
1
+ export interface App {
2
+ name: string;
3
+ }
4
+ export interface Config {
5
+ version: string;
6
+ namespace: string;
7
+ nativeModuleName: string[];
8
+ nativeEvents: string[];
9
+ }
10
+ export interface ModuleInterface {
11
+ app: App;
12
+ _config: Config;
13
+ _customUrlOrRegion?: string;
14
+ }
@@ -0,0 +1,36 @@
1
+ import { MaxAdContentRating } from '../MaxAdContentRating';
2
+ /**
3
+ * The `RequestConfiguration` used when setting global ad settings via `setRequestConfiguration`.
4
+ */
5
+ export interface RequestConfiguration {
6
+ /**
7
+ * The maximum ad content rating for all ads. Google Mobile Ads returns ads at or below the specified level.
8
+ *
9
+ * Ratings are based on the [digital content label classifications](https://support.google.com/admob/answer/7562142).
10
+ */
11
+ maxAdContentRating?: MaxAdContentRating;
12
+ /**
13
+ * If `true`, indicates that you want your content treated as child-directed for purposes of COPPA.
14
+ *
15
+ * For purposes of the [Children's Online Privacy Protection Act (COPPA)](http://business.ftc.gov/privacy-and-security/children%27s-privacy),
16
+ * there is a setting called "tag for child-directed treatment". By setting this tag, you certify that this notification
17
+ * is accurate and you are authorized to act on behalf of the owner of the app. You understand that abuse of this
18
+ * setting may result in termination of your Google account.
19
+ */
20
+ tagForChildDirectedTreatment?: boolean;
21
+ /**
22
+ * If `true`, indicates that you want the ad request to be handled in a manner suitable for users under the age of consent.
23
+ *
24
+ * You can mark your ad requests to receive treatment for users in the European Economic Area (EEA) under the age of consent.
25
+ * This feature is designed to help facilitate compliance with the [General Data Protection Regulation (GDPR)](https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=CELEX:32016R0679).
26
+ *
27
+ * See the [Google Mobile SDK docs](https://developers.google.com/admob/android/targeting#ad_content_filtering) for more information.
28
+ */
29
+ tagForUnderAgeOfConsent?: boolean;
30
+ /**
31
+ * An array of test device IDs to add to the allowlist.
32
+ *
33
+ * If using an emulator, set the device ID to `EMULATOR`.
34
+ */
35
+ testDeviceIdentifiers?: string[];
36
+ }
@@ -0,0 +1,106 @@
1
+ export interface ServerSideVerificationOptions {
2
+ /**
3
+ * User identifier.
4
+ * If no user identifier is provided by the app, this query parameter will not be present in the SSV callback.
5
+ */
6
+ userId?: string;
7
+ /**
8
+ * Custom data string.
9
+ * If no custom data string is provided by the app, this query parameter value will not be present in the SSV callback.
10
+ */
11
+ customData?: string;
12
+ }
13
+ /**
14
+ * The `RequestOptions` interface. Used when passing additional request options before an advert is loaded.
15
+ */
16
+ export interface RequestOptions {
17
+ /**
18
+ * If `true` only non-personalized ads will be loaded.
19
+ *
20
+ * Google serves personalized ads by default. This option must be `true` if users who are within the EEA have only
21
+ * given consent to non-personalized ads.
22
+ */
23
+ requestNonPersonalizedAdsOnly?: boolean;
24
+ /**
25
+ * Attaches additional properties to an ad request for direct campaign delivery.
26
+ *
27
+ * Takes an array of string key/value pairs.
28
+ *
29
+ * #### Example
30
+ *
31
+ * Attaches `?campaign=abc&user=123` to the ad request:
32
+ *
33
+ * ```js
34
+ * await Interstitial.createForAdRequest('ca-app-pub-3940256099942544/1033173712', {
35
+ * networkExtras: {
36
+ * campaign: 'abc',
37
+ * user: '123',
38
+ * },
39
+ * });
40
+ */
41
+ networkExtras?: {
42
+ [key: string]: string;
43
+ };
44
+ /**
45
+ * An array of keywords to be sent when loading the ad.
46
+ *
47
+ * Setting keywords helps deliver more specific ads to a user based on the keywords.
48
+ *
49
+ * #### Example
50
+ *
51
+ * ```js
52
+ * await Interstitial.createForAdRequest('ca-app-pub-3940256099942544/1033173712', {
53
+ * keywords: ['fashion', 'clothing'],
54
+ * });
55
+ * ```
56
+ */
57
+ keywords?: string[];
58
+ /**
59
+ * Sets a content URL for targeting purposes.
60
+ *
61
+ * Max length of 512.
62
+ */
63
+ contentUrl?: string;
64
+ /**
65
+ * The latitude and longitude location of the user.
66
+ *
67
+ * Ensure your app requests location permissions from the user.
68
+ *
69
+ * #### Example
70
+ *
71
+ * ```js
72
+ * await Interstitial.createForAdRequest('ca-app-pub-3940256099942544/1033173712', {
73
+ * location: [53.481073, -2.237074],
74
+ * });
75
+ * ```
76
+ */
77
+ location?: [number, number];
78
+ /**
79
+ * Sets the location accuracy if the location is set, in meters.
80
+ *
81
+ * This option is only applied to iOS devices. On Android, this option has no effect.
82
+ *
83
+ * @ios
84
+ */
85
+ locationAccuracy?: number;
86
+ /**
87
+ * Sets the request agent string to identify the ad request's origin. Third party libraries that reference the Mobile
88
+ * Ads SDK should call this method to denote the platform from which the ad request originated. For example, if a
89
+ * third party ad network called "CoolAds network" mediates requests to the Mobile Ads SDK, it should call this
90
+ * method with "CoolAds".
91
+ *
92
+ * #### Example
93
+ *
94
+ * ```js
95
+ * await Interstitial.createForAdRequest('ca-app-pub-3940256099942544/1033173712', {
96
+ * requestAgent: 'CoolAds',
97
+ * });
98
+ * ```
99
+ */
100
+ requestAgent?: string;
101
+ /**
102
+ * Server Side Verification(SSV) Options
103
+ * See [Google Mobile SDK Docs](https://developers.google.com/admob/android/ssv) for more information.
104
+ */
105
+ serverSideVerificationOptions?: ServerSideVerificationOptions;
106
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * A `RewardedAdReward` returned from rewarded ads.
3
+ */
4
+ export interface RewardedAdReward {
5
+ /**
6
+ * The reward name, e.g. 'coins', 'diamonds'.
7
+ */
8
+ type: string;
9
+ /**
10
+ * The number value of the reward, e.g. 10
11
+ */
12
+ amount: number;
13
+ }
@@ -0,0 +1,2 @@
1
+ import { RequestConfiguration } from './types/RequestConfiguration';
2
+ export declare function validateAdRequestConfiguration(requestConfiguration: RequestConfiguration): RequestConfiguration;
@@ -0,0 +1,2 @@
1
+ import { RequestOptions } from './types/RequestOptions';
2
+ export declare function validateAdRequestOptions(options?: RequestOptions): RequestOptions;
@@ -0,0 +1,2 @@
1
+ import { AdShowOptions } from './types/AdShowOptions';
2
+ export declare function validateAdShowOptions(options?: AdShowOptions): AdShowOptions;
@@ -0,0 +1 @@
1
+ export declare const version = "4.1.0";