react-native-google-mobile-ads 5.0.1 → 6.0.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.
- package/RNGoogleMobileAds.podspec +1 -1
- package/__tests__/interstitial.test.ts +32 -5
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsAppOpenModule.java +2 -1
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsBannerAdViewManager.java +110 -68
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsCommon.java +5 -11
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsConsentModule.java +19 -5
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsEvent.java +1 -0
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsInterstitialModule.java +38 -20
- package/android/src/main/java/io/invertase/googlemobileads/ReactNativeGoogleMobileAdsModule.java +45 -0
- package/docs/ad-inspector.mdx +39 -0
- package/docs/common-reasons-for-ads-not-showing.mdx +26 -24
- package/docs/displaying-ads-hook.mdx +99 -0
- package/docs/displaying-ads.mdx +49 -29
- package/docs/european-user-consent.mdx +34 -5
- package/docs/index.mdx +4 -4
- package/docs/migrating-to-v5.mdx +17 -8
- package/docs/migrating-to-v6.mdx +111 -0
- package/docs.json +5 -2
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsAppOpenModule.m +1 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsBannerViewManager.m +63 -8
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.h +3 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsCommon.m +8 -7
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsConsentModule.m +14 -0
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.h +2 -1
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsFullScreenContentDelegate.m +17 -2
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsInterstitialModule.m +44 -30
- package/ios/RNGoogleMobileAds/RNGoogleMobileAdsModule.m +19 -0
- package/lib/commonjs/AdEventType.js.map +1 -1
- package/lib/commonjs/AdsConsent.js +47 -16
- package/lib/commonjs/AdsConsent.js.map +1 -1
- package/lib/commonjs/AdsConsentPurposes.js +47 -0
- package/lib/commonjs/AdsConsentPurposes.js.map +1 -0
- package/lib/commonjs/AdsConsentSpecialFeatures.js +39 -0
- package/lib/commonjs/AdsConsentSpecialFeatures.js.map +1 -0
- package/lib/commonjs/GAMAdEventType.js +30 -0
- package/lib/commonjs/GAMAdEventType.js.map +1 -0
- package/lib/commonjs/MobileAds.js +4 -0
- package/lib/commonjs/MobileAds.js.map +1 -1
- package/lib/commonjs/RewardedAdEventType.js.map +1 -1
- package/lib/commonjs/TestIds.js +5 -0
- package/lib/commonjs/TestIds.js.map +1 -1
- package/lib/commonjs/ads/AppOpenAd.js +8 -53
- package/lib/commonjs/ads/AppOpenAd.js.map +1 -1
- package/lib/commonjs/ads/BannerAd.js +7 -110
- package/lib/commonjs/ads/BannerAd.js.map +1 -1
- package/lib/commonjs/ads/BaseAd.js +144 -0
- package/lib/commonjs/ads/BaseAd.js.map +1 -0
- package/lib/commonjs/ads/GAMBannerAd.js +42 -0
- package/lib/commonjs/ads/GAMBannerAd.js.map +1 -0
- package/lib/commonjs/ads/GAMInterstitialAd.js +48 -0
- package/lib/commonjs/ads/GAMInterstitialAd.js.map +1 -0
- package/lib/commonjs/ads/InterstitialAd.js +13 -64
- package/lib/commonjs/ads/InterstitialAd.js.map +1 -1
- package/lib/commonjs/ads/MobileAd.js +119 -12
- package/lib/commonjs/ads/MobileAd.js.map +1 -1
- package/lib/commonjs/ads/RewardedAd.js +23 -65
- package/lib/commonjs/ads/RewardedAd.js.map +1 -1
- package/lib/commonjs/hooks/useAppOpenAd.js +51 -0
- package/lib/commonjs/hooks/useAppOpenAd.js.map +1 -0
- package/lib/commonjs/hooks/useFullScreenAd.js +125 -0
- package/lib/commonjs/hooks/useFullScreenAd.js.map +1 -0
- package/lib/commonjs/hooks/useInterstitialAd.js +51 -0
- package/lib/commonjs/hooks/useInterstitialAd.js.map +1 -0
- package/lib/commonjs/hooks/useRewardedAd.js +51 -0
- package/lib/commonjs/hooks/useRewardedAd.js.map +1 -0
- package/lib/commonjs/index.js +102 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/types/AdEventsListener.js +6 -0
- package/lib/commonjs/types/AdEventsListener.js.map +1 -0
- package/lib/commonjs/types/AdStates.js +6 -0
- package/lib/commonjs/types/AdStates.js.map +1 -0
- package/lib/commonjs/types/AppEvent.js +2 -0
- package/lib/commonjs/types/AppEvent.js.map +1 -0
- package/lib/commonjs/types/index.js +149 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/validateAdRequestOptions.js +0 -38
- package/lib/commonjs/validateAdRequestOptions.js.map +1 -1
- package/lib/commonjs/version.js +2 -2
- package/lib/commonjs/version.js.map +1 -1
- package/lib/module/AdEventType.js.map +1 -1
- package/lib/module/AdsConsent.js +44 -16
- package/lib/module/AdsConsent.js.map +1 -1
- package/lib/module/AdsConsentPurposes.js +39 -0
- package/lib/module/AdsConsentPurposes.js.map +1 -0
- package/lib/module/AdsConsentSpecialFeatures.js +31 -0
- package/lib/module/AdsConsentSpecialFeatures.js.map +1 -0
- package/lib/module/GAMAdEventType.js +22 -0
- package/lib/module/GAMAdEventType.js.map +1 -0
- package/lib/module/MobileAds.js +4 -0
- package/lib/module/MobileAds.js.map +1 -1
- package/lib/module/RewardedAdEventType.js.map +1 -1
- package/lib/module/TestIds.js +5 -0
- package/lib/module/TestIds.js.map +1 -1
- package/lib/module/ads/AppOpenAd.js +10 -37
- package/lib/module/ads/AppOpenAd.js.map +1 -1
- package/lib/module/ads/BannerAd.js +7 -85
- package/lib/module/ads/BannerAd.js.map +1 -1
- package/lib/module/ads/BaseAd.js +124 -0
- package/lib/module/ads/BaseAd.js.map +1 -0
- package/lib/module/ads/GAMBannerAd.js +42 -0
- package/lib/module/ads/GAMBannerAd.js.map +1 -0
- package/lib/module/ads/GAMInterstitialAd.js +38 -0
- package/lib/module/ads/GAMInterstitialAd.js.map +1 -0
- package/lib/module/ads/InterstitialAd.js +15 -48
- package/lib/module/ads/InterstitialAd.js.map +1 -1
- package/lib/module/ads/MobileAd.js +116 -12
- package/lib/module/ads/MobileAd.js.map +1 -1
- package/lib/module/ads/RewardedAd.js +24 -49
- package/lib/module/ads/RewardedAd.js.map +1 -1
- package/lib/module/hooks/useAppOpenAd.js +38 -0
- package/lib/module/hooks/useAppOpenAd.js.map +1 -0
- package/lib/module/hooks/useFullScreenAd.js +114 -0
- package/lib/module/hooks/useFullScreenAd.js.map +1 -0
- package/lib/module/hooks/useInterstitialAd.js +38 -0
- package/lib/module/hooks/useInterstitialAd.js.map +1 -0
- package/lib/module/hooks/useRewardedAd.js +38 -0
- package/lib/module/hooks/useRewardedAd.js.map +1 -0
- package/lib/module/index.js +9 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/types/AdEventsListener.js +2 -0
- package/lib/module/types/AdEventsListener.js.map +1 -0
- package/lib/module/types/AdStates.js +2 -0
- package/lib/module/types/AdStates.js.map +1 -0
- package/lib/module/types/AppEvent.js +2 -0
- package/lib/module/types/AppEvent.js.map +1 -0
- package/lib/module/types/index.js +28 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/validateAdRequestOptions.js +1 -39
- package/lib/module/validateAdRequestOptions.js.map +1 -1
- package/lib/module/version.js +2 -2
- package/lib/module/version.js.map +1 -1
- package/lib/typescript/AdEventType.d.ts +4 -8
- package/lib/typescript/AdsConsentPurposes.d.ts +148 -0
- package/lib/typescript/AdsConsentSpecialFeatures.d.ts +22 -0
- package/lib/typescript/GAMAdEventType.d.ts +20 -0
- package/lib/typescript/MobileAds.d.ts +2 -1
- package/lib/typescript/RewardedAdEventType.d.ts +7 -11
- package/lib/typescript/TestIds.d.ts +5 -0
- package/lib/typescript/ads/AppOpenAd.d.ts +6 -6
- package/lib/typescript/ads/BannerAd.d.ts +1 -1
- package/lib/typescript/ads/BaseAd.d.ts +35 -0
- package/lib/typescript/ads/GAMBannerAd.d.ts +7 -0
- package/lib/typescript/ads/GAMInterstitialAd.d.ts +33 -0
- package/lib/typescript/ads/InterstitialAd.d.ts +10 -16
- package/lib/typescript/ads/MobileAd.d.ts +34 -16
- package/lib/typescript/ads/RewardedAd.d.ts +17 -19
- package/lib/typescript/hooks/useAppOpenAd.d.ts +9 -0
- package/lib/typescript/hooks/useFullScreenAd.d.ts +5 -0
- package/lib/typescript/hooks/useInterstitialAd.d.ts +9 -0
- package/lib/typescript/hooks/useRewardedAd.d.ts +9 -0
- package/lib/typescript/index.d.ts +10 -1
- package/lib/typescript/types/AdEventListener.d.ts +5 -9
- package/lib/typescript/types/AdEventsListener.d.ts +8 -0
- package/lib/typescript/types/AdStates.d.ts +85 -0
- package/lib/typescript/types/AdsConsent.interface.d.ts +216 -0
- package/lib/typescript/types/AppEvent.d.ts +13 -0
- package/lib/typescript/types/BannerAdProps.d.ts +81 -4
- package/lib/typescript/types/GoogleMobileAdsNativeModule.d.ts +3 -2
- package/lib/typescript/types/MobileAd.interface.d.ts +37 -12
- package/lib/typescript/types/MobileAdsModule.interface.d.ts +9 -0
- package/lib/typescript/types/RequestOptions.d.ts +0 -22
- package/lib/typescript/types/index.d.ts +11 -0
- package/lib/typescript/version.d.ts +1 -1
- package/package.json +55 -50
- package/src/AdEventType.ts +4 -8
- package/src/AdsConsent.ts +75 -20
- package/src/AdsConsentPurposes.ts +182 -0
- package/src/AdsConsentSpecialFeatures.ts +48 -0
- package/src/GAMAdEventType.ts +37 -0
- package/src/MobileAds.ts +4 -0
- package/src/RewardedAdEventType.ts +7 -11
- package/src/TestIds.ts +5 -0
- package/src/ads/AppOpenAd.ts +11 -41
- package/src/ads/BannerAd.tsx +4 -106
- package/src/ads/BaseAd.tsx +156 -0
- package/src/ads/GAMBannerAd.tsx +37 -0
- package/src/ads/GAMInterstitialAd.ts +45 -0
- package/src/ads/InterstitialAd.ts +15 -56
- package/src/ads/MobileAd.ts +142 -29
- package/src/ads/RewardedAd.ts +29 -55
- package/src/hooks/useAppOpenAd.ts +46 -0
- package/src/hooks/useFullScreenAd.ts +105 -0
- package/src/hooks/useInterstitialAd.ts +46 -0
- package/src/hooks/useRewardedAd.ts +46 -0
- package/src/index.ts +9 -0
- package/src/types/AdEventListener.ts +31 -13
- package/src/types/AdEventsListener.ts +24 -0
- package/src/types/AdStates.ts +87 -0
- package/src/types/AdsConsent.interface.ts +220 -0
- package/src/types/AppEvent.ts +14 -0
- package/src/types/BannerAdProps.ts +81 -4
- package/src/types/GoogleMobileAdsNativeModule.ts +3 -2
- package/src/types/MobileAd.interface.ts +56 -12
- package/src/types/MobileAdsModule.interface.ts +10 -0
- package/src/types/RequestOptions.ts +0 -24
- package/src/types/index.ts +28 -0
- package/src/validateAdRequestOptions.ts +0 -45
- package/src/version.ts +2 -2
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { MobileAd } from './MobileAd';
|
|
2
|
+
import { AdEventType } from '../AdEventType';
|
|
2
3
|
import { AdEventListener } from '../types/AdEventListener';
|
|
3
|
-
import {
|
|
4
|
+
import { AdEventsListener } from '../types/AdEventsListener';
|
|
4
5
|
import { RequestOptions } from '../types/RequestOptions';
|
|
5
|
-
import { MobileAdInterface } from '../types/MobileAd.interface';
|
|
6
6
|
/**
|
|
7
7
|
* A class for interacting and showing Interstitial Ads.
|
|
8
8
|
*
|
|
@@ -32,10 +32,8 @@ import { MobileAdInterface } from '../types/MobileAd.interface';
|
|
|
32
32
|
* ```js
|
|
33
33
|
* import { AdEventType } from 'react-native-google-mobile-ads';
|
|
34
34
|
*
|
|
35
|
-
*
|
|
36
|
-
*
|
|
37
|
-
* interstitial.show();
|
|
38
|
-
* }
|
|
35
|
+
* interstitialAd.addAdEventListener(AdEventType.Loaded, () => {
|
|
36
|
+
* interstitialAd.show();
|
|
39
37
|
* });
|
|
40
38
|
*
|
|
41
39
|
* interstitial.load();
|
|
@@ -44,7 +42,8 @@ import { MobileAdInterface } from '../types/MobileAd.interface';
|
|
|
44
42
|
* The advert will be presented to the user, and several more events can be triggered such as the user clicking the
|
|
45
43
|
* advert or closing it.
|
|
46
44
|
*/
|
|
47
|
-
export declare class InterstitialAd extends MobileAd
|
|
45
|
+
export declare class InterstitialAd extends MobileAd {
|
|
46
|
+
protected static _interstitialRequest: number;
|
|
48
47
|
/**
|
|
49
48
|
* Creates a new InterstitialAd instance.
|
|
50
49
|
*
|
|
@@ -57,12 +56,8 @@ export declare class InterstitialAd extends MobileAd implements MobileAdInterfac
|
|
|
57
56
|
* requestAgent: 'CoolAds',
|
|
58
57
|
* });
|
|
59
58
|
*
|
|
60
|
-
* interstitialAd.
|
|
61
|
-
*
|
|
62
|
-
*
|
|
63
|
-
* if (type === AdEventType.LOADED) {
|
|
64
|
-
* interstitialAd.show();
|
|
65
|
-
* }
|
|
59
|
+
* interstitialAd.addAdEventListener(AdEventType.Loaded, () => {
|
|
60
|
+
* interstitialAd.show();
|
|
66
61
|
* });
|
|
67
62
|
*
|
|
68
63
|
* interstitialAd.load();
|
|
@@ -72,7 +67,6 @@ export declare class InterstitialAd extends MobileAd implements MobileAdInterfac
|
|
|
72
67
|
* @param requestOptions Optional RequestOptions used to load the ad.
|
|
73
68
|
*/
|
|
74
69
|
static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions): InterstitialAd;
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
show(showOptions?: AdShowOptions): Promise<void>;
|
|
70
|
+
addAdEventsListener<T extends AdEventType>(listener: AdEventsListener<T>): () => void;
|
|
71
|
+
addAdEventListener<T extends AdEventType>(type: T, listener: AdEventListener<T>): () => void;
|
|
78
72
|
}
|
|
@@ -1,32 +1,50 @@
|
|
|
1
1
|
import { EmitterSubscription } from 'react-native';
|
|
2
|
-
import { RewardedAdEventType } from '../RewardedAdEventType';
|
|
3
2
|
import { AdEventType } from '../AdEventType';
|
|
3
|
+
import { RewardedAdEventType } from '../RewardedAdEventType';
|
|
4
4
|
import { AdEventListener } from '../types/AdEventListener';
|
|
5
|
+
import { AdEventsListener } from '../types/AdEventsListener';
|
|
6
|
+
import { AdShowOptions } from '../types/AdShowOptions';
|
|
5
7
|
import { RequestOptions } from '../types/RequestOptions';
|
|
8
|
+
import { MobileAdInterface } from '../types/MobileAd.interface';
|
|
6
9
|
import { MobileAdsModuleInterface } from '../types/MobileAdsModule.interface';
|
|
7
10
|
import { RewardedAdReward } from '../types/RewardedAdReward';
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
11
|
+
import { GAMAdEventType } from '../GAMAdEventType';
|
|
12
|
+
import { AppEvent } from '../types/AppEvent';
|
|
13
|
+
declare type EventType = AdEventType | RewardedAdEventType | GAMAdEventType;
|
|
14
|
+
export declare abstract class MobileAd implements MobileAdInterface {
|
|
15
|
+
protected _type: 'app_open' | 'interstitial' | 'rewarded';
|
|
16
|
+
protected _googleMobileAds: MobileAdsModuleInterface;
|
|
17
|
+
protected _requestId: number;
|
|
18
|
+
protected _adUnitId: string;
|
|
19
|
+
protected _requestOptions: RequestOptions;
|
|
20
|
+
protected _loaded: boolean;
|
|
21
|
+
protected _isLoadCalled: boolean;
|
|
22
|
+
protected _adEventsListeners: Map<number, AdEventsListener<EventType>>;
|
|
23
|
+
protected _adEventListenersMap: Map<EventType, Map<number, AdEventListener<EventType>>>;
|
|
24
|
+
protected _adEventsListenerId: number;
|
|
25
|
+
protected _adEventListenerId: number;
|
|
26
|
+
protected _nativeListener: EmitterSubscription;
|
|
27
|
+
protected constructor(type: 'app_open' | 'interstitial' | 'rewarded', googleMobileAds: MobileAdsModuleInterface, requestId: number, adUnitId: string, requestOptions: RequestOptions);
|
|
28
|
+
protected _handleAdEvent(event: {
|
|
20
29
|
body: {
|
|
21
|
-
type:
|
|
30
|
+
type: EventType;
|
|
22
31
|
error?: {
|
|
23
32
|
code: string;
|
|
24
33
|
message: string;
|
|
25
34
|
};
|
|
26
|
-
data?: RewardedAdReward;
|
|
35
|
+
data?: RewardedAdReward | AppEvent;
|
|
27
36
|
};
|
|
28
37
|
}): void;
|
|
29
|
-
|
|
38
|
+
protected _addAdEventsListener<T extends EventType>(listener: AdEventsListener<T>): () => void;
|
|
39
|
+
protected _addAdEventListener<T extends EventType>(type: T, listener: AdEventListener<T>): () => void;
|
|
40
|
+
protected _getAdEventListeners<T extends EventType>(type: T): Map<number, AdEventListener<T>>;
|
|
41
|
+
protected get _className(): string;
|
|
42
|
+
load(): void;
|
|
43
|
+
show(showOptions?: AdShowOptions): Promise<void>;
|
|
44
|
+
abstract addAdEventsListener<T extends never>(listener: AdEventsListener<T>): () => void;
|
|
45
|
+
abstract addAdEventListener<T extends never>(type: T, listener: AdEventListener<T>): void;
|
|
46
|
+
removeAllListeners(): void;
|
|
30
47
|
get adUnitId(): string;
|
|
31
48
|
get loaded(): boolean;
|
|
32
49
|
}
|
|
50
|
+
export {};
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { MobileAd } from './MobileAd';
|
|
2
|
+
import { AdEventType } from '../AdEventType';
|
|
3
|
+
import { RewardedAdEventType } from '../RewardedAdEventType';
|
|
2
4
|
import { AdEventListener } from '../types/AdEventListener';
|
|
3
|
-
import {
|
|
5
|
+
import { AdEventsListener } from '../types/AdEventsListener';
|
|
4
6
|
import { RequestOptions } from '../types/RequestOptions';
|
|
5
|
-
import { MobileAdInterface } from '../types/MobileAd.interface';
|
|
6
7
|
/**
|
|
7
8
|
* A class for interacting and showing Rewarded Ads.
|
|
8
9
|
*
|
|
@@ -35,13 +36,11 @@ import { MobileAdInterface } from '../types/MobileAd.interface';
|
|
|
35
36
|
* ```js
|
|
36
37
|
* import { RewardedAdEventType } from 'react-native-google-mobile-ads';
|
|
37
38
|
*
|
|
38
|
-
* rewarded.
|
|
39
|
-
*
|
|
40
|
-
*
|
|
41
|
-
*
|
|
42
|
-
*
|
|
43
|
-
* console.log('User earned reward of ', reward);
|
|
44
|
-
* }
|
|
39
|
+
* rewarded.addAdEventListener(RewardedAdEventType.LOADED. () => {
|
|
40
|
+
* rewarded.show();
|
|
41
|
+
* });
|
|
42
|
+
* rewarded.addAdEventListener(RewardedAdEventType.EARNED_REWARD. (reward) => {
|
|
43
|
+
* console.log('User earned reward of ', reward);
|
|
45
44
|
* });
|
|
46
45
|
*
|
|
47
46
|
* rewarded.load();
|
|
@@ -50,7 +49,8 @@ import { MobileAdInterface } from '../types/MobileAd.interface';
|
|
|
50
49
|
* The rewarded advert will be presented to the user, and several more events can be triggered such as the user clicking the
|
|
51
50
|
* advert, closing it or completing the action.
|
|
52
51
|
*/
|
|
53
|
-
export declare class RewardedAd extends MobileAd
|
|
52
|
+
export declare class RewardedAd extends MobileAd {
|
|
53
|
+
protected static _rewardedRequest: number;
|
|
54
54
|
/**
|
|
55
55
|
* Creates a new RewardedAd instance.
|
|
56
56
|
*
|
|
@@ -63,12 +63,11 @@ export declare class RewardedAd extends MobileAd implements MobileAdInterface {
|
|
|
63
63
|
* requestAgent: 'CoolAds',
|
|
64
64
|
* });
|
|
65
65
|
*
|
|
66
|
-
*
|
|
67
|
-
*
|
|
68
|
-
*
|
|
69
|
-
*
|
|
70
|
-
*
|
|
71
|
-
* }
|
|
66
|
+
* rewarded.addAdEventListener(RewardedAdEventType.LOADED. () => {
|
|
67
|
+
* rewarded.show();
|
|
68
|
+
* });
|
|
69
|
+
* rewarded.addAdEventListener(RewardedAdEventType.EARNED_REWARD. (reward) => {
|
|
70
|
+
* console.log('User earned reward of ', reward);
|
|
72
71
|
* });
|
|
73
72
|
*
|
|
74
73
|
* rewardedAd.load();
|
|
@@ -78,7 +77,6 @@ export declare class RewardedAd extends MobileAd implements MobileAdInterface {
|
|
|
78
77
|
* @param requestOptions Optional RequestOptions used to load the ad.
|
|
79
78
|
*/
|
|
80
79
|
static createForAdRequest(adUnitId: string, requestOptions?: RequestOptions): RewardedAd;
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
show(showOptions?: AdShowOptions): Promise<void>;
|
|
80
|
+
addAdEventsListener<T extends AdEventType | RewardedAdEventType>(listener: AdEventsListener<T>): () => void;
|
|
81
|
+
addAdEventListener<T extends AdEventType | RewardedAdEventType>(type: T, listener: AdEventListener<T>): () => void;
|
|
84
82
|
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AdHookReturns } from '../types/AdStates';
|
|
2
|
+
import { RequestOptions } from '../types/RequestOptions';
|
|
3
|
+
/**
|
|
4
|
+
* React Hook for App Open Ad.
|
|
5
|
+
*
|
|
6
|
+
* @param adUnitId The Ad Unit ID for the App Open Ad. You can find this on your Google Mobile Ads dashboard. You can destroy ad instance by setting this value to null.
|
|
7
|
+
* @param requestOptions Optional RequestOptions used to load the ad.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useAppOpenAd(adUnitId: string | null, requestOptions?: RequestOptions): Omit<AdHookReturns, 'reward' | 'isEarnedReward'>;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { AppOpenAd } from '../ads/AppOpenAd';
|
|
2
|
+
import { InterstitialAd } from '../ads/InterstitialAd';
|
|
3
|
+
import { RewardedAd } from '../ads/RewardedAd';
|
|
4
|
+
import { AdHookReturns } from '../types/AdStates';
|
|
5
|
+
export declare function useFullScreenAd<T extends InterstitialAd | RewardedAd | AppOpenAd | null>(ad: T): AdHookReturns;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AdHookReturns } from '../types/AdStates';
|
|
2
|
+
import { RequestOptions } from '../types/RequestOptions';
|
|
3
|
+
/**
|
|
4
|
+
* React Hook for Interstitial Ad.
|
|
5
|
+
*
|
|
6
|
+
* @param adUnitId The Ad Unit ID for the Interstitial Ad. You can find this on your Google Mobile Ads dashboard. You can destroy ad instance by setting this value to null.
|
|
7
|
+
* @param requestOptions Optional RequestOptions used to load the ad.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useInterstitialAd(adUnitId: string | null, requestOptions?: RequestOptions): Omit<AdHookReturns, 'reward' | 'isEarnedReward'>;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AdHookReturns } from '../types/AdStates';
|
|
2
|
+
import { RequestOptions } from '../types/RequestOptions';
|
|
3
|
+
/**
|
|
4
|
+
* React Hook for Rewarded Ad.
|
|
5
|
+
*
|
|
6
|
+
* @param adUnitId The Ad Unit ID for the Rewarded Ad. You can find this on your Google Mobile Ads dashboard. You can destroy ad instance by setting this value to null.
|
|
7
|
+
* @param requestOptions Optional RequestOptions used to load the ad.
|
|
8
|
+
*/
|
|
9
|
+
export declare function useRewardedAd(adUnitId: string | null, requestOptions?: RequestOptions): Omit<AdHookReturns, 'adReward'>;
|
|
@@ -1,14 +1,23 @@
|
|
|
1
|
-
export declare const SDK_VERSION = "
|
|
1
|
+
export declare const SDK_VERSION = "6.0.0";
|
|
2
2
|
export { default, MobileAds } from './MobileAds';
|
|
3
3
|
export { AdsConsentDebugGeography } from './AdsConsentDebugGeography';
|
|
4
|
+
export { AdsConsentPurposes } from './AdsConsentPurposes';
|
|
5
|
+
export { AdsConsentSpecialFeatures } from './AdsConsentSpecialFeatures';
|
|
4
6
|
export { AdsConsentStatus } from './AdsConsentStatus';
|
|
5
7
|
export { MaxAdContentRating } from './MaxAdContentRating';
|
|
6
8
|
export { TestIds } from './TestIds';
|
|
7
9
|
export { AdEventType } from './AdEventType';
|
|
8
10
|
export { BannerAdSize } from './BannerAdSize';
|
|
11
|
+
export { GAMAdEventType } from './GAMAdEventType';
|
|
9
12
|
export { RewardedAdEventType } from './RewardedAdEventType';
|
|
10
13
|
export { AdsConsent } from './AdsConsent';
|
|
11
14
|
export { AppOpenAd } from './ads/AppOpenAd';
|
|
12
15
|
export { InterstitialAd } from './ads/InterstitialAd';
|
|
13
16
|
export { RewardedAd } from './ads/RewardedAd';
|
|
14
17
|
export { BannerAd } from './ads/BannerAd';
|
|
18
|
+
export { GAMBannerAd } from './ads/GAMBannerAd';
|
|
19
|
+
export { GAMInterstitialAd } from './ads/GAMInterstitialAd';
|
|
20
|
+
export { useAppOpenAd } from './hooks/useAppOpenAd';
|
|
21
|
+
export { useInterstitialAd } from './hooks/useInterstitialAd';
|
|
22
|
+
export { useRewardedAd } from './hooks/useRewardedAd';
|
|
23
|
+
export * from './types';
|
|
@@ -1,11 +1,7 @@
|
|
|
1
1
|
import { AdEventType } from '../AdEventType';
|
|
2
|
-
import {
|
|
2
|
+
import { GAMAdEventType } from '../GAMAdEventType';
|
|
3
3
|
import { RewardedAdEventType } from '../RewardedAdEventType';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
* @param error An optional JavaScript Error containing the error code and message.
|
|
9
|
-
* @param data Optional data for the event, e.g. reward type and amount
|
|
10
|
-
*/
|
|
11
|
-
export declare type AdEventListener = (type: AdEventType | RewardedAdEventType, error?: Error, data?: RewardedAdReward) => void;
|
|
4
|
+
import { AppEvent } from './AppEvent';
|
|
5
|
+
import { RewardedAdReward } from './RewardedAdReward';
|
|
6
|
+
export declare type AdEventPayload<T extends AdEventType | RewardedAdEventType | GAMAdEventType = never> = T extends AdEventType.ERROR ? Error : T extends RewardedAdEventType ? RewardedAdReward : T extends GAMAdEventType ? AppEvent : undefined;
|
|
7
|
+
export declare type AdEventListener<T extends AdEventType | RewardedAdEventType | GAMAdEventType = never> = (payload: AdEventPayload<T>) => void;
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { AdEventType } from '../AdEventType';
|
|
2
|
+
import { GAMAdEventType } from '../GAMAdEventType';
|
|
3
|
+
import { RewardedAdEventType } from '../RewardedAdEventType';
|
|
4
|
+
import { AdEventPayload } from './AdEventListener';
|
|
5
|
+
export declare type AdEventsListener<T extends AdEventType | RewardedAdEventType | GAMAdEventType = never> = (eventInfo: {
|
|
6
|
+
type: T;
|
|
7
|
+
payload: AdEventPayload<T>;
|
|
8
|
+
}) => void;
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { AdShowOptions } from './AdShowOptions';
|
|
2
|
+
import { RewardedAdReward } from './RewardedAdReward';
|
|
3
|
+
export interface AdStates {
|
|
4
|
+
/**
|
|
5
|
+
* Whether the ad is loaded and ready to to be shown to the user.
|
|
6
|
+
*/
|
|
7
|
+
isLoaded: boolean;
|
|
8
|
+
/**
|
|
9
|
+
* Whether the ad is opened.
|
|
10
|
+
*/
|
|
11
|
+
isOpened: boolean;
|
|
12
|
+
/**
|
|
13
|
+
* Whether the user clicked the advert.
|
|
14
|
+
*/
|
|
15
|
+
isClicked: boolean;
|
|
16
|
+
/**
|
|
17
|
+
* Whether the user closed the ad and has returned back to your application.
|
|
18
|
+
*/
|
|
19
|
+
isClosed: boolean;
|
|
20
|
+
/**
|
|
21
|
+
* JavaScript Error containing the error code and message thrown by the Ad.
|
|
22
|
+
*/
|
|
23
|
+
error?: Error;
|
|
24
|
+
/**
|
|
25
|
+
* Loaded reward item of the Rewarded Ad.
|
|
26
|
+
*/
|
|
27
|
+
reward?: RewardedAdReward;
|
|
28
|
+
/**
|
|
29
|
+
* Whether the user earned the reward by Rewarded Ad.
|
|
30
|
+
*/
|
|
31
|
+
isEarnedReward?: boolean;
|
|
32
|
+
}
|
|
33
|
+
export interface AdHookReturns extends AdStates {
|
|
34
|
+
/**
|
|
35
|
+
* Whether your ad is showing.
|
|
36
|
+
* The value is equal with `isOpened && !isClosed`.
|
|
37
|
+
*/
|
|
38
|
+
isShowing: boolean;
|
|
39
|
+
/**
|
|
40
|
+
* Start loading the advert with the provided RequestOptions.
|
|
41
|
+
* #### Example
|
|
42
|
+
*
|
|
43
|
+
* ```jsx
|
|
44
|
+
* export default function App() {
|
|
45
|
+
* const interstitial = useInterstitialAd(TestIds.INTERSTITIAL, {
|
|
46
|
+
* requestNonPersonalizedAdsOnly: true,
|
|
47
|
+
* });
|
|
48
|
+
* useEffect(() => {
|
|
49
|
+
* interstitial.load();
|
|
50
|
+
* }, [interstitial.load]);
|
|
51
|
+
* }
|
|
52
|
+
* ```
|
|
53
|
+
*/
|
|
54
|
+
load: () => void;
|
|
55
|
+
/**
|
|
56
|
+
* Show the loaded advert to the user.
|
|
57
|
+
*
|
|
58
|
+
* #### Example
|
|
59
|
+
*
|
|
60
|
+
* ```jsx
|
|
61
|
+
* export default function App() {
|
|
62
|
+
* const interstitial = useInterstitialAd(TestIds.INTERSTITIAL, {
|
|
63
|
+
* requestNonPersonalizedAdsOnly: true,
|
|
64
|
+
* });
|
|
65
|
+
* return (
|
|
66
|
+
* <View>
|
|
67
|
+
* <Button
|
|
68
|
+
* title="Navigate to next screen"
|
|
69
|
+
* onPress={() => {
|
|
70
|
+
* if (interstitial.isLoaded) {
|
|
71
|
+
* interstitial.show();
|
|
72
|
+
* } else {
|
|
73
|
+
* navigation.navigate('NextScreen');
|
|
74
|
+
* }
|
|
75
|
+
* }}
|
|
76
|
+
* />
|
|
77
|
+
* </View>
|
|
78
|
+
* )
|
|
79
|
+
* }
|
|
80
|
+
* ```
|
|
81
|
+
*
|
|
82
|
+
* @param showOptions An optional `AdShowOptions` interface.
|
|
83
|
+
*/
|
|
84
|
+
show: (showOptions?: AdShowOptions) => void;
|
|
85
|
+
}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TCModel } from '@iabtcf/core';
|
|
1
2
|
import { AdsConsentDebugGeography } from '../AdsConsentDebugGeography';
|
|
2
3
|
import { AdsConsentStatus } from '../AdsConsentStatus';
|
|
3
4
|
/**
|
|
@@ -55,6 +56,47 @@ export interface AdsConsentInterface {
|
|
|
55
56
|
* ```
|
|
56
57
|
*/
|
|
57
58
|
showForm(): Promise<AdsConsentFormResult>;
|
|
59
|
+
/**
|
|
60
|
+
* Returns the value stored under the `IABTCF_TCString` key
|
|
61
|
+
* in NSUserDefaults (iOS) / SharedPreferences (Android) as
|
|
62
|
+
* defined by the IAB Europe Transparency & Consent Framework.
|
|
63
|
+
*
|
|
64
|
+
* More information available here:
|
|
65
|
+
* https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework/blob/master/TCFv2/IAB%20Tech%20Lab%20-%20CMP%20API%20v2.md#in-app-details
|
|
66
|
+
*
|
|
67
|
+
* #### Example
|
|
68
|
+
*
|
|
69
|
+
* ```js
|
|
70
|
+
* import { AdsConsent } from '@invertase/react-native-google-ads';
|
|
71
|
+
*
|
|
72
|
+
* const tcString = await AdsConsent.getTCString();
|
|
73
|
+
* ```
|
|
74
|
+
*/
|
|
75
|
+
getTCString(): Promise<string>;
|
|
76
|
+
/**
|
|
77
|
+
* Returns the TC Model of the saved IAB TCF 2.0 String.
|
|
78
|
+
*
|
|
79
|
+
* #### Example
|
|
80
|
+
*
|
|
81
|
+
* ```js
|
|
82
|
+
* import { AdsConsent } from '@invertase/react-native-google-ads';
|
|
83
|
+
*
|
|
84
|
+
* const tcModel = await AdsConsent.getTCModel();
|
|
85
|
+
* ```
|
|
86
|
+
*/
|
|
87
|
+
getTCModel(): Promise<TCModel>;
|
|
88
|
+
/**
|
|
89
|
+
* Provides information about a user's consent choices.
|
|
90
|
+
*
|
|
91
|
+
* #### Example
|
|
92
|
+
*
|
|
93
|
+
* ```js
|
|
94
|
+
* import { AdsConsent } from '@invertase/react-native-google-ads';
|
|
95
|
+
*
|
|
96
|
+
* const { storeAndAccessInformationOnDevice } = await AdsConsent.getUserChoices();
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
getUserChoices(): Promise<AdsConsentUserChoices>;
|
|
58
100
|
/**
|
|
59
101
|
* Resets the UMP SDK state.
|
|
60
102
|
*
|
|
@@ -117,3 +159,177 @@ export interface AdsConsentInfo {
|
|
|
117
159
|
*/
|
|
118
160
|
isConsentFormAvailable: boolean;
|
|
119
161
|
}
|
|
162
|
+
/**
|
|
163
|
+
* The options used when requesting consent information.
|
|
164
|
+
*
|
|
165
|
+
* https://vendor-list.consensu.org/v2/vendor-list.json
|
|
166
|
+
* https://github.com/InteractiveAdvertisingBureau/GDPR-Transparency-and-Consent-Framework
|
|
167
|
+
*/
|
|
168
|
+
export interface AdsConsentUserChoices {
|
|
169
|
+
/**
|
|
170
|
+
* Your device can be identified based on a scan of your device's
|
|
171
|
+
* unique combination of characteristics.
|
|
172
|
+
*
|
|
173
|
+
* Vendors can:
|
|
174
|
+
* - Create an identifier using data collected via actively scanning a device for
|
|
175
|
+
* - specific characteristics, e.g. installed fonts or screen resolution.
|
|
176
|
+
* - Use such an identifier to re-identify a device.
|
|
177
|
+
*/
|
|
178
|
+
activelyScanDeviceCharacteristicsForIdentification: boolean;
|
|
179
|
+
/**
|
|
180
|
+
* Market research can be used to learn more about the audiences who visit sites/apps and view ads.
|
|
181
|
+
*
|
|
182
|
+
* To apply market research to generate audience insights vendors can:
|
|
183
|
+
* - Provide aggregate reporting to advertisers or their representatives about
|
|
184
|
+
* the audiences reached by their ads, through panel-based and similarly derived insights.
|
|
185
|
+
* - Provide aggregate reporting to publishers about the audiences that were served or
|
|
186
|
+
* interacted with content and/or ads on their property by applying
|
|
187
|
+
* panel-based and similarly derived insights.
|
|
188
|
+
* - Associate offline data with an online user for the purposes of
|
|
189
|
+
* market research to generate audience insights if vendors have declared to match and
|
|
190
|
+
* combine offline data sources (Feature 1)
|
|
191
|
+
* - Combine this information with other information previously collected including from
|
|
192
|
+
* across websites and apps.
|
|
193
|
+
*
|
|
194
|
+
* Vendors cannot:
|
|
195
|
+
* - Measure the performance and effectiveness of ads that a specific user was served or
|
|
196
|
+
* interacted with, without a Legal Basis to measure ad performance.
|
|
197
|
+
* - Measure which content a specific user was served and how they interacted with it,
|
|
198
|
+
* without a Legal Basis to measure content performance.
|
|
199
|
+
*/
|
|
200
|
+
applyMarketResearchToGenerateAudienceInsights: boolean;
|
|
201
|
+
/**
|
|
202
|
+
* A profile can be built about you and your interests to show you personalised ads
|
|
203
|
+
* that are relevant to you.
|
|
204
|
+
*
|
|
205
|
+
* To create a personalised ads profile vendors can:
|
|
206
|
+
* - Collect information about a user, including a user's activity, interests,
|
|
207
|
+
* demographic information, or location, to create or edit a user profile for use
|
|
208
|
+
* in personalised advertising.
|
|
209
|
+
* - Combine this information with other information previously collected,
|
|
210
|
+
* including from across websites and apps, to create or edit a user profile
|
|
211
|
+
* for use in personalised advertising.
|
|
212
|
+
*/
|
|
213
|
+
createAPersonalisedAdsProfile: boolean;
|
|
214
|
+
/**
|
|
215
|
+
* A profile can be built about you and your interests to show you personalised content
|
|
216
|
+
* that is relevant to you.
|
|
217
|
+
*
|
|
218
|
+
* To create a personalised content profile vendors can:
|
|
219
|
+
* - Collect information about a user, including a user's activity, interests, visits to
|
|
220
|
+
* sites or apps, demographic information, or location, to create or edit a user profile
|
|
221
|
+
* for personalising content.
|
|
222
|
+
* - Combine this information with other information previously collected,
|
|
223
|
+
* including from across websites and apps, to create or edit a user profile for use
|
|
224
|
+
* in personalising content.
|
|
225
|
+
*/
|
|
226
|
+
createAPersonalisedContentProfile: boolean;
|
|
227
|
+
/**
|
|
228
|
+
* Your data can be used to improve existing systems and software,
|
|
229
|
+
* and to develop new products
|
|
230
|
+
*
|
|
231
|
+
* To develop new products and improve products vendors can:
|
|
232
|
+
* - Use information to improve their existing products with new features and
|
|
233
|
+
* to develop new products
|
|
234
|
+
* - Create new models and algorithms through machine learning
|
|
235
|
+
*
|
|
236
|
+
* Vendors cannot:
|
|
237
|
+
* - Conduct any other data processing operation allowed under
|
|
238
|
+
* a different purpose under this purpose
|
|
239
|
+
*/
|
|
240
|
+
developAndImproveProducts: boolean;
|
|
241
|
+
/**
|
|
242
|
+
* The performance and effectiveness of ads that you see or interact with can be measured.
|
|
243
|
+
*
|
|
244
|
+
* To measure ad performance vendors can:
|
|
245
|
+
* - Measure whether and how ads were delivered to and interacted with by a user
|
|
246
|
+
* - Provide reporting about ads including their effectiveness and performance
|
|
247
|
+
* - Provide reporting about users who interacted with ads using data observed during
|
|
248
|
+
* the course of the user's interaction with that ad
|
|
249
|
+
* - Provide reporting to publishers about the ads displayed on their property
|
|
250
|
+
* - Measure whether an ad is serving in a suitable editorial environment (brand-safe) context
|
|
251
|
+
* - Determine the percentage of the ad that had the opportunity to be seen and
|
|
252
|
+
* the duration of that opportunity
|
|
253
|
+
* - Combine this information with other information previously collected,
|
|
254
|
+
* including from across websites and apps
|
|
255
|
+
*
|
|
256
|
+
* Vendors cannot:
|
|
257
|
+
* - Apply panel- or similarly-derived audience insights data to ad measurement data
|
|
258
|
+
* without a Legal Basis to apply market research to generate audience insights (Purpose 9)
|
|
259
|
+
*/
|
|
260
|
+
measureAdPerformance: boolean;
|
|
261
|
+
/**
|
|
262
|
+
* The performance and effectiveness of content that you see or interact with can be measured.
|
|
263
|
+
*
|
|
264
|
+
* To measure content performance vendors can:
|
|
265
|
+
* - Measure and report on how content was delivered to and interacted with by users.
|
|
266
|
+
* - Provide reporting, using directly measurable or known information, about users who
|
|
267
|
+
* interacted with the content
|
|
268
|
+
* - Combine this information with other information previously collected,
|
|
269
|
+
* including from across websites and apps.
|
|
270
|
+
*
|
|
271
|
+
* Vendors cannot:
|
|
272
|
+
* - Measure whether and how ads (including native ads) were delivered to and
|
|
273
|
+
* interacted with by a user.
|
|
274
|
+
* - Apply panel- or similarly derived audience insights data to ad measurement
|
|
275
|
+
* data without a Legal Basis to apply market research to generate audience insights (Purpose 9)
|
|
276
|
+
*/
|
|
277
|
+
measureContentPerformance: boolean;
|
|
278
|
+
/**
|
|
279
|
+
* Ads can be shown to you based on the content you’re viewing,
|
|
280
|
+
* the app you’re using, your approximate location, or your device type.
|
|
281
|
+
*
|
|
282
|
+
* To do basic ad selection vendors can:
|
|
283
|
+
* - Use real-time information about the context in which the ad will be shown,
|
|
284
|
+
* to show the ad, including information about the content and the device, such as:
|
|
285
|
+
* device type and capabilities, user agent, URL, IP address
|
|
286
|
+
* - Use a user’s non-precise geolocation data
|
|
287
|
+
* - Control the frequency of ads shown to a user.
|
|
288
|
+
* - Sequence the order in which ads are shown to a user.
|
|
289
|
+
* - Prevent an ad from serving in an unsuitable editorial (brand-unsafe) context
|
|
290
|
+
*
|
|
291
|
+
* Vendors cannot:
|
|
292
|
+
* - Create a personalised ads profile using this information for the selection of
|
|
293
|
+
* future ads without a separate legal basis to create a personalised ads profile.
|
|
294
|
+
* - N.B. Non-precise means only an approximate location involving at least a radius
|
|
295
|
+
* of 500 meters is permitted.
|
|
296
|
+
*/
|
|
297
|
+
selectBasicAds: boolean;
|
|
298
|
+
/**
|
|
299
|
+
* Personalised ads can be shown to you based on a profile about you.
|
|
300
|
+
*
|
|
301
|
+
* To select personalised ads vendors can:
|
|
302
|
+
* - Select personalised ads based on a user profile or other historical user data,
|
|
303
|
+
* including a user’s prior activity, interests, visits to sites or apps, location,
|
|
304
|
+
* or demographic information.
|
|
305
|
+
*/
|
|
306
|
+
selectPersonalisedAds: boolean;
|
|
307
|
+
/**
|
|
308
|
+
* Personalised content can be shown to you based on a profile about you.
|
|
309
|
+
*
|
|
310
|
+
* To select personalised content vendors can:
|
|
311
|
+
* - Select personalised content based on a user profile or other historical user data,
|
|
312
|
+
* including a user’s prior activity, interests, visits to sites or apps, location,
|
|
313
|
+
* or demographic information.
|
|
314
|
+
*/
|
|
315
|
+
selectPersonalisedContent: boolean;
|
|
316
|
+
/**
|
|
317
|
+
* Cookies, device identifiers, or other information can be stored or
|
|
318
|
+
* accessed on your device for the purposes presented to you.
|
|
319
|
+
*
|
|
320
|
+
* Vendors can:
|
|
321
|
+
* - Store and access information on the device such as cookies and
|
|
322
|
+
* device identifiers presented to a user.
|
|
323
|
+
*/
|
|
324
|
+
storeAndAccessInformationOnDevice: boolean;
|
|
325
|
+
/**
|
|
326
|
+
* Your precise geolocation data can be used in support of one or more purposes.
|
|
327
|
+
* This means your location can be accurate to within several meters.
|
|
328
|
+
*
|
|
329
|
+
* Vendors can:
|
|
330
|
+
* - Collect and process precise geolocation data in support of one or more purposes.
|
|
331
|
+
* - Precise geolocation means that there are no restrictions on the precision of
|
|
332
|
+
* a user's location; this can be accurate to within several meters.
|
|
333
|
+
*/
|
|
334
|
+
usePreciseGeolocationData: boolean;
|
|
335
|
+
}
|