react-native-google-mobile-ads 6.2.3 → 6.3.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.
@@ -51,6 +51,7 @@ public class ReactNativeGoogleMobileAdsBannerAdViewManager
51
51
  private final String EVENT_AD_FAILED_TO_LOAD = "onAdFailedToLoad";
52
52
  private final String EVENT_AD_OPENED = "onAdOpened";
53
53
  private final String EVENT_AD_CLOSED = "onAdClosed";
54
+ private final String EVENT_SIZE_CHANGE = "onSizeChange";
54
55
  private final String EVENT_APP_EVENT = "onAppEvent";
55
56
  private final int COMMAND_ID_RECORD_MANUAL_IMPRESSION = 1;
56
57
 
@@ -121,6 +122,15 @@ public class ReactNativeGoogleMobileAdsBannerAdViewManager
121
122
  sizeList.add(ReactNativeGoogleMobileAdsCommon.getAdSize(sizeString, reactViewGroup));
122
123
  }
123
124
  }
125
+
126
+ if (sizeList.size() > 0) {
127
+ AdSize adSize = sizeList.get(0);
128
+ WritableMap payload = Arguments.createMap();
129
+ payload.putDouble("width", adSize.getWidth());
130
+ payload.putDouble("height", adSize.getHeight());
131
+ sendEvent(reactViewGroup, EVENT_SIZE_CHANGE, payload);
132
+ }
133
+
124
134
  sizes = sizeList;
125
135
  propsChanged = true;
126
136
  }
@@ -183,6 +183,11 @@ public class ReactNativeGoogleMobileAdsCommon {
183
183
  }
184
184
  }
185
185
 
186
+ if (adRequestOptions.hasKey("publisherProvidedId")) {
187
+ builder.setPublisherProvidedId(
188
+ Objects.requireNonNull(adRequestOptions.getString("publisherProvidedId")));
189
+ }
190
+
186
191
  return builder.build();
187
192
  }
188
193
 
@@ -179,8 +179,9 @@ public class ReactNativeGoogleMobileAdsModule extends ReactNativeModule {
179
179
  }
180
180
  rejectPromiseWithCodeAndMessage(
181
181
  promise, code, adInspectorError.getMessage());
182
+ } else {
183
+ promise.resolve(null);
182
184
  }
183
- promise.resolve(null);
184
185
  }
185
186
  });
186
187
  });
@@ -107,7 +107,7 @@ function App() {
107
107
  const [loaded, setLoaded] = useState(false);
108
108
 
109
109
  useEffect(() => {
110
- const unsubscribe = interstitial.addAdEventListener(AdEventType.LOADED => {
110
+ const unsubscribe = interstitial.addAdEventListener(AdEventType.LOADED, () => {
111
111
  setLoaded(true);
112
112
  });
113
113
 
@@ -83,6 +83,10 @@ NSString *const GOOGLE_MOBILE_ADS_EVENT_REWARDED_EARNED_REWARD = @"rewarded_earn
83
83
  request.customTargeting = adRequestOptions[@"customTargeting"];
84
84
  }
85
85
 
86
+ if (adRequestOptions[@"publisherProvidedId"]) {
87
+ request.publisherProvidedID = adRequestOptions[@"publisherProvidedId"];
88
+ }
89
+
86
90
  return request;
87
91
  }
88
92
 
@@ -115,8 +115,9 @@ RCT_EXPORT_METHOD(openAdInspector
115
115
  stringWithFormat:@"CODE_%d", error.code],
116
116
  @"message" : error.description,
117
117
  } mutableCopy]];
118
+ } else {
119
+ resolve(nil);
118
120
  }
119
- resolve(nil);
120
121
  }];
121
122
  }
122
123
 
@@ -116,7 +116,7 @@ class MobileAd {
116
116
  }
117
117
 
118
118
  _addAdEventListener(type, listener) {
119
- if (!((0, _common.isOneOf)(type, Object.values(_AdEventType.AdEventType)) || (0, _common.isOneOf)(type, Object.values(_RewardedAdEventType.RewardedAdEventType)) && this._type === 'rewarded')) {
119
+ if (!((0, _common.isOneOf)(type, Object.values(_AdEventType.AdEventType)) || (0, _common.isOneOf)(type, Object.values(_RewardedAdEventType.RewardedAdEventType)) && (this._type === 'rewarded' || this._type === 'rewarded_interstitial'))) {
120
120
  throw new Error(`${this._className}.addAdEventListener(*) 'type' expected a valid event type value.`);
121
121
  }
122
122
 
@@ -1 +1 @@
1
- {"version":3,"sources":["MobileAd.ts"],"names":["MobileAd","constructor","type","googleMobileAds","requestId","adUnitId","requestOptions","_type","_googleMobileAds","_requestId","_adUnitId","_requestOptions","_loaded","_isLoadCalled","_adEventsListeners","Map","_adEventListenersMap","Object","values","AdEventType","RewardedAdEventType","GAMAdEventType","_","LOADED","forEach","set","_adEventListenerId","_adEventsListenerId","_nativeListener","emitter","addListener","_handleAdEvent","bind","event","error","data","body","CLOSED","payload","NativeError","fromEvent","listener","_getAdEventListeners","_addAdEventsListener","Error","_className","id","delete","_addAdEventListener","get","name","_camelCaseType","load","native","show","showOptions","options","e","message","removeAllListeners","clear","map","loaded"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { EmitterSubscription } from 'react-native';\nimport { isFunction, isOneOf } from '../common';\nimport { NativeError } from '../internal/NativeError';\nimport { AdEventType } from '../AdEventType';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventListener, AdEventPayload } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdInterface } from '../types/MobileAd.interface';\nimport { MobileAdsModuleInterface } from '../types/MobileAdsModule.interface';\nimport { RewardedAdReward } from '../types/RewardedAdReward';\nimport { GAMAdEventType } from '../GAMAdEventType';\nimport { AppEvent } from '../types/AppEvent';\nimport { validateAdShowOptions } from '../validateAdShowOptions';\n\ntype EventType = AdEventType | RewardedAdEventType | GAMAdEventType;\n\nexport abstract class MobileAd implements MobileAdInterface {\n protected _type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial';\n protected _googleMobileAds: MobileAdsModuleInterface;\n protected _requestId: number;\n protected _adUnitId: string;\n protected _requestOptions: RequestOptions;\n protected _loaded: boolean;\n protected _isLoadCalled: boolean;\n protected _adEventsListeners: Map<number, AdEventsListener<EventType>>;\n protected _adEventListenersMap: Map<EventType, Map<number, AdEventListener<EventType>>>;\n protected _adEventsListenerId: number;\n protected _adEventListenerId: number;\n protected _nativeListener: EmitterSubscription;\n\n protected constructor(\n type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial',\n googleMobileAds: MobileAdsModuleInterface,\n requestId: number,\n adUnitId: string,\n requestOptions: RequestOptions,\n ) {\n this._type = type;\n this._googleMobileAds = googleMobileAds;\n this._requestId = requestId;\n this._adUnitId = adUnitId;\n this._requestOptions = requestOptions;\n\n this._loaded = false;\n this._isLoadCalled = false;\n this._adEventsListeners = new Map();\n this._adEventListenersMap = new Map();\n Object.values({\n ...AdEventType,\n ...RewardedAdEventType,\n ...GAMAdEventType,\n _: AdEventType.LOADED, // since AdEventType.LOADED is overwritten by RewardedAdEventType.LOADED\n }).forEach(type => {\n this._adEventListenersMap.set(type as EventType, new Map());\n });\n this._adEventListenerId = 0;\n this._adEventsListenerId = 0;\n\n this._nativeListener = googleMobileAds.emitter.addListener(\n `google_mobile_ads_${type}_event:${adUnitId}:${requestId}`,\n this._handleAdEvent.bind(this),\n );\n }\n\n protected _handleAdEvent(event: {\n body: {\n type: EventType;\n error?: { code: string; message: string };\n data?: RewardedAdReward | AppEvent;\n };\n }) {\n const { type, error, data } = event.body;\n\n if (type === AdEventType.LOADED || type === RewardedAdEventType.LOADED) {\n this._loaded = true;\n }\n\n if (type === AdEventType.CLOSED) {\n this._loaded = false;\n this._isLoadCalled = false;\n }\n\n let payload: AdEventPayload<EventType> = data;\n if (error) {\n payload = NativeError.fromEvent(error, 'googleMobileAds');\n }\n this._adEventsListeners.forEach(listener => {\n listener({\n type,\n payload,\n });\n });\n this._getAdEventListeners(type).forEach(listener => {\n listener(payload);\n });\n }\n\n protected _addAdEventsListener<T extends EventType>(listener: AdEventsListener<T>) {\n if (!isFunction(listener)) {\n throw new Error(`${this._className}.addAdEventsListener(*) 'listener' expected a function.`);\n }\n\n const id = this._adEventsListenerId++;\n this._adEventsListeners.set(id, listener as AdEventsListener<EventType>);\n return () => {\n this._adEventsListeners.delete(id);\n };\n }\n\n protected _addAdEventListener<T extends EventType>(type: T, listener: AdEventListener<T>) {\n if (\n !(\n isOneOf(type, Object.values(AdEventType)) ||\n (isOneOf(type, Object.values(RewardedAdEventType)) && this._type === 'rewarded')\n )\n ) {\n throw new Error(\n `${this._className}.addAdEventListener(*) 'type' expected a valid event type value.`,\n );\n }\n if (!isFunction(listener)) {\n throw new Error(\n `${this._className}.addAdEventListener(_, *) 'listener' expected a function.`,\n );\n }\n\n const id = this._adEventListenerId++;\n this._getAdEventListeners(type).set(id, listener);\n return () => {\n this._getAdEventListeners(type).delete(id);\n };\n }\n\n protected _getAdEventListeners<T extends EventType>(type: T) {\n return this._adEventListenersMap.get(type) as Map<number, AdEventListener<T>>;\n }\n\n protected get _className() {\n return this.constructor.name;\n }\n\n protected get _camelCaseType() {\n let type: 'appOpen' | 'interstitial' | 'rewarded' | 'rewardedInterstitial';\n if (this._type === 'app_open') {\n type = 'appOpen';\n } else if (this._type === 'rewarded_interstitial') {\n type = 'rewardedInterstitial';\n } else {\n type = this._type;\n }\n return type;\n }\n\n public load() {\n // Prevent multiple load calls\n if (this._loaded || this._isLoadCalled) {\n return;\n }\n\n this._isLoadCalled = true;\n const load = this._googleMobileAds.native[`${this._camelCaseType}Load`];\n load(this._requestId, this._adUnitId, this._requestOptions);\n }\n\n public show(showOptions?: AdShowOptions) {\n if (!this._loaded) {\n throw new Error(\n `${this._className}.show() The requested ${this._className} has not loaded and could not be shown.`,\n );\n }\n\n let options;\n try {\n options = validateAdShowOptions(showOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`${this._className}.show(*) ${e.message}.`);\n } else {\n throw e;\n }\n }\n\n const show = this._googleMobileAds.native[`${this._camelCaseType}Show`];\n return show(this._requestId, this._adUnitId, options);\n }\n\n public abstract addAdEventsListener<T extends never>(listener: AdEventsListener<T>): () => void;\n\n public abstract addAdEventListener<T extends never>(type: T, listener: AdEventListener<T>): void;\n\n public removeAllListeners() {\n this._adEventsListeners.clear();\n this._adEventListenersMap.forEach((_, type, map) => {\n map.set(type, new Map());\n });\n }\n\n public get adUnitId() {\n return this._adUnitId;\n }\n\n public get loaded() {\n return this._loaded;\n }\n}\n"]}
1
+ {"version":3,"sources":["MobileAd.ts"],"names":["MobileAd","constructor","type","googleMobileAds","requestId","adUnitId","requestOptions","_type","_googleMobileAds","_requestId","_adUnitId","_requestOptions","_loaded","_isLoadCalled","_adEventsListeners","Map","_adEventListenersMap","Object","values","AdEventType","RewardedAdEventType","GAMAdEventType","_","LOADED","forEach","set","_adEventListenerId","_adEventsListenerId","_nativeListener","emitter","addListener","_handleAdEvent","bind","event","error","data","body","CLOSED","payload","NativeError","fromEvent","listener","_getAdEventListeners","_addAdEventsListener","Error","_className","id","delete","_addAdEventListener","get","name","_camelCaseType","load","native","show","showOptions","options","e","message","removeAllListeners","clear","map","loaded"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { EmitterSubscription } from 'react-native';\nimport { isFunction, isOneOf } from '../common';\nimport { NativeError } from '../internal/NativeError';\nimport { AdEventType } from '../AdEventType';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventListener, AdEventPayload } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdInterface } from '../types/MobileAd.interface';\nimport { MobileAdsModuleInterface } from '../types/MobileAdsModule.interface';\nimport { RewardedAdReward } from '../types/RewardedAdReward';\nimport { GAMAdEventType } from '../GAMAdEventType';\nimport { AppEvent } from '../types/AppEvent';\nimport { validateAdShowOptions } from '../validateAdShowOptions';\n\ntype EventType = AdEventType | RewardedAdEventType | GAMAdEventType;\n\nexport abstract class MobileAd implements MobileAdInterface {\n protected _type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial';\n protected _googleMobileAds: MobileAdsModuleInterface;\n protected _requestId: number;\n protected _adUnitId: string;\n protected _requestOptions: RequestOptions;\n protected _loaded: boolean;\n protected _isLoadCalled: boolean;\n protected _adEventsListeners: Map<number, AdEventsListener<EventType>>;\n protected _adEventListenersMap: Map<EventType, Map<number, AdEventListener<EventType>>>;\n protected _adEventsListenerId: number;\n protected _adEventListenerId: number;\n protected _nativeListener: EmitterSubscription;\n\n protected constructor(\n type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial',\n googleMobileAds: MobileAdsModuleInterface,\n requestId: number,\n adUnitId: string,\n requestOptions: RequestOptions,\n ) {\n this._type = type;\n this._googleMobileAds = googleMobileAds;\n this._requestId = requestId;\n this._adUnitId = adUnitId;\n this._requestOptions = requestOptions;\n\n this._loaded = false;\n this._isLoadCalled = false;\n this._adEventsListeners = new Map();\n this._adEventListenersMap = new Map();\n Object.values({\n ...AdEventType,\n ...RewardedAdEventType,\n ...GAMAdEventType,\n _: AdEventType.LOADED, // since AdEventType.LOADED is overwritten by RewardedAdEventType.LOADED\n }).forEach(type => {\n this._adEventListenersMap.set(type as EventType, new Map());\n });\n this._adEventListenerId = 0;\n this._adEventsListenerId = 0;\n\n this._nativeListener = googleMobileAds.emitter.addListener(\n `google_mobile_ads_${type}_event:${adUnitId}:${requestId}`,\n this._handleAdEvent.bind(this),\n );\n }\n\n protected _handleAdEvent(event: {\n body: {\n type: EventType;\n error?: { code: string; message: string };\n data?: RewardedAdReward | AppEvent;\n };\n }) {\n const { type, error, data } = event.body;\n\n if (type === AdEventType.LOADED || type === RewardedAdEventType.LOADED) {\n this._loaded = true;\n }\n\n if (type === AdEventType.CLOSED) {\n this._loaded = false;\n this._isLoadCalled = false;\n }\n\n let payload: AdEventPayload<EventType> = data;\n if (error) {\n payload = NativeError.fromEvent(error, 'googleMobileAds');\n }\n this._adEventsListeners.forEach(listener => {\n listener({\n type,\n payload,\n });\n });\n this._getAdEventListeners(type).forEach(listener => {\n listener(payload);\n });\n }\n\n protected _addAdEventsListener<T extends EventType>(listener: AdEventsListener<T>) {\n if (!isFunction(listener)) {\n throw new Error(`${this._className}.addAdEventsListener(*) 'listener' expected a function.`);\n }\n\n const id = this._adEventsListenerId++;\n this._adEventsListeners.set(id, listener as AdEventsListener<EventType>);\n return () => {\n this._adEventsListeners.delete(id);\n };\n }\n\n protected _addAdEventListener<T extends EventType>(type: T, listener: AdEventListener<T>) {\n if (\n !(\n isOneOf(type, Object.values(AdEventType)) ||\n (isOneOf(type, Object.values(RewardedAdEventType)) &&\n (this._type === 'rewarded' || this._type === 'rewarded_interstitial'))\n )\n ) {\n throw new Error(\n `${this._className}.addAdEventListener(*) 'type' expected a valid event type value.`,\n );\n }\n if (!isFunction(listener)) {\n throw new Error(\n `${this._className}.addAdEventListener(_, *) 'listener' expected a function.`,\n );\n }\n\n const id = this._adEventListenerId++;\n this._getAdEventListeners(type).set(id, listener);\n return () => {\n this._getAdEventListeners(type).delete(id);\n };\n }\n\n protected _getAdEventListeners<T extends EventType>(type: T) {\n return this._adEventListenersMap.get(type) as Map<number, AdEventListener<T>>;\n }\n\n protected get _className() {\n return this.constructor.name;\n }\n\n protected get _camelCaseType() {\n let type: 'appOpen' | 'interstitial' | 'rewarded' | 'rewardedInterstitial';\n if (this._type === 'app_open') {\n type = 'appOpen';\n } else if (this._type === 'rewarded_interstitial') {\n type = 'rewardedInterstitial';\n } else {\n type = this._type;\n }\n return type;\n }\n\n public load() {\n // Prevent multiple load calls\n if (this._loaded || this._isLoadCalled) {\n return;\n }\n\n this._isLoadCalled = true;\n const load = this._googleMobileAds.native[`${this._camelCaseType}Load`];\n load(this._requestId, this._adUnitId, this._requestOptions);\n }\n\n public show(showOptions?: AdShowOptions) {\n if (!this._loaded) {\n throw new Error(\n `${this._className}.show() The requested ${this._className} has not loaded and could not be shown.`,\n );\n }\n\n let options;\n try {\n options = validateAdShowOptions(showOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`${this._className}.show(*) ${e.message}.`);\n } else {\n throw e;\n }\n }\n\n const show = this._googleMobileAds.native[`${this._camelCaseType}Show`];\n return show(this._requestId, this._adUnitId, options);\n }\n\n public abstract addAdEventsListener<T extends never>(listener: AdEventsListener<T>): () => void;\n\n public abstract addAdEventListener<T extends never>(type: T, listener: AdEventListener<T>): void;\n\n public removeAllListeners() {\n this._adEventsListeners.clear();\n this._adEventListenersMap.forEach((_, type, map) => {\n map.set(type, new Map());\n });\n }\n\n public get adUnitId() {\n return this._adUnitId;\n }\n\n public get loaded() {\n return this._loaded;\n }\n}\n"]}
@@ -123,6 +123,14 @@ function validateAdRequestOptions(options) {
123
123
  out.customTargeting = options.customTargeting;
124
124
  }
125
125
 
126
+ if (options.publisherProvidedId) {
127
+ if (!(0, _common.isString)(options.publisherProvidedId)) {
128
+ throw new Error("'options.publisherProvidedId' expected a string value");
129
+ }
130
+
131
+ out.publisherProvidedId = options.publisherProvidedId;
132
+ }
133
+
126
134
  return out;
127
135
  }
128
136
  //# sourceMappingURL=validateAdRequestOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["validateAdRequestOptions.ts"],"names":["validateAdRequestOptions","options","out","Error","requestNonPersonalizedAdsOnly","networkExtras","Object","entries","forEach","key","value","keywords","i","length","keyword","contentUrl","requestAgent","serverSideVerificationOptions","ssvOptions","userId","customData","customTargeting"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport {\n isPropertySet,\n isArray,\n isBoolean,\n isObject,\n isString,\n isUndefined,\n isValidUrl,\n} from './common';\nimport { RequestOptions } from './types/RequestOptions';\n\nexport function validateAdRequestOptions(options?: RequestOptions) {\n const out: RequestOptions = {};\n\n if (isUndefined(options)) {\n return out;\n }\n\n if (!isObject(options)) {\n throw new Error(\"'options' expected an object value\");\n }\n\n if (isPropertySet(options, 'requestNonPersonalizedAdsOnly')) {\n if (!isBoolean(options.requestNonPersonalizedAdsOnly)) {\n throw new Error(\"'options.requestNonPersonalizedAdsOnly' expected a boolean value\");\n }\n\n out.requestNonPersonalizedAdsOnly = options.requestNonPersonalizedAdsOnly;\n }\n\n if (options.networkExtras) {\n if (!isObject(options.networkExtras)) {\n throw new Error(\"'options.networkExtras' expected an object of key/value pairs\");\n }\n\n Object.entries(options.networkExtras).forEach(([key, value]) => {\n if (!isString(value)) {\n throw new Error(`'options.networkExtras' expected a string value for object key \"${key}\"`);\n }\n });\n\n out.networkExtras = options.networkExtras;\n }\n\n if (options.keywords) {\n if (!isArray(options.keywords)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n\n for (let i = 0; i < options.keywords.length; i++) {\n const keyword = options.keywords[i];\n\n if (!isString(keyword)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n }\n\n out.keywords = options.keywords;\n }\n\n if (options.contentUrl) {\n if (!isString(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a string value\");\n }\n\n if (!isValidUrl(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a valid HTTP or HTTPS url.\");\n }\n\n if (options.contentUrl.length > 512) {\n throw new Error(\"'options.contentUrl' maximum length of a content URL is 512 characters.\");\n }\n\n out.contentUrl = options.contentUrl;\n }\n\n if (options.requestAgent) {\n if (!isString(options.requestAgent)) {\n throw new Error(\"'options.requestAgent' expected a string value\");\n }\n\n out.requestAgent = options.requestAgent;\n }\n\n if (options.serverSideVerificationOptions) {\n if (!isObject(options.serverSideVerificationOptions)) {\n throw new Error(\n \"'options.serverSideVerificationOptions' expected an object of key/value pairs\",\n );\n }\n\n const ssvOptions = options.serverSideVerificationOptions;\n\n if (ssvOptions.userId && !isString(ssvOptions.userId)) {\n throw new Error(\"'options.serverSideVerificationOptions.userId' expected a string value\");\n }\n\n if (ssvOptions.customData && !isString(ssvOptions.customData)) {\n throw new Error(\"'options.serverSideVerificationOptions.customData' expected a string value\");\n }\n\n out.serverSideVerificationOptions = options.serverSideVerificationOptions;\n }\n\n if (options.customTargeting) {\n if (!isObject(options.customTargeting)) {\n throw new Error(\"'options.customTargeting' expected an object of key/value pairs\");\n }\n out.customTargeting = options.customTargeting;\n }\n\n return out;\n}\n"]}
1
+ {"version":3,"sources":["validateAdRequestOptions.ts"],"names":["validateAdRequestOptions","options","out","Error","requestNonPersonalizedAdsOnly","networkExtras","Object","entries","forEach","key","value","keywords","i","length","keyword","contentUrl","requestAgent","serverSideVerificationOptions","ssvOptions","userId","customData","customTargeting","publisherProvidedId"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport {\n isPropertySet,\n isArray,\n isBoolean,\n isObject,\n isString,\n isUndefined,\n isValidUrl,\n} from './common';\nimport { RequestOptions } from './types/RequestOptions';\n\nexport function validateAdRequestOptions(options?: RequestOptions) {\n const out: RequestOptions = {};\n\n if (isUndefined(options)) {\n return out;\n }\n\n if (!isObject(options)) {\n throw new Error(\"'options' expected an object value\");\n }\n\n if (isPropertySet(options, 'requestNonPersonalizedAdsOnly')) {\n if (!isBoolean(options.requestNonPersonalizedAdsOnly)) {\n throw new Error(\"'options.requestNonPersonalizedAdsOnly' expected a boolean value\");\n }\n\n out.requestNonPersonalizedAdsOnly = options.requestNonPersonalizedAdsOnly;\n }\n\n if (options.networkExtras) {\n if (!isObject(options.networkExtras)) {\n throw new Error(\"'options.networkExtras' expected an object of key/value pairs\");\n }\n\n Object.entries(options.networkExtras).forEach(([key, value]) => {\n if (!isString(value)) {\n throw new Error(`'options.networkExtras' expected a string value for object key \"${key}\"`);\n }\n });\n\n out.networkExtras = options.networkExtras;\n }\n\n if (options.keywords) {\n if (!isArray(options.keywords)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n\n for (let i = 0; i < options.keywords.length; i++) {\n const keyword = options.keywords[i];\n\n if (!isString(keyword)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n }\n\n out.keywords = options.keywords;\n }\n\n if (options.contentUrl) {\n if (!isString(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a string value\");\n }\n\n if (!isValidUrl(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a valid HTTP or HTTPS url.\");\n }\n\n if (options.contentUrl.length > 512) {\n throw new Error(\"'options.contentUrl' maximum length of a content URL is 512 characters.\");\n }\n\n out.contentUrl = options.contentUrl;\n }\n\n if (options.requestAgent) {\n if (!isString(options.requestAgent)) {\n throw new Error(\"'options.requestAgent' expected a string value\");\n }\n\n out.requestAgent = options.requestAgent;\n }\n\n if (options.serverSideVerificationOptions) {\n if (!isObject(options.serverSideVerificationOptions)) {\n throw new Error(\n \"'options.serverSideVerificationOptions' expected an object of key/value pairs\",\n );\n }\n\n const ssvOptions = options.serverSideVerificationOptions;\n\n if (ssvOptions.userId && !isString(ssvOptions.userId)) {\n throw new Error(\"'options.serverSideVerificationOptions.userId' expected a string value\");\n }\n\n if (ssvOptions.customData && !isString(ssvOptions.customData)) {\n throw new Error(\"'options.serverSideVerificationOptions.customData' expected a string value\");\n }\n\n out.serverSideVerificationOptions = options.serverSideVerificationOptions;\n }\n\n if (options.customTargeting) {\n if (!isObject(options.customTargeting)) {\n throw new Error(\"'options.customTargeting' expected an object of key/value pairs\");\n }\n out.customTargeting = options.customTargeting;\n }\n\n if (options.publisherProvidedId) {\n if (!isString(options.publisherProvidedId)) {\n throw new Error(\"'options.publisherProvidedId' expected a string value\");\n }\n out.publisherProvidedId = options.publisherProvidedId;\n }\n\n return out;\n}\n"]}
@@ -5,6 +5,6 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.version = void 0;
7
7
  // Generated by genversion.
8
- const version = '6.2.3';
8
+ const version = '6.3.0';
9
9
  exports.version = version;
10
10
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["version.ts"],"names":["version"],"mappings":";;;;;;AAAA;AACO,MAAMA,OAAO,GAAG,OAAhB","sourcesContent":["// Generated by genversion.\nexport const version = '6.2.3';\n"]}
1
+ {"version":3,"sources":["version.ts"],"names":["version"],"mappings":";;;;;;AAAA;AACO,MAAMA,OAAO,GAAG,OAAhB","sourcesContent":["// Generated by genversion.\nexport const version = '6.3.0';\n"]}
@@ -119,7 +119,7 @@ export class MobileAd {
119
119
  }
120
120
 
121
121
  _addAdEventListener(type, listener) {
122
- if (!(isOneOf(type, Object.values(AdEventType)) || isOneOf(type, Object.values(RewardedAdEventType)) && this._type === 'rewarded')) {
122
+ if (!(isOneOf(type, Object.values(AdEventType)) || isOneOf(type, Object.values(RewardedAdEventType)) && (this._type === 'rewarded' || this._type === 'rewarded_interstitial'))) {
123
123
  throw new Error(`${this._className}.addAdEventListener(*) 'type' expected a valid event type value.`);
124
124
  }
125
125
 
@@ -1 +1 @@
1
- {"version":3,"sources":["MobileAd.ts"],"names":["isFunction","isOneOf","NativeError","AdEventType","RewardedAdEventType","GAMAdEventType","validateAdShowOptions","MobileAd","constructor","type","googleMobileAds","requestId","adUnitId","requestOptions","_type","_googleMobileAds","_requestId","_adUnitId","_requestOptions","_loaded","_isLoadCalled","_adEventsListeners","Map","_adEventListenersMap","Object","values","_","LOADED","forEach","set","_adEventListenerId","_adEventsListenerId","_nativeListener","emitter","addListener","_handleAdEvent","bind","event","error","data","body","CLOSED","payload","fromEvent","listener","_getAdEventListeners","_addAdEventsListener","Error","_className","id","delete","_addAdEventListener","get","name","_camelCaseType","load","native","show","showOptions","options","e","message","removeAllListeners","clear","map","loaded"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { EmitterSubscription } from 'react-native';\nimport { isFunction, isOneOf } from '../common';\nimport { NativeError } from '../internal/NativeError';\nimport { AdEventType } from '../AdEventType';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventListener, AdEventPayload } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdInterface } from '../types/MobileAd.interface';\nimport { MobileAdsModuleInterface } from '../types/MobileAdsModule.interface';\nimport { RewardedAdReward } from '../types/RewardedAdReward';\nimport { GAMAdEventType } from '../GAMAdEventType';\nimport { AppEvent } from '../types/AppEvent';\nimport { validateAdShowOptions } from '../validateAdShowOptions';\n\ntype EventType = AdEventType | RewardedAdEventType | GAMAdEventType;\n\nexport abstract class MobileAd implements MobileAdInterface {\n protected _type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial';\n protected _googleMobileAds: MobileAdsModuleInterface;\n protected _requestId: number;\n protected _adUnitId: string;\n protected _requestOptions: RequestOptions;\n protected _loaded: boolean;\n protected _isLoadCalled: boolean;\n protected _adEventsListeners: Map<number, AdEventsListener<EventType>>;\n protected _adEventListenersMap: Map<EventType, Map<number, AdEventListener<EventType>>>;\n protected _adEventsListenerId: number;\n protected _adEventListenerId: number;\n protected _nativeListener: EmitterSubscription;\n\n protected constructor(\n type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial',\n googleMobileAds: MobileAdsModuleInterface,\n requestId: number,\n adUnitId: string,\n requestOptions: RequestOptions,\n ) {\n this._type = type;\n this._googleMobileAds = googleMobileAds;\n this._requestId = requestId;\n this._adUnitId = adUnitId;\n this._requestOptions = requestOptions;\n\n this._loaded = false;\n this._isLoadCalled = false;\n this._adEventsListeners = new Map();\n this._adEventListenersMap = new Map();\n Object.values({\n ...AdEventType,\n ...RewardedAdEventType,\n ...GAMAdEventType,\n _: AdEventType.LOADED, // since AdEventType.LOADED is overwritten by RewardedAdEventType.LOADED\n }).forEach(type => {\n this._adEventListenersMap.set(type as EventType, new Map());\n });\n this._adEventListenerId = 0;\n this._adEventsListenerId = 0;\n\n this._nativeListener = googleMobileAds.emitter.addListener(\n `google_mobile_ads_${type}_event:${adUnitId}:${requestId}`,\n this._handleAdEvent.bind(this),\n );\n }\n\n protected _handleAdEvent(event: {\n body: {\n type: EventType;\n error?: { code: string; message: string };\n data?: RewardedAdReward | AppEvent;\n };\n }) {\n const { type, error, data } = event.body;\n\n if (type === AdEventType.LOADED || type === RewardedAdEventType.LOADED) {\n this._loaded = true;\n }\n\n if (type === AdEventType.CLOSED) {\n this._loaded = false;\n this._isLoadCalled = false;\n }\n\n let payload: AdEventPayload<EventType> = data;\n if (error) {\n payload = NativeError.fromEvent(error, 'googleMobileAds');\n }\n this._adEventsListeners.forEach(listener => {\n listener({\n type,\n payload,\n });\n });\n this._getAdEventListeners(type).forEach(listener => {\n listener(payload);\n });\n }\n\n protected _addAdEventsListener<T extends EventType>(listener: AdEventsListener<T>) {\n if (!isFunction(listener)) {\n throw new Error(`${this._className}.addAdEventsListener(*) 'listener' expected a function.`);\n }\n\n const id = this._adEventsListenerId++;\n this._adEventsListeners.set(id, listener as AdEventsListener<EventType>);\n return () => {\n this._adEventsListeners.delete(id);\n };\n }\n\n protected _addAdEventListener<T extends EventType>(type: T, listener: AdEventListener<T>) {\n if (\n !(\n isOneOf(type, Object.values(AdEventType)) ||\n (isOneOf(type, Object.values(RewardedAdEventType)) && this._type === 'rewarded')\n )\n ) {\n throw new Error(\n `${this._className}.addAdEventListener(*) 'type' expected a valid event type value.`,\n );\n }\n if (!isFunction(listener)) {\n throw new Error(\n `${this._className}.addAdEventListener(_, *) 'listener' expected a function.`,\n );\n }\n\n const id = this._adEventListenerId++;\n this._getAdEventListeners(type).set(id, listener);\n return () => {\n this._getAdEventListeners(type).delete(id);\n };\n }\n\n protected _getAdEventListeners<T extends EventType>(type: T) {\n return this._adEventListenersMap.get(type) as Map<number, AdEventListener<T>>;\n }\n\n protected get _className() {\n return this.constructor.name;\n }\n\n protected get _camelCaseType() {\n let type: 'appOpen' | 'interstitial' | 'rewarded' | 'rewardedInterstitial';\n if (this._type === 'app_open') {\n type = 'appOpen';\n } else if (this._type === 'rewarded_interstitial') {\n type = 'rewardedInterstitial';\n } else {\n type = this._type;\n }\n return type;\n }\n\n public load() {\n // Prevent multiple load calls\n if (this._loaded || this._isLoadCalled) {\n return;\n }\n\n this._isLoadCalled = true;\n const load = this._googleMobileAds.native[`${this._camelCaseType}Load`];\n load(this._requestId, this._adUnitId, this._requestOptions);\n }\n\n public show(showOptions?: AdShowOptions) {\n if (!this._loaded) {\n throw new Error(\n `${this._className}.show() The requested ${this._className} has not loaded and could not be shown.`,\n );\n }\n\n let options;\n try {\n options = validateAdShowOptions(showOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`${this._className}.show(*) ${e.message}.`);\n } else {\n throw e;\n }\n }\n\n const show = this._googleMobileAds.native[`${this._camelCaseType}Show`];\n return show(this._requestId, this._adUnitId, options);\n }\n\n public abstract addAdEventsListener<T extends never>(listener: AdEventsListener<T>): () => void;\n\n public abstract addAdEventListener<T extends never>(type: T, listener: AdEventListener<T>): void;\n\n public removeAllListeners() {\n this._adEventsListeners.clear();\n this._adEventListenersMap.forEach((_, type, map) => {\n map.set(type, new Map());\n });\n }\n\n public get adUnitId() {\n return this._adUnitId;\n }\n\n public get loaded() {\n return this._loaded;\n }\n}\n"]}
1
+ {"version":3,"sources":["MobileAd.ts"],"names":["isFunction","isOneOf","NativeError","AdEventType","RewardedAdEventType","GAMAdEventType","validateAdShowOptions","MobileAd","constructor","type","googleMobileAds","requestId","adUnitId","requestOptions","_type","_googleMobileAds","_requestId","_adUnitId","_requestOptions","_loaded","_isLoadCalled","_adEventsListeners","Map","_adEventListenersMap","Object","values","_","LOADED","forEach","set","_adEventListenerId","_adEventsListenerId","_nativeListener","emitter","addListener","_handleAdEvent","bind","event","error","data","body","CLOSED","payload","fromEvent","listener","_getAdEventListeners","_addAdEventsListener","Error","_className","id","delete","_addAdEventListener","get","name","_camelCaseType","load","native","show","showOptions","options","e","message","removeAllListeners","clear","map","loaded"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport { EmitterSubscription } from 'react-native';\nimport { isFunction, isOneOf } from '../common';\nimport { NativeError } from '../internal/NativeError';\nimport { AdEventType } from '../AdEventType';\nimport { RewardedAdEventType } from '../RewardedAdEventType';\nimport { AdEventListener, AdEventPayload } from '../types/AdEventListener';\nimport { AdEventsListener } from '../types/AdEventsListener';\nimport { AdShowOptions } from '../types/AdShowOptions';\nimport { RequestOptions } from '../types/RequestOptions';\nimport { MobileAdInterface } from '../types/MobileAd.interface';\nimport { MobileAdsModuleInterface } from '../types/MobileAdsModule.interface';\nimport { RewardedAdReward } from '../types/RewardedAdReward';\nimport { GAMAdEventType } from '../GAMAdEventType';\nimport { AppEvent } from '../types/AppEvent';\nimport { validateAdShowOptions } from '../validateAdShowOptions';\n\ntype EventType = AdEventType | RewardedAdEventType | GAMAdEventType;\n\nexport abstract class MobileAd implements MobileAdInterface {\n protected _type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial';\n protected _googleMobileAds: MobileAdsModuleInterface;\n protected _requestId: number;\n protected _adUnitId: string;\n protected _requestOptions: RequestOptions;\n protected _loaded: boolean;\n protected _isLoadCalled: boolean;\n protected _adEventsListeners: Map<number, AdEventsListener<EventType>>;\n protected _adEventListenersMap: Map<EventType, Map<number, AdEventListener<EventType>>>;\n protected _adEventsListenerId: number;\n protected _adEventListenerId: number;\n protected _nativeListener: EmitterSubscription;\n\n protected constructor(\n type: 'app_open' | 'interstitial' | 'rewarded' | 'rewarded_interstitial',\n googleMobileAds: MobileAdsModuleInterface,\n requestId: number,\n adUnitId: string,\n requestOptions: RequestOptions,\n ) {\n this._type = type;\n this._googleMobileAds = googleMobileAds;\n this._requestId = requestId;\n this._adUnitId = adUnitId;\n this._requestOptions = requestOptions;\n\n this._loaded = false;\n this._isLoadCalled = false;\n this._adEventsListeners = new Map();\n this._adEventListenersMap = new Map();\n Object.values({\n ...AdEventType,\n ...RewardedAdEventType,\n ...GAMAdEventType,\n _: AdEventType.LOADED, // since AdEventType.LOADED is overwritten by RewardedAdEventType.LOADED\n }).forEach(type => {\n this._adEventListenersMap.set(type as EventType, new Map());\n });\n this._adEventListenerId = 0;\n this._adEventsListenerId = 0;\n\n this._nativeListener = googleMobileAds.emitter.addListener(\n `google_mobile_ads_${type}_event:${adUnitId}:${requestId}`,\n this._handleAdEvent.bind(this),\n );\n }\n\n protected _handleAdEvent(event: {\n body: {\n type: EventType;\n error?: { code: string; message: string };\n data?: RewardedAdReward | AppEvent;\n };\n }) {\n const { type, error, data } = event.body;\n\n if (type === AdEventType.LOADED || type === RewardedAdEventType.LOADED) {\n this._loaded = true;\n }\n\n if (type === AdEventType.CLOSED) {\n this._loaded = false;\n this._isLoadCalled = false;\n }\n\n let payload: AdEventPayload<EventType> = data;\n if (error) {\n payload = NativeError.fromEvent(error, 'googleMobileAds');\n }\n this._adEventsListeners.forEach(listener => {\n listener({\n type,\n payload,\n });\n });\n this._getAdEventListeners(type).forEach(listener => {\n listener(payload);\n });\n }\n\n protected _addAdEventsListener<T extends EventType>(listener: AdEventsListener<T>) {\n if (!isFunction(listener)) {\n throw new Error(`${this._className}.addAdEventsListener(*) 'listener' expected a function.`);\n }\n\n const id = this._adEventsListenerId++;\n this._adEventsListeners.set(id, listener as AdEventsListener<EventType>);\n return () => {\n this._adEventsListeners.delete(id);\n };\n }\n\n protected _addAdEventListener<T extends EventType>(type: T, listener: AdEventListener<T>) {\n if (\n !(\n isOneOf(type, Object.values(AdEventType)) ||\n (isOneOf(type, Object.values(RewardedAdEventType)) &&\n (this._type === 'rewarded' || this._type === 'rewarded_interstitial'))\n )\n ) {\n throw new Error(\n `${this._className}.addAdEventListener(*) 'type' expected a valid event type value.`,\n );\n }\n if (!isFunction(listener)) {\n throw new Error(\n `${this._className}.addAdEventListener(_, *) 'listener' expected a function.`,\n );\n }\n\n const id = this._adEventListenerId++;\n this._getAdEventListeners(type).set(id, listener);\n return () => {\n this._getAdEventListeners(type).delete(id);\n };\n }\n\n protected _getAdEventListeners<T extends EventType>(type: T) {\n return this._adEventListenersMap.get(type) as Map<number, AdEventListener<T>>;\n }\n\n protected get _className() {\n return this.constructor.name;\n }\n\n protected get _camelCaseType() {\n let type: 'appOpen' | 'interstitial' | 'rewarded' | 'rewardedInterstitial';\n if (this._type === 'app_open') {\n type = 'appOpen';\n } else if (this._type === 'rewarded_interstitial') {\n type = 'rewardedInterstitial';\n } else {\n type = this._type;\n }\n return type;\n }\n\n public load() {\n // Prevent multiple load calls\n if (this._loaded || this._isLoadCalled) {\n return;\n }\n\n this._isLoadCalled = true;\n const load = this._googleMobileAds.native[`${this._camelCaseType}Load`];\n load(this._requestId, this._adUnitId, this._requestOptions);\n }\n\n public show(showOptions?: AdShowOptions) {\n if (!this._loaded) {\n throw new Error(\n `${this._className}.show() The requested ${this._className} has not loaded and could not be shown.`,\n );\n }\n\n let options;\n try {\n options = validateAdShowOptions(showOptions);\n } catch (e) {\n if (e instanceof Error) {\n throw new Error(`${this._className}.show(*) ${e.message}.`);\n } else {\n throw e;\n }\n }\n\n const show = this._googleMobileAds.native[`${this._camelCaseType}Show`];\n return show(this._requestId, this._adUnitId, options);\n }\n\n public abstract addAdEventsListener<T extends never>(listener: AdEventsListener<T>): () => void;\n\n public abstract addAdEventListener<T extends never>(type: T, listener: AdEventListener<T>): void;\n\n public removeAllListeners() {\n this._adEventsListeners.clear();\n this._adEventListenersMap.forEach((_, type, map) => {\n map.set(type, new Map());\n });\n }\n\n public get adUnitId() {\n return this._adUnitId;\n }\n\n public get loaded() {\n return this._loaded;\n }\n}\n"]}
@@ -115,6 +115,14 @@ export function validateAdRequestOptions(options) {
115
115
  out.customTargeting = options.customTargeting;
116
116
  }
117
117
 
118
+ if (options.publisherProvidedId) {
119
+ if (!isString(options.publisherProvidedId)) {
120
+ throw new Error("'options.publisherProvidedId' expected a string value");
121
+ }
122
+
123
+ out.publisherProvidedId = options.publisherProvidedId;
124
+ }
125
+
118
126
  return out;
119
127
  }
120
128
  //# sourceMappingURL=validateAdRequestOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["validateAdRequestOptions.ts"],"names":["isPropertySet","isArray","isBoolean","isObject","isString","isUndefined","isValidUrl","validateAdRequestOptions","options","out","Error","requestNonPersonalizedAdsOnly","networkExtras","Object","entries","forEach","key","value","keywords","i","length","keyword","contentUrl","requestAgent","serverSideVerificationOptions","ssvOptions","userId","customData","customTargeting"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport {\n isPropertySet,\n isArray,\n isBoolean,\n isObject,\n isString,\n isUndefined,\n isValidUrl,\n} from './common';\nimport { RequestOptions } from './types/RequestOptions';\n\nexport function validateAdRequestOptions(options?: RequestOptions) {\n const out: RequestOptions = {};\n\n if (isUndefined(options)) {\n return out;\n }\n\n if (!isObject(options)) {\n throw new Error(\"'options' expected an object value\");\n }\n\n if (isPropertySet(options, 'requestNonPersonalizedAdsOnly')) {\n if (!isBoolean(options.requestNonPersonalizedAdsOnly)) {\n throw new Error(\"'options.requestNonPersonalizedAdsOnly' expected a boolean value\");\n }\n\n out.requestNonPersonalizedAdsOnly = options.requestNonPersonalizedAdsOnly;\n }\n\n if (options.networkExtras) {\n if (!isObject(options.networkExtras)) {\n throw new Error(\"'options.networkExtras' expected an object of key/value pairs\");\n }\n\n Object.entries(options.networkExtras).forEach(([key, value]) => {\n if (!isString(value)) {\n throw new Error(`'options.networkExtras' expected a string value for object key \"${key}\"`);\n }\n });\n\n out.networkExtras = options.networkExtras;\n }\n\n if (options.keywords) {\n if (!isArray(options.keywords)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n\n for (let i = 0; i < options.keywords.length; i++) {\n const keyword = options.keywords[i];\n\n if (!isString(keyword)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n }\n\n out.keywords = options.keywords;\n }\n\n if (options.contentUrl) {\n if (!isString(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a string value\");\n }\n\n if (!isValidUrl(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a valid HTTP or HTTPS url.\");\n }\n\n if (options.contentUrl.length > 512) {\n throw new Error(\"'options.contentUrl' maximum length of a content URL is 512 characters.\");\n }\n\n out.contentUrl = options.contentUrl;\n }\n\n if (options.requestAgent) {\n if (!isString(options.requestAgent)) {\n throw new Error(\"'options.requestAgent' expected a string value\");\n }\n\n out.requestAgent = options.requestAgent;\n }\n\n if (options.serverSideVerificationOptions) {\n if (!isObject(options.serverSideVerificationOptions)) {\n throw new Error(\n \"'options.serverSideVerificationOptions' expected an object of key/value pairs\",\n );\n }\n\n const ssvOptions = options.serverSideVerificationOptions;\n\n if (ssvOptions.userId && !isString(ssvOptions.userId)) {\n throw new Error(\"'options.serverSideVerificationOptions.userId' expected a string value\");\n }\n\n if (ssvOptions.customData && !isString(ssvOptions.customData)) {\n throw new Error(\"'options.serverSideVerificationOptions.customData' expected a string value\");\n }\n\n out.serverSideVerificationOptions = options.serverSideVerificationOptions;\n }\n\n if (options.customTargeting) {\n if (!isObject(options.customTargeting)) {\n throw new Error(\"'options.customTargeting' expected an object of key/value pairs\");\n }\n out.customTargeting = options.customTargeting;\n }\n\n return out;\n}\n"]}
1
+ {"version":3,"sources":["validateAdRequestOptions.ts"],"names":["isPropertySet","isArray","isBoolean","isObject","isString","isUndefined","isValidUrl","validateAdRequestOptions","options","out","Error","requestNonPersonalizedAdsOnly","networkExtras","Object","entries","forEach","key","value","keywords","i","length","keyword","contentUrl","requestAgent","serverSideVerificationOptions","ssvOptions","userId","customData","customTargeting","publisherProvidedId"],"mappings":"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","sourcesContent":["/*\n * Copyright (c) 2016-present Invertase Limited & Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this library except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n *\n */\n\nimport {\n isPropertySet,\n isArray,\n isBoolean,\n isObject,\n isString,\n isUndefined,\n isValidUrl,\n} from './common';\nimport { RequestOptions } from './types/RequestOptions';\n\nexport function validateAdRequestOptions(options?: RequestOptions) {\n const out: RequestOptions = {};\n\n if (isUndefined(options)) {\n return out;\n }\n\n if (!isObject(options)) {\n throw new Error(\"'options' expected an object value\");\n }\n\n if (isPropertySet(options, 'requestNonPersonalizedAdsOnly')) {\n if (!isBoolean(options.requestNonPersonalizedAdsOnly)) {\n throw new Error(\"'options.requestNonPersonalizedAdsOnly' expected a boolean value\");\n }\n\n out.requestNonPersonalizedAdsOnly = options.requestNonPersonalizedAdsOnly;\n }\n\n if (options.networkExtras) {\n if (!isObject(options.networkExtras)) {\n throw new Error(\"'options.networkExtras' expected an object of key/value pairs\");\n }\n\n Object.entries(options.networkExtras).forEach(([key, value]) => {\n if (!isString(value)) {\n throw new Error(`'options.networkExtras' expected a string value for object key \"${key}\"`);\n }\n });\n\n out.networkExtras = options.networkExtras;\n }\n\n if (options.keywords) {\n if (!isArray(options.keywords)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n\n for (let i = 0; i < options.keywords.length; i++) {\n const keyword = options.keywords[i];\n\n if (!isString(keyword)) {\n throw new Error(\"'options.keywords' expected an array containing string values\");\n }\n }\n\n out.keywords = options.keywords;\n }\n\n if (options.contentUrl) {\n if (!isString(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a string value\");\n }\n\n if (!isValidUrl(options.contentUrl)) {\n throw new Error(\"'options.contentUrl' expected a valid HTTP or HTTPS url.\");\n }\n\n if (options.contentUrl.length > 512) {\n throw new Error(\"'options.contentUrl' maximum length of a content URL is 512 characters.\");\n }\n\n out.contentUrl = options.contentUrl;\n }\n\n if (options.requestAgent) {\n if (!isString(options.requestAgent)) {\n throw new Error(\"'options.requestAgent' expected a string value\");\n }\n\n out.requestAgent = options.requestAgent;\n }\n\n if (options.serverSideVerificationOptions) {\n if (!isObject(options.serverSideVerificationOptions)) {\n throw new Error(\n \"'options.serverSideVerificationOptions' expected an object of key/value pairs\",\n );\n }\n\n const ssvOptions = options.serverSideVerificationOptions;\n\n if (ssvOptions.userId && !isString(ssvOptions.userId)) {\n throw new Error(\"'options.serverSideVerificationOptions.userId' expected a string value\");\n }\n\n if (ssvOptions.customData && !isString(ssvOptions.customData)) {\n throw new Error(\"'options.serverSideVerificationOptions.customData' expected a string value\");\n }\n\n out.serverSideVerificationOptions = options.serverSideVerificationOptions;\n }\n\n if (options.customTargeting) {\n if (!isObject(options.customTargeting)) {\n throw new Error(\"'options.customTargeting' expected an object of key/value pairs\");\n }\n out.customTargeting = options.customTargeting;\n }\n\n if (options.publisherProvidedId) {\n if (!isString(options.publisherProvidedId)) {\n throw new Error(\"'options.publisherProvidedId' expected a string value\");\n }\n out.publisherProvidedId = options.publisherProvidedId;\n }\n\n return out;\n}\n"]}
@@ -1,3 +1,3 @@
1
1
  // Generated by genversion.
2
- export const version = '6.2.3';
2
+ export const version = '6.3.0';
3
3
  //# sourceMappingURL=version.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["version.ts"],"names":["version"],"mappings":"AAAA;AACA,OAAO,MAAMA,OAAO,GAAG,OAAhB","sourcesContent":["// Generated by genversion.\nexport const version = '6.2.3';\n"]}
1
+ {"version":3,"sources":["version.ts"],"names":["version"],"mappings":"AAAA;AACA,OAAO,MAAMA,OAAO,GAAG,OAAhB","sourcesContent":["// Generated by genversion.\nexport const version = '6.3.0';\n"]}
@@ -1,4 +1,4 @@
1
- export declare const SDK_VERSION = "6.2.3";
1
+ export declare const SDK_VERSION = "6.3.0";
2
2
  export { default, MobileAds } from './MobileAds';
3
3
  export { AdsConsentDebugGeography } from './AdsConsentDebugGeography';
4
4
  export { AdsConsentPurposes } from './AdsConsentPurposes';
@@ -89,4 +89,10 @@ export interface RequestOptions {
89
89
  * See [Google Mobile SDK Docs](https://developers.google.com/admob/android/ssv) for more information.
90
90
  */
91
91
  serverSideVerificationOptions?: ServerSideVerificationOptions;
92
+ /**
93
+ * Publisher provided identifier (PPID) for use in frequency capping, audience segmentation and targeting,
94
+ * sequential ad rotation, and other audience-based ad delivery controls across devices.
95
+ * See [this article](https://support.google.com/admanager/answer/2880055) for more information.
96
+ */
97
+ publisherProvidedId?: string;
92
98
  }
@@ -1 +1 @@
1
- export declare const version = "6.2.3";
1
+ export declare const version = "6.3.0";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-google-mobile-ads",
3
- "version": "6.2.3",
3
+ "version": "6.3.0",
4
4
  "author": "Invertase <oss@invertase.io> (http://invertase.io)",
5
5
  "description": "React Native Google Mobile Ads is an easy way to monetize mobile apps with targeted, in-app advertising.",
6
6
  "main": "lib/commonjs/index.js",
@@ -130,7 +130,8 @@ export abstract class MobileAd implements MobileAdInterface {
130
130
  if (
131
131
  !(
132
132
  isOneOf(type, Object.values(AdEventType)) ||
133
- (isOneOf(type, Object.values(RewardedAdEventType)) && this._type === 'rewarded')
133
+ (isOneOf(type, Object.values(RewardedAdEventType)) &&
134
+ (this._type === 'rewarded' || this._type === 'rewarded_interstitial'))
134
135
  )
135
136
  ) {
136
137
  throw new Error(
@@ -93,4 +93,11 @@ export interface RequestOptions {
93
93
  * See [Google Mobile SDK Docs](https://developers.google.com/admob/android/ssv) for more information.
94
94
  */
95
95
  serverSideVerificationOptions?: ServerSideVerificationOptions;
96
+
97
+ /**
98
+ * Publisher provided identifier (PPID) for use in frequency capping, audience segmentation and targeting,
99
+ * sequential ad rotation, and other audience-based ad delivery controls across devices.
100
+ * See [this article](https://support.google.com/admanager/answer/2880055) for more information.
101
+ */
102
+ publisherProvidedId?: string;
96
103
  }
@@ -126,5 +126,12 @@ export function validateAdRequestOptions(options?: RequestOptions) {
126
126
  out.customTargeting = options.customTargeting;
127
127
  }
128
128
 
129
+ if (options.publisherProvidedId) {
130
+ if (!isString(options.publisherProvidedId)) {
131
+ throw new Error("'options.publisherProvidedId' expected a string value");
132
+ }
133
+ out.publisherProvidedId = options.publisherProvidedId;
134
+ }
135
+
129
136
  return out;
130
137
  }
package/src/version.ts CHANGED
@@ -1,2 +1,2 @@
1
1
  // Generated by genversion.
2
- export const version = '6.2.3';
2
+ export const version = '6.3.0';