@capacitor-community/admob 8.2.1 → 8.3.0-beta.pr491.shab64a7cd68709

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (26) hide show
  1. package/README.md +1 -1
  2. package/android/build.gradle +5 -1
  3. package/android/src/main/java/com/getcapacitor/community/admob/AdMob.java +15 -0
  4. package/android/src/main/java/com/getcapacitor/community/admob/nativeads/NativeAdExecutor.kt +257 -9
  5. package/dist/esm/native-ads/native-ad-definitions.interface.d.ts +6 -0
  6. package/dist/esm/native-ads/native-ad-feed.d.ts +3 -3
  7. package/dist/esm/native-ads/native-ad-feed.js +107 -32
  8. package/dist/esm/native-ads/native-ad-feed.js.map +1 -1
  9. package/dist/esm/native-ads/native-ad-geometry.js +2 -1
  10. package/dist/esm/native-ads/native-ad-geometry.js.map +1 -1
  11. package/dist/esm/native-ads/native-ad-options.interface.d.ts +6 -2
  12. package/dist/esm/native-ads/native-ad-placement.interface.d.ts +2 -0
  13. package/dist/plugin.cjs.js +165 -33
  14. package/dist/plugin.cjs.js.map +1 -1
  15. package/dist/plugin.js +165 -33
  16. package/dist/plugin.js.map +1 -1
  17. package/docs/native-ads.md +32 -6
  18. package/ios/Sources/AdMobPlugin/AppOpen/AppOpenAdPluginEvents.swift +3 -0
  19. package/ios/Sources/AdMobPlugin/Banner/BannerAdPluginEvents.swift +3 -0
  20. package/ios/Sources/AdMobPlugin/Banner/BannerAdSizeEnum.swift +3 -0
  21. package/ios/Sources/AdMobPlugin/Banner/BannerExecutor.swift +4 -4
  22. package/ios/Sources/AdMobPlugin/Helper/AuthorizationStatusEnum.swift +3 -0
  23. package/ios/Sources/AdMobPlugin/Interstitial/InterstitialAdPluginEvents.swift +3 -0
  24. package/ios/Sources/AdMobPlugin/Rewarded/RewardAdPluginEvents.swift +3 -0
  25. package/ios/Sources/AdMobPlugin/RewardedInterstitial/RewardInterstitialAdPluginEvents.swift +3 -0
  26. package/package.json +5 -4
@@ -1 +1 @@
1
- {"version":3,"file":"plugin.js","sources":["esm/native-ads/native-ad-element.js","esm/native-ads/native-ad-geometry.js","esm/native-ads/native-ad-template.enum.js","esm/native-ads/native-ad-feed.js","esm/definitions.js","esm/banner/banner-ad-plugin-events.enum.js","esm/banner/banner-ad-position.enum.js","esm/banner/banner-ad-size.enum.js","esm/interstitial/interstitial-ad-plugin-events.enum.js","esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.js","esm/reward/reward-ad-plugin-events.enum.js","esm/consent/consent-status.enum.js","esm/consent/consent-debug-geography.enum.js","esm/shared/ad-mob-revenue-data.interface.js","esm/app-open/app-open-ad-plugin-events.enum.js","esm/native-ads/native-ad-plugin-events.enum.js","esm/index.js","esm/consent/privacy-options-requirement-status.enum.js","esm/web.js"],"sourcesContent":["export const NATIVE_AD_ELEMENT_NAME = 'capacitor-admob-native';\nexport const defineNativeAdElement = (findFeed) => {\n const runtime = globalThis;\n runtime.__capacitorAdMobNativeFeedLookup = findFeed;\n if (typeof customElements === 'undefined' || customElements.get(NATIVE_AD_ELEMENT_NAME)) {\n return;\n }\n customElements.define(NATIVE_AD_ELEMENT_NAME, class extends HTMLElement {\n static get observedAttributes() {\n return ['feed-id', 'slot-key'];\n }\n connectedCallback() {\n this.connectToFeed();\n }\n disconnectedCallback() {\n this.disconnectFromFeed();\n }\n attributeChangedCallback() {\n if (!this.isConnected) {\n return;\n }\n this.disconnectFromFeed();\n this.connectToFeed();\n }\n connectToFeed() {\n var _a, _b, _c;\n const feedId = (_a = this.getAttribute('feed-id')) === null || _a === void 0 ? void 0 : _a.trim();\n const slotKey = (_b = this.getAttribute('slot-key')) === null || _b === void 0 ? void 0 : _b.trim();\n const feed = feedId ? (_c = runtime.__capacitorAdMobNativeFeedLookup) === null || _c === void 0 ? void 0 : _c.call(runtime, feedId) : undefined;\n if (!feed || !slotKey) {\n return;\n }\n try {\n feed.attach(slotKey, this);\n this.attachedFeed = feed;\n }\n catch (error) {\n this.dispatchEvent(new CustomEvent('nativeAdError', { bubbles: true, detail: error }));\n }\n }\n disconnectFromFeed() {\n var _a;\n (_a = this.attachedFeed) === null || _a === void 0 ? void 0 : _a.detach(this);\n this.attachedFeed = undefined;\n }\n });\n};\nexport const connectNativeAdElements = () => {\n document\n .querySelectorAll(NATIVE_AD_ELEMENT_NAME)\n .forEach((element) => { var _a, _b; return (_b = (_a = element).connectToFeed) === null || _b === void 0 ? void 0 : _b.call(_a); });\n};\n//# sourceMappingURL=native-ad-element.js.map","const intersectRects = (left, right) => {\n const x = Math.max(left.x, right.x);\n const y = Math.max(left.y, right.y);\n const maxX = Math.min(left.x + left.width, right.x + right.width);\n const maxY = Math.min(left.y + left.height, right.y + right.height);\n return {\n x,\n y,\n width: Math.max(0, maxX - x),\n height: Math.max(0, maxY - y),\n };\n};\nconst toNativeRect = (rect) => ({\n x: rect.left,\n y: rect.top,\n width: rect.width,\n height: rect.height,\n});\nconst clipsDescendants = (element) => {\n const style = window.getComputedStyle(element);\n return [style.overflow, style.overflowX, style.overflowY].some((value) => ['auto', 'hidden', 'scroll', 'clip'].includes(value));\n};\nexport function* nativeAdAncestors(element) {\n var _a, _b;\n let current = element;\n while (current) {\n const root = current.getRootNode();\n current =\n (_b = (_a = current.assignedSlot) !== null && _a !== void 0 ? _a : current.parentElement) !== null && _b !== void 0 ? _b : (root instanceof ShadowRoot ? root.host : null);\n if (current)\n yield current;\n }\n}\nexport const measureNativeAdSlot = (element, scrollElement) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const style = window.getComputedStyle(element);\n const domRect = element.getBoundingClientRect();\n if (!element.isConnected ||\n style.display === 'none' ||\n style.visibility === 'hidden' ||\n Number.parseFloat(style.opacity || '1') === 0 ||\n domRect.width <= 0 ||\n domRect.height <= 0) {\n return undefined;\n }\n const rect = toNativeRect(domRect);\n let clipRect = scrollElement\n ? rect\n : {\n x: (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.offsetLeft) !== null && _b !== void 0 ? _b : 0,\n y: (_d = (_c = window.visualViewport) === null || _c === void 0 ? void 0 : _c.offsetTop) !== null && _d !== void 0 ? _d : 0,\n width: (_f = (_e = window.visualViewport) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : window.innerWidth,\n height: (_h = (_g = window.visualViewport) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : window.innerHeight,\n };\n let foundScrollElement = !scrollElement;\n for (const ancestor of nativeAdAncestors(element)) {\n if (ancestor === scrollElement) {\n foundScrollElement = true;\n break;\n }\n if (clipsDescendants(ancestor)) {\n clipRect = intersectRects(clipRect, toNativeRect(ancestor.getBoundingClientRect()));\n }\n }\n clipRect = intersectRects(rect, clipRect);\n if (!foundScrollElement || clipRect.width <= 0 || clipRect.height <= 0)\n return undefined;\n if (scrollElement) {\n const origin = scrollElement.getBoundingClientRect();\n const translate = (value) => (Object.assign(Object.assign({}, value), { x: value.x - origin.left + scrollElement.scrollLeft, y: value.y - origin.top + scrollElement.scrollTop }));\n return { rect: translate(rect), clipRect: translate(clipRect) };\n }\n return { rect, clipRect };\n};\nexport const measureNativeAdScrollContainer = (element) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const rect = toNativeRect(element.getBoundingClientRect());\n let clipRect = intersectRects(rect, {\n x: (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.offsetLeft) !== null && _b !== void 0 ? _b : 0,\n y: (_d = (_c = window.visualViewport) === null || _c === void 0 ? void 0 : _c.offsetTop) !== null && _d !== void 0 ? _d : 0,\n width: (_f = (_e = window.visualViewport) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : window.innerWidth,\n height: (_h = (_g = window.visualViewport) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : window.innerHeight,\n });\n for (const ancestor of nativeAdAncestors(element)) {\n if (clipsDescendants(ancestor)) {\n clipRect = intersectRects(clipRect, toNativeRect(ancestor.getBoundingClientRect()));\n }\n }\n return { rect, clipRect, contentWidth: element.scrollWidth, contentHeight: element.scrollHeight };\n};\n//# sourceMappingURL=native-ad-geometry.js.map","/**\n * Layouts rendered by the native Google Mobile Ads SDK.\n *\n * The dimensions of a native ad slot must remain stable while it is used by a\n * virtual scroller. `small` is intended for compact rows, while `medium`\n * includes a larger media area.\n */\nexport var NativeAdTemplate;\n(function (NativeAdTemplate) {\n NativeAdTemplate[\"Small\"] = \"small\";\n NativeAdTemplate[\"Medium\"] = \"medium\";\n})(NativeAdTemplate || (NativeAdTemplate = {}));\n//# sourceMappingURL=native-ad-template.enum.js.map","import { Capacitor } from '@capacitor/core';\nimport { connectNativeAdElements, defineNativeAdElement } from './native-ad-element';\nimport { measureNativeAdSlot, measureNativeAdScrollContainer, nativeAdAncestors } from './native-ad-geometry';\nimport { NativeAdTemplate } from './native-ad-template.enum';\nconst SCROLL_SETTLE_MS = 120;\nconst MAX_NATIVE_ADS = 3;\nconst MAX_ACTIVE_FEEDS = 2;\nconst MIN_SMALL_SLOT_WIDTH = 120;\nconst MIN_MEDIUM_SLOT_WIDTH = 144;\nconst MIN_MEDIUM_SLOT_HEIGHT = 300;\nconst MIN_SMALL_SLOT_HEIGHT = 120;\nconst TEMPLATE_ATTRIBUTE = 'data-capacitor-admob-template';\nconst applySlotDefaults = (element, template) => {\n const root = element.getRootNode();\n const container = root instanceof ShadowRoot ? root : element.ownerDocument.head;\n if (!container.querySelector('style[data-capacitor-admob-defaults]')) {\n const style = element.ownerDocument.createElement('style');\n style.setAttribute('data-capacitor-admob-defaults', '');\n // Prefer the first cascade layer; older WebViews use zero-specificity rules.\n const defaults = `\n :where([${TEMPLATE_ATTRIBUTE}]) { display: block; height: 320px; }\n :where([${TEMPLATE_ATTRIBUTE}=\"small\"]) { height: 120px; }\n `;\n style.textContent =\n 'CSSLayerBlockRule' in globalThis ? `@layer capacitor-admob-defaults { ${defaults} }` : defaults;\n container.prepend(style);\n }\n element.setAttribute(TEMPLATE_ATTRIBUTE, template);\n};\nlet bridge;\nlet sessionSequence = 0;\nconst feeds = new Map();\nconst createSessionId = () => { var _a, _b, _c; return (_c = (_b = (_a = globalThis.crypto) === null || _a === void 0 ? void 0 : _a.randomUUID) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : `${Date.now()}-${++sessionSequence}-${Math.random().toString(36).slice(2)}`; };\n/**\n * Experimental manager for native-ad integration research.\n *\n * A stable `slotKey`, rather than the element or array index, owns the native\n * ad lifecycle. Virtual-scroller compatibility has not yet been validated.\n *\n * @experimental Native overlay gesture routing is still being validated on devices.\n */\nexport class NativeAdFeed {\n constructor(options) {\n var _a;\n this.sessionId = createSessionId();\n this.slots = new Map();\n this.elementSlots = new Map();\n this.scrollRoots = new Set();\n this.destroyed = false;\n this.nativeStarted = false;\n this.paused = false;\n this.layoutInvalidated = false;\n this.lastPlacementWasDirect = false;\n this.placementAcknowledgementRequired = false;\n this.operationTask = Promise.resolve();\n this.updateDirty = false;\n this.placementSequence = 0;\n this.listenerHandles = new Set();\n this.handleViewportMotion = (event) => {\n if (this.destroyed) {\n return;\n }\n if (!(this.nativeScrollElement &&\n event instanceof Event &&\n ['scroll', 'touchmove', 'wheel'].includes(event.type))) {\n this.schedulePlacementUpdate();\n }\n this.scheduleEvaluation();\n };\n this.handleVisibilityChange = () => {\n if (this.destroyed) {\n return;\n }\n if (document.hidden) {\n this.layoutInvalidated = true;\n void this.requestPlacementUpdate();\n return;\n }\n this.scheduleEvaluation();\n };\n const id = options.feedId.trim();\n if (!id) {\n throw new Error('Native ad feed id must not be empty');\n }\n if (feeds.has(id)) {\n throw new Error(`Native ad feed id already exists: ${id}`);\n }\n if (feeds.size >= MAX_ACTIVE_FEEDS) {\n throw new Error(`At most ${MAX_ACTIVE_FEEDS} native ad feeds can be active`);\n }\n this.options = Object.assign(Object.assign({}, options), { feedId: id });\n this.nativeScrollElement = Capacitor.getPlatform() === 'ios' ? options.scrollElement : undefined;\n if (typeof IntersectionObserver !== 'undefined') {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const slotKey = this.elementSlots.get(entry.target);\n const state = slotKey ? this.slots.get(slotKey) : undefined;\n if (state) {\n state.intersecting = entry.isIntersecting;\n }\n }\n this.schedulePlacementUpdate();\n this.scheduleEvaluation();\n });\n }\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(this.handleViewportMotion);\n if (this.nativeScrollElement)\n this.resizeObserver.observe(this.nativeScrollElement);\n }\n document.addEventListener('scroll', this.handleViewportMotion, true);\n document.addEventListener('touchmove', this.handleViewportMotion, { capture: true, passive: true });\n document.addEventListener('wheel', this.handleViewportMotion, { capture: true, passive: true });\n window.addEventListener('resize', this.handleViewportMotion, { passive: true });\n (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.addEventListener('resize', this.handleViewportMotion, { passive: true });\n document.addEventListener('visibilitychange', this.handleVisibilityChange);\n document.addEventListener('load', this.handleViewportMotion, true);\n feeds.set(id, this);\n }\n static async create(options) {\n var _a;\n if (!bridge) {\n throw new Error('AdMob native ad bridge is not configured');\n }\n if (typeof document === 'undefined' || typeof window === 'undefined') {\n throw new Error('NativeAdFeed can only be created in a browser environment');\n }\n if (options.isTesting !== true && !((_a = options.adId) === null || _a === void 0 ? void 0 : _a.trim())) {\n throw new Error('adId is required unless isTesting is true');\n }\n const feed = new NativeAdFeed(options);\n try {\n await bridge.startNativeAdFeed({ feedId: feed.feedId, sessionId: feed.sessionId });\n feed.nativeStarted = true;\n defineNativeAdElement((feedId) => feeds.get(feedId));\n connectNativeAdElements();\n return feed;\n }\n catch (error) {\n await feed.destroy();\n throw error;\n }\n }\n get feedId() {\n return this.options.feedId;\n }\n async addListener(eventName, listener) {\n this.assertActive();\n if (!bridge) {\n throw new Error('AdMob native ad bridge is not configured');\n }\n const nativeHandle = await bridge.addListener(eventName, (event) => {\n if (event.feedId === this.options.feedId && event.sessionId === this.sessionId) {\n const filteredListener = listener;\n filteredListener(event);\n }\n });\n if (this.destroyed) {\n await nativeHandle.remove();\n this.assertActive();\n }\n let removed = false;\n const handle = {\n remove: async () => {\n if (removed) {\n return;\n }\n removed = true;\n this.listenerHandles.delete(handle);\n await nativeHandle.remove();\n },\n };\n this.listenerHandles.add(handle);\n return handle;\n }\n attach(slotKey, element) {\n var _a, _b, _c;\n this.assertActive();\n const normalizedKey = slotKey.trim();\n if (!normalizedKey) {\n throw new Error('Native ad slotKey must not be empty');\n }\n const previousKey = this.elementSlots.get(element);\n if (previousKey === normalizedKey) {\n return;\n }\n if (previousKey && previousKey !== normalizedKey) {\n this.detach(element);\n }\n const existing = this.slots.get(normalizedKey);\n if ((existing === null || existing === void 0 ? void 0 : existing.element) && existing.element !== element) {\n throw new Error(`Native ad slotKey is already attached: ${normalizedKey}`);\n }\n const state = existing !== null && existing !== void 0 ? existing : {\n slotKey: normalizedKey,\n generation: 0,\n intersecting: !this.intersectionObserver,\n status: 'idle',\n lastUsed: Date.now(),\n loadVersion: 0,\n };\n applySlotDefaults(element, (_a = this.options.template) !== null && _a !== void 0 ? _a : NativeAdTemplate.Medium);\n state.element = element;\n state.generation += 1;\n state.lastUsed = Date.now();\n this.slots.set(normalizedKey, state);\n this.elementSlots.set(element, normalizedKey);\n this.updateScrollRoots();\n (_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.observe(element);\n (_c = this.resizeObserver) === null || _c === void 0 ? void 0 : _c.observe(element);\n this.scheduleEvaluation();\n }\n detach(element) {\n var _a, _b;\n const slotKey = this.elementSlots.get(element);\n if (!slotKey) {\n return;\n }\n const state = this.slots.get(slotKey);\n if ((state === null || state === void 0 ? void 0 : state.element) === element) {\n state.element = undefined;\n state.intersecting = false;\n state.generation += 1;\n state.lastUsed = Date.now();\n }\n (_a = this.intersectionObserver) === null || _a === void 0 ? void 0 : _a.unobserve(element);\n (_b = this.resizeObserver) === null || _b === void 0 ? void 0 : _b.unobserve(element);\n this.elementSlots.delete(element);\n this.updateScrollRoots();\n void this.requestPlacementUpdate();\n this.scheduleEvaluation();\n }\n async reload(slotKey) {\n this.assertActive();\n const normalizedKey = slotKey.trim();\n const state = this.slots.get(normalizedKey);\n if (!state) {\n throw new Error(`Native ad slotKey is not registered: ${normalizedKey}`);\n }\n await this.runOperation(async () => {\n await this.removeStateAd(state);\n const protectedStates = new Set(this.getVisibleStates());\n protectedStates.add(state);\n await this.evictUnusedAds(protectedStates);\n if ([...this.slots.values()].filter((slot) => this.occupiesNativeAd(slot)).length >= MAX_NATIVE_ADS) {\n throw new Error('Native ad capacity is currently in use by visible slots');\n }\n await this.loadState(state);\n });\n }\n /** Immediately hides this feed's overlays until {@link resume} is called. */\n async pause() {\n this.assertActive();\n this.paused = true;\n this.layoutInvalidated = true;\n if (!(await this.requestPlacementUpdate())) {\n throw new Error('Failed to hide native ad placements');\n }\n }\n /** Re-evaluates slots and restores eligible overlays after the viewport settles. */\n resume() {\n this.assertActive();\n this.paused = false;\n this.scheduleEvaluation();\n }\n /** Hides stale overlays and remeasures after an application-driven layout change. */\n async invalidateLayout() {\n this.assertActive();\n this.layoutInvalidated = true;\n this.scheduleEvaluation();\n if (!(await this.requestPlacementUpdate())) {\n throw new Error('Failed to hide native ad placements');\n }\n }\n async destroy() {\n var _a, _b, _c;\n if (!this.destroyed) {\n this.destroyed = true;\n feeds.delete(this.options.feedId);\n document.removeEventListener('scroll', this.handleViewportMotion, true);\n for (const root of this.scrollRoots) {\n root.removeEventListener('scroll', this.handleViewportMotion, true);\n }\n this.scrollRoots.clear();\n document.removeEventListener('touchmove', this.handleViewportMotion, true);\n document.removeEventListener('wheel', this.handleViewportMotion, true);\n window.removeEventListener('resize', this.handleViewportMotion);\n (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.removeEventListener('resize', this.handleViewportMotion);\n document.removeEventListener('visibilitychange', this.handleVisibilityChange);\n document.removeEventListener('load', this.handleViewportMotion, true);\n if (this.settleTimer) {\n clearTimeout(this.settleTimer);\n }\n if (this.placementFrame !== undefined) {\n cancelAnimationFrame(this.placementFrame);\n this.placementFrame = undefined;\n }\n (_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.disconnect();\n (_c = this.resizeObserver) === null || _c === void 0 ? void 0 : _c.disconnect();\n }\n if (this.destroyTask) {\n return this.destroyTask;\n }\n this.destroyTask = this.destroyResources();\n try {\n await this.destroyTask;\n }\n finally {\n this.destroyTask = undefined;\n }\n }\n schedulePlacementUpdate() {\n if (this.destroyed || this.placementFrame !== undefined) {\n return;\n }\n this.placementFrame = requestAnimationFrame(() => {\n this.placementFrame = undefined;\n void this.requestPlacementUpdate(true);\n });\n }\n updateScrollRoots() {\n const roots = new Set();\n for (const element of this.elementSlots.keys()) {\n for (const ancestor of [element, ...nativeAdAncestors(element)]) {\n const root = ancestor.getRootNode();\n if (root instanceof ShadowRoot)\n roots.add(root);\n }\n }\n for (const root of this.scrollRoots) {\n if (!roots.has(root)) {\n root.removeEventListener('scroll', this.handleViewportMotion, true);\n this.scrollRoots.delete(root);\n }\n }\n for (const root of roots) {\n if (!this.scrollRoots.has(root)) {\n // Element scroll events do not cross a shadow boundary.\n root.addEventListener('scroll', this.handleViewportMotion, true);\n this.scrollRoots.add(root);\n }\n }\n }\n scheduleEvaluation() {\n if (this.destroyed) {\n return;\n }\n if (this.settleTimer) {\n clearTimeout(this.settleTimer);\n }\n this.settleTimer = setTimeout(() => {\n this.layoutInvalidated = false;\n void this.runOperation(() => this.evaluate());\n }, SCROLL_SETTLE_MS);\n }\n async evaluate() {\n if (this.destroyed || this.paused || document.hidden) {\n return;\n }\n const visibleStates = this.getVisibleStates();\n for (const state of visibleStates) {\n state.lastUsed = Date.now();\n }\n await this.evictUnusedAds(new Set(visibleStates));\n const occupied = [...this.slots.values()].filter((state) => this.occupiesNativeAd(state)).length;\n const loadable = visibleStates\n .filter((state) => state.status === 'idle')\n .slice(0, Math.max(0, MAX_NATIVE_ADS - occupied));\n await Promise.allSettled(loadable.map((state) => this.loadState(state)));\n void this.requestPlacementUpdate();\n }\n async loadState(state) {\n var _a;\n if (state.status !== 'idle' || !bridge) {\n return;\n }\n state.status = 'loading';\n const loadVersion = ++state.loadVersion;\n try {\n await bridge.loadNativeAd({\n feedId: this.options.feedId,\n sessionId: this.sessionId,\n slotKey: state.slotKey,\n template: (_a = this.options.template) !== null && _a !== void 0 ? _a : NativeAdTemplate.Medium,\n style: this.options.style,\n adId: this.options.adId,\n isTesting: this.options.isTesting,\n npa: this.options.npa,\n });\n if (state.loadVersion === loadVersion) {\n state.status = 'loaded';\n state.lastUsed = Date.now();\n }\n }\n catch (error) {\n if (state.loadVersion === loadVersion) {\n state.status = 'failed';\n }\n throw error;\n }\n }\n async evictUnusedAds(visibleStates) {\n const occupied = [...this.slots.values()].filter((state) => this.occupiesNativeAd(state));\n const requestedLoads = [...visibleStates].filter((state) => state.status === 'idle').length;\n const evictionCount = Math.max(0, occupied.length + Math.min(requestedLoads, MAX_NATIVE_ADS) - MAX_NATIVE_ADS);\n const evicted = occupied\n .filter((state) => !visibleStates.has(state))\n .sort((left, right) => left.lastUsed - right.lastUsed)\n .slice(0, evictionCount);\n await Promise.allSettled(evicted.map((state) => this.removeStateAd(state)));\n const detached = [...this.slots.values()]\n .filter((state) => !state.element && !this.occupiesNativeAd(state))\n .sort((left, right) => right.lastUsed - left.lastUsed);\n for (const state of detached.slice(MAX_NATIVE_ADS)) {\n this.slots.delete(state.slotKey);\n }\n }\n occupiesNativeAd(state) {\n return ['loading', 'loaded', 'removing', 'removeFailed'].includes(state.status);\n }\n getVisibleStates() {\n return [...this.slots.values()].filter((state) => {\n const measured = state.element && state.intersecting ? measureNativeAdSlot(state.element) : undefined;\n return Boolean(measured && this.isSupportedSize(measured));\n });\n }\n isSupportedSize(measured) {\n var _a, _b;\n const minimumHeight = ((_a = this.options.template) !== null && _a !== void 0 ? _a : NativeAdTemplate.Medium) === NativeAdTemplate.Small\n ? MIN_SMALL_SLOT_HEIGHT\n : MIN_MEDIUM_SLOT_HEIGHT;\n const minimumWidth = ((_b = this.options.template) !== null && _b !== void 0 ? _b : NativeAdTemplate.Medium) === NativeAdTemplate.Small\n ? MIN_SMALL_SLOT_WIDTH\n : MIN_MEDIUM_SLOT_WIDTH;\n return measured.rect.width >= minimumWidth && measured.rect.height >= minimumHeight;\n }\n async removeStateAd(state) {\n if (state.status === 'removing') {\n return;\n }\n if (!bridge || state.status === 'idle' || state.status === 'failed') {\n state.status = 'idle';\n return;\n }\n state.status = 'removing';\n const removeVersion = ++state.loadVersion;\n await this.requestPlacementUpdate();\n try {\n await bridge.removeNativeAd({\n feedId: this.options.feedId,\n sessionId: this.sessionId,\n slotKey: state.slotKey,\n });\n if (state.loadVersion === removeVersion) {\n state.status = 'idle';\n }\n }\n catch (error) {\n if (state.loadVersion === removeVersion) {\n state.status = 'removeFailed';\n }\n throw error;\n }\n }\n runOperation(operation) {\n const result = this.operationTask.then(operation);\n this.operationTask = result.catch(() => undefined);\n return result;\n }\n async destroyResources() {\n await Promise.all([\n ...[...this.listenerHandles].map((handle) => handle.remove()),\n ...(this.nativeStarted && bridge\n ? [bridge.destroyNativeAdFeed({ feedId: this.options.feedId, sessionId: this.sessionId })]\n : []),\n ]);\n this.nativeStarted = false;\n this.listenerHandles.clear();\n this.slots.clear();\n this.elementSlots.clear();\n }\n requestPlacementUpdate(allowDirect = false) {\n this.updateDirty = true;\n this.placementAcknowledgementRequired || (this.placementAcknowledgementRequired = !allowDirect);\n if (!this.placementUpdateTask) {\n this.placementUpdateTask = Promise.resolve().then(() => this.flushPlacementUpdates());\n }\n return this.placementUpdateTask;\n }\n async flushPlacementUpdates() {\n if (!bridge || this.destroyed) {\n return true;\n }\n try {\n while (this.updateDirty && !this.destroyed) {\n this.updateDirty = false;\n const allowDirect = !this.placementAcknowledgementRequired;\n this.placementAcknowledgementRequired = false;\n const placements = [...this.slots.values()]\n .filter((state) => state.status === 'loaded')\n .map((state) => {\n const measured = state.element ? measureNativeAdSlot(state.element, this.nativeScrollElement) : undefined;\n const visible = Boolean(!this.paused && !this.layoutInvalidated && measured && this.isSupportedSize(measured) && !document.hidden);\n return {\n feedId: this.options.feedId,\n slotKey: state.slotKey,\n generation: state.generation,\n visible,\n rect: measured === null || measured === void 0 ? void 0 : measured.rect,\n clipRect: measured === null || measured === void 0 ? void 0 : measured.clipRect,\n };\n });\n const scrollContainer = this.nativeScrollElement\n ? measureNativeAdScrollContainer(this.nativeScrollElement)\n : undefined;\n const serializedPlacements = JSON.stringify({ placements, scrollContainer });\n if (serializedPlacements === this.lastPlacements && (allowDirect || !this.lastPlacementWasDirect)) {\n continue;\n }\n try {\n const batch = Object.assign({ feedId: this.options.feedId, sessionId: this.sessionId, sequence: ++this.placementSequence, placements }, (scrollContainer ? { scrollContainer } : {}));\n const channel = Capacitor.getPlatform() === 'android'\n ? window\n .capacitorAdMobPlacements\n : undefined;\n let sentDirectly = false;\n if (allowDirect && channel) {\n try {\n channel.postMessage(JSON.stringify(batch));\n sentDirectly = true;\n }\n catch (_a) {\n // Keep the acknowledged bridge available if the direct channel fails.\n }\n }\n if (!sentDirectly)\n await bridge.updateNativeAdPlacements(batch);\n this.lastPlacementWasDirect = sentDirectly;\n this.lastPlacements = serializedPlacements;\n }\n catch (_b) {\n this.lastPlacements = undefined;\n // Retry on the next scroll, resize, or lifecycle update without\n // creating an unhandled rejection from this fire-and-forget task.\n this.updateDirty = true;\n return false;\n }\n }\n return true;\n }\n catch (_c) {\n this.updateDirty = true;\n return false;\n }\n finally {\n this.placementUpdateTask = undefined;\n }\n }\n assertActive() {\n if (this.destroyed) {\n throw new Error(`Native ad feed has been destroyed: ${this.options.feedId}`);\n }\n }\n}\nexport const configureNativeAdBridge = (adMobBridge) => {\n bridge = adMobBridge;\n};\n//# sourceMappingURL=native-ad-feed.js.map","export var MaxAdContentRating;\n(function (MaxAdContentRating) {\n /**\n * Content suitable for general audiences, including families.\n */\n MaxAdContentRating[\"General\"] = \"General\";\n /**\n * Content suitable for most audiences with parental guidance.\n */\n MaxAdContentRating[\"ParentalGuidance\"] = \"ParentalGuidance\";\n /**\n * Content suitable for teen and older audiences.\n */\n MaxAdContentRating[\"Teen\"] = \"Teen\";\n /**\n * Content suitable only for mature audiences.\n */\n MaxAdContentRating[\"MatureAudience\"] = \"MatureAudience\";\n})(MaxAdContentRating || (MaxAdContentRating = {}));\n//# sourceMappingURL=definitions.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var BannerAdPluginEvents;\n(function (BannerAdPluginEvents) {\n /**\n * Emits when the displayed banner size changes.\n */\n BannerAdPluginEvents[\"SizeChanged\"] = \"bannerAdSizeChanged\";\n /**\n * Emits when a banner ad has loaded.\n */\n BannerAdPluginEvents[\"Loaded\"] = \"bannerAdLoaded\";\n /**\n * Emits when a banner ad fails to load.\n */\n BannerAdPluginEvents[\"FailedToLoad\"] = \"bannerAdFailedToLoad\";\n /**\n * Emits when a banner opens an overlay after the user taps it.\n */\n BannerAdPluginEvents[\"Opened\"] = \"bannerAdOpened\";\n /**\n * Emits when the banner overlay is closed.\n */\n BannerAdPluginEvents[\"Closed\"] = \"bannerAdClosed\";\n /**\n * Emits when an impression is recorded for the banner ad.\n */\n BannerAdPluginEvents[\"AdImpression\"] = \"bannerAdImpression\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n BannerAdPluginEvents[\"AdPaid\"] = \"bannerAdPaid\";\n})(BannerAdPluginEvents || (BannerAdPluginEvents = {}));\n//# sourceMappingURL=banner-ad-plugin-events.enum.js.map","/**\n * @see https://developer.android.com/reference/android/widget/LinearLayout#attr_android:gravity\n */\nexport var BannerAdPosition;\n(function (BannerAdPosition) {\n /**\n * Positions the banner at the top center of the screen.\n */\n BannerAdPosition[\"TOP_CENTER\"] = \"TOP_CENTER\";\n /**\n * Positions the banner at the center of the screen.\n */\n BannerAdPosition[\"CENTER\"] = \"CENTER\";\n /**\n * Positions the banner at the bottom center of the screen.\n */\n BannerAdPosition[\"BOTTOM_CENTER\"] = \"BOTTOM_CENTER\";\n})(BannerAdPosition || (BannerAdPosition = {}));\n//# sourceMappingURL=banner-ad-position.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/ios/banner#banner_sizes\n * https://developers.google.com/android/reference/com/google/android/gms/ads/AdSize\n *\n * */\nexport var BannerAdSize;\n(function (BannerAdSize) {\n /**\n * Mobile Marketing Association (MMA)\n * banner ad size (320x50 density-independent pixels).\n */\n BannerAdSize[\"BANNER\"] = \"BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * full banner ad size (468x60 density-independent pixels).\n */\n BannerAdSize[\"FULL_BANNER\"] = \"FULL_BANNER\";\n /**\n * Large banner ad size (320x100 density-independent pixels).\n */\n BannerAdSize[\"LARGE_BANNER\"] = \"LARGE_BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * medium rectangle ad size (300x250 density-independent pixels).\n */\n BannerAdSize[\"MEDIUM_RECTANGLE\"] = \"MEDIUM_RECTANGLE\";\n /**\n * Interactive Advertising Bureau (IAB)\n * leaderboard ad size (728x90 density-independent pixels).\n */\n BannerAdSize[\"LEADERBOARD\"] = \"LEADERBOARD\";\n /**\n * A dynamically sized banner that is full-width and auto-height.\n */\n BannerAdSize[\"ADAPTIVE_BANNER\"] = \"ADAPTIVE_BANNER\";\n /**\n * A legacy smart banner sized to the screen width.\n * Retained for compatibility; use `ADAPTIVE_BANNER` for new integrations.\n *\n * @deprecated Use `ADAPTIVE_BANNER` instead.\n */\n BannerAdSize[\"SMART_BANNER\"] = \"SMART_BANNER\";\n})(BannerAdSize || (BannerAdSize = {}));\n//# sourceMappingURL=banner-ad-size.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var InterstitialAdPluginEvents;\n(function (InterstitialAdPluginEvents) {\n /**\n * Emits when an interstitial ad has loaded and is ready to show.\n */\n InterstitialAdPluginEvents[\"Loaded\"] = \"interstitialAdLoaded\";\n /**\n * Emits when an interstitial ad fails to load.\n */\n InterstitialAdPluginEvents[\"FailedToLoad\"] = \"interstitialAdFailedToLoad\";\n /**\n * Emits when an interstitial ad is shown.\n */\n InterstitialAdPluginEvents[\"Showed\"] = \"interstitialAdShowed\";\n /**\n * Emits when a loaded interstitial ad fails to show.\n */\n InterstitialAdPluginEvents[\"FailedToShow\"] = \"interstitialAdFailedToShow\";\n /**\n * Emits when an interstitial ad is dismissed.\n */\n InterstitialAdPluginEvents[\"Dismissed\"] = \"interstitialAdDismissed\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n InterstitialAdPluginEvents[\"AdImpression\"] = \"interstitialAdImpression\";\n})(InterstitialAdPluginEvents || (InterstitialAdPluginEvents = {}));\n//# sourceMappingURL=interstitial-ad-plugin-events.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var RewardInterstitialAdPluginEvents;\n(function (RewardInterstitialAdPluginEvents) {\n /**\n * Emits when a rewarded interstitial ad has loaded and is ready to show.\n */\n RewardInterstitialAdPluginEvents[\"Loaded\"] = \"onRewardedInterstitialAdLoaded\";\n /**\n * Emits when a rewarded interstitial ad fails to load.\n */\n RewardInterstitialAdPluginEvents[\"FailedToLoad\"] = \"onRewardedInterstitialAdFailedToLoad\";\n /**\n * Emits when a rewarded interstitial ad is shown.\n */\n RewardInterstitialAdPluginEvents[\"Showed\"] = \"onRewardedInterstitialAdShowed\";\n /**\n * Emits when a loaded rewarded interstitial ad fails to show.\n */\n RewardInterstitialAdPluginEvents[\"FailedToShow\"] = \"onRewardedInterstitialAdFailedToShow\";\n /**\n * Emits when a rewarded interstitial ad is dismissed.\n *\n * This event does not indicate whether the user earned a reward. Listen for\n * `Rewarded` separately before granting the reward.\n */\n RewardInterstitialAdPluginEvents[\"Dismissed\"] = \"onRewardedInterstitialAdDismissed\";\n /**\n * Emits when the user earns the advertised reward.\n */\n RewardInterstitialAdPluginEvents[\"Rewarded\"] = \"onRewardedInterstitialAdReward\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n RewardInterstitialAdPluginEvents[\"AdImpression\"] = \"onRewardedInterstitialAdImpression\";\n})(RewardInterstitialAdPluginEvents || (RewardInterstitialAdPluginEvents = {}));\n//# sourceMappingURL=reward-interstitial-ad-plugin-events.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var RewardAdPluginEvents;\n(function (RewardAdPluginEvents) {\n /**\n * Emits when the SDK records a click on a rewarded ad.\n */\n RewardAdPluginEvents[\"adClicked\"] = \"onRewardedVideoAdClicked\";\n /**\n * Emits when a rewarded ad has loaded and is ready to show.\n */\n RewardAdPluginEvents[\"Loaded\"] = \"onRewardedVideoAdLoaded\";\n /**\n * Emits when a rewarded ad fails to load.\n */\n RewardAdPluginEvents[\"FailedToLoad\"] = \"onRewardedVideoAdFailedToLoad\";\n /**\n * Emits when a rewarded ad is shown.\n */\n RewardAdPluginEvents[\"Showed\"] = \"onRewardedVideoAdShowed\";\n /**\n * Emits when a loaded rewarded ad fails to show.\n */\n RewardAdPluginEvents[\"FailedToShow\"] = \"onRewardedVideoAdFailedToShow\";\n /**\n * Emits when a rewarded ad is dismissed.\n *\n * This event does not indicate whether the user earned a reward. Listen for\n * `Rewarded` separately before granting the reward.\n */\n RewardAdPluginEvents[\"Dismissed\"] = \"onRewardedVideoAdDismissed\";\n /**\n * Emits when the user earns the advertised reward.\n */\n RewardAdPluginEvents[\"Rewarded\"] = \"onRewardedVideoAdReward\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n RewardAdPluginEvents[\"AdImpression\"] = \"onRewardedVideoAdImpression\";\n})(RewardAdPluginEvents || (RewardAdPluginEvents = {}));\n//# sourceMappingURL=reward-ad-plugin-events.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#consentstatus\n *\n * */\nexport var AdmobConsentStatus;\n(function (AdmobConsentStatus) {\n /**\n * User consent not required.\n */\n AdmobConsentStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /**\n * User consent already obtained.\n */\n AdmobConsentStatus[\"OBTAINED\"] = \"OBTAINED\";\n /**\n * User consent required but not yet obtained.\n */\n AdmobConsentStatus[\"REQUIRED\"] = \"REQUIRED\";\n /**\n * Unknown consent status, AdsConsent.requestInfoUpdate needs to be called to update it.\n */\n AdmobConsentStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(AdmobConsentStatus || (AdmobConsentStatus = {}));\n//# sourceMappingURL=consent-status.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#debuggeography\n *\n * */\nexport var AdmobConsentDebugGeography;\n(function (AdmobConsentDebugGeography) {\n /**\n * Debug geography disabled.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"DISABLED\"] = 0] = \"DISABLED\";\n /**\n * Geography appears as in EEA for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"EEA\"] = 1] = \"EEA\";\n /**\n * Geography appears as not in EEA for debug devices.\n * @deprecated\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"NOT_EEA\"] = 2] = \"NOT_EEA\";\n /**\n * Geography appears as in regulated US state for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"US\"] = 3] = \"US\";\n /**\n * Geography appears as OTHER state for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"OTHER\"] = 4] = \"OTHER\";\n})(AdmobConsentDebugGeography || (AdmobConsentDebugGeography = {}));\n//# sourceMappingURL=consent-debug-geography.enum.js.map","/**\n * The precision of an impression-level ad value.\n */\nexport var AdValuePrecision;\n(function (AdValuePrecision) {\n /**\n * The ad value precision is unknown.\n */\n AdValuePrecision[AdValuePrecision[\"Unknown\"] = 0] = \"Unknown\";\n /**\n * The ad value is estimated from aggregated data.\n */\n AdValuePrecision[AdValuePrecision[\"Estimated\"] = 1] = \"Estimated\";\n /**\n * The ad value was provided by the publisher.\n */\n AdValuePrecision[AdValuePrecision[\"PublisherProvided\"] = 2] = \"PublisherProvided\";\n /**\n * The ad value is the precise value paid for this ad.\n */\n AdValuePrecision[AdValuePrecision[\"Precise\"] = 3] = \"Precise\";\n})(AdValuePrecision || (AdValuePrecision = {}));\n//# sourceMappingURL=ad-mob-revenue-data.interface.js.map","export var AppOpenAdPluginEvents;\n(function (AppOpenAdPluginEvents) {\n /**\n * Emits when an App Open ad has loaded.\n */\n AppOpenAdPluginEvents[\"Loaded\"] = \"appOpenAdLoaded\";\n /**\n * Emits when an App Open ad fails to load.\n */\n AppOpenAdPluginEvents[\"FailedToLoad\"] = \"appOpenAdFailedToLoad\";\n /**\n * Emits when an App Open ad is shown.\n */\n AppOpenAdPluginEvents[\"Opened\"] = \"appOpenAdOpened\";\n /**\n * Emits when an App Open ad is dismissed.\n */\n AppOpenAdPluginEvents[\"Closed\"] = \"appOpenAdClosed\";\n /**\n * Emits when a loaded App Open ad fails to show.\n */\n AppOpenAdPluginEvents[\"FailedToShow\"] = \"appOpenAdFailedToShow\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n AppOpenAdPluginEvents[\"AdImpression\"] = \"appOpenAdImpression\";\n})(AppOpenAdPluginEvents || (AppOpenAdPluginEvents = {}));\n//# sourceMappingURL=app-open-ad-plugin-events.enum.js.map","export var NativeAdPluginEvents;\n(function (NativeAdPluginEvents) {\n NativeAdPluginEvents[\"Loaded\"] = \"nativeAdLoaded\";\n NativeAdPluginEvents[\"FailedToLoad\"] = \"nativeAdFailedToLoad\";\n NativeAdPluginEvents[\"Clicked\"] = \"nativeAdClicked\";\n NativeAdPluginEvents[\"AdImpression\"] = \"nativeAdImpression\";\n NativeAdPluginEvents[\"Opened\"] = \"nativeAdOpened\";\n NativeAdPluginEvents[\"Closed\"] = \"nativeAdClosed\";\n NativeAdPluginEvents[\"AdPaid\"] = \"nativeAdPaid\";\n})(NativeAdPluginEvents || (NativeAdPluginEvents = {}));\n//# sourceMappingURL=native-ad-plugin-events.enum.js.map","import { registerPlugin } from '@capacitor/core';\nimport { configureNativeAdBridge } from './native-ads/native-ad-feed';\nconst nativeAdBridge = registerPlugin('AdMob', {\n web: () => import('./web').then((m) => new m.AdMobWeb()),\n});\nconst AdMob = nativeAdBridge;\nconfigureNativeAdBridge(nativeAdBridge);\nexport * from './definitions';\nexport * from './banner/index';\nexport * from './interstitial/index';\nexport * from './reward-interstitial/index';\nexport * from './reward/index';\nexport * from './consent/index';\nexport * from './shared/index';\nexport * from './app-open/index';\nexport * from './native-ads/index';\nexport { AdMob };\n//# sourceMappingURL=index.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#privacyoptionsrequirementstatus\n *\n * */\nexport var PrivacyOptionsRequirementStatus;\n(function (PrivacyOptionsRequirementStatus) {\n /**\n * Privacy options entry point is not required.\n */\n PrivacyOptionsRequirementStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /**\n * Privacy options entry point is required.\n */\n PrivacyOptionsRequirementStatus[\"REQUIRED\"] = \"REQUIRED\";\n /**\n * Privacy options requirement status is unknown.\n */\n PrivacyOptionsRequirementStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(PrivacyOptionsRequirementStatus || (PrivacyOptionsRequirementStatus = {}));\n//# sourceMappingURL=privacy-options-requirement-status.enum.js.map","import { WebPlugin } from '@capacitor/core';\nimport { AdmobConsentStatus } from './consent/consent-status.enum';\nimport { PrivacyOptionsRequirementStatus } from './consent/privacy-options-requirement-status.enum';\nexport class AdMobWeb extends WebPlugin {\n async initialize() {\n console.log('initialize');\n }\n async requestTrackingAuthorization() {\n console.log('requestTrackingAuthorization');\n }\n async trackingAuthorizationStatus() {\n return {\n status: 'authorized',\n };\n }\n async requestConsentInfo(options) {\n console.log('requestConsentInfo', options);\n return {\n status: AdmobConsentStatus.REQUIRED,\n isConsentFormAvailable: true,\n canRequestAds: true,\n privacyOptionsRequirementStatus: PrivacyOptionsRequirementStatus.REQUIRED,\n };\n }\n async showPrivacyOptionsForm() {\n console.log('showPrivacyOptionsForm');\n }\n async showConsentForm() {\n console.log('showConsentForm');\n return {\n status: AdmobConsentStatus.REQUIRED,\n canRequestAds: true,\n privacyOptionsRequirementStatus: PrivacyOptionsRequirementStatus.REQUIRED,\n };\n }\n async resetConsentInfo() {\n console.log('resetConsentInfo');\n }\n async setApplicationMuted(options) {\n console.log('setApplicationMuted', options);\n }\n async setApplicationVolume(options) {\n console.log('setApplicationVolume', options);\n }\n async showBanner(options) {\n console.log('showBanner', options);\n }\n async hideBanner() {\n console.log('hideBanner');\n }\n async resumeBanner() {\n console.log('resumeBanner');\n }\n async removeBanner() {\n console.log('removeBanner');\n }\n async startNativeAdFeed() {\n throw new Error('Native ads are only available on iOS and Android');\n }\n async destroyNativeAdFeed(options) {\n console.log('destroyNativeAdFeed', options);\n }\n async loadNativeAd() {\n throw new Error('Native ads are only available on iOS and Android');\n }\n async updateNativeAdPlacements(options) {\n console.log('updateNativeAdPlacements', options);\n }\n async removeNativeAd(options) {\n console.log('removeNativeAd', options);\n }\n async prepareInterstitial(options) {\n console.log('prepareInterstitial', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showInterstitial(options) {\n console.log('showInterstitial', options);\n }\n async prepareRewardVideoAd(options) {\n console.log('prepareRewardVideoAd', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showRewardVideoAd(options) {\n console.log('showRewardVideoAd', options);\n return {\n type: '',\n amount: 0,\n };\n }\n async prepareRewardInterstitialAd(options) {\n console.log('prepareRewardInterstitialAd', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showRewardInterstitialAd(options) {\n console.log('showRewardInterstitialAd', options);\n return {\n type: '',\n amount: 0,\n };\n }\n async loadAppOpen(options) {\n console.log('loadAppOpen', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showAppOpen(options) {\n console.log('showAppOpen', options);\n }\n async isAppOpenLoaded() {\n return { value: false };\n }\n addListener(eventName, listenerFunc) {\n void listenerFunc;\n console.log('addListener', eventName);\n return Promise.resolve({ remove: () => Promise.resolve() });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["NativeAdTemplate","Capacitor","MaxAdContentRating","BannerAdPluginEvents","BannerAdPosition","BannerAdSize","InterstitialAdPluginEvents","RewardInterstitialAdPluginEvents","RewardAdPluginEvents","AdmobConsentStatus","AdmobConsentDebugGeography","AdValuePrecision","AppOpenAdPluginEvents","NativeAdPluginEvents","registerPlugin","WebPlugin"],"mappings":"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"}
1
+ {"version":3,"file":"plugin.js","sources":["../node_modules/@webview-native-ui/engine/dist/dom/geometry.js","../node_modules/@webview-native-ui/engine/dist/dom/visibility.js","../node_modules/@webview-native-ui/engine/dist/projection/placement.js","esm/native-ads/native-ad-element.js","esm/native-ads/native-ad-geometry.js","esm/native-ads/native-ad-template.enum.js","esm/native-ads/native-ad-feed.js","esm/definitions.js","esm/banner/banner-ad-plugin-events.enum.js","esm/banner/banner-ad-position.enum.js","esm/banner/banner-ad-size.enum.js","esm/interstitial/interstitial-ad-plugin-events.enum.js","esm/reward-interstitial/reward-interstitial-ad-plugin-events.enum.js","esm/reward/reward-ad-plugin-events.enum.js","esm/consent/consent-status.enum.js","esm/consent/consent-debug-geography.enum.js","esm/shared/ad-mob-revenue-data.interface.js","esm/app-open/app-open-ad-plugin-events.enum.js","esm/native-ads/native-ad-plugin-events.enum.js","esm/index.js","esm/consent/privacy-options-requirement-status.enum.js","esm/web.js"],"sourcesContent":["export function* projectionAncestors(element) {\n let current = element;\n while (current) {\n const root = current.getRootNode();\n current = current.assignedSlot ?? current.parentElement ?? (root instanceof ShadowRoot ? root.host : null);\n if (current)\n yield current;\n }\n}\nexport const fitsClip = (element) => {\n const rect = element.getBoundingClientRect();\n for (const ancestor of projectionAncestors(element)) {\n const style = getComputedStyle(ancestor);\n if (style.transform !== 'none' && !new DOMMatrixReadOnly(style.transform).isIdentity)\n return false;\n const bounds = ancestor.getBoundingClientRect();\n const left = bounds.left + ancestor.clientLeft;\n const top = bounds.top + ancestor.clientTop;\n if (/^(hidden|clip|scroll|auto)$/.test(style.overflowX) && (rect.left < left - 1 || rect.right > left + ancestor.clientWidth + 1))\n return false;\n if (/^(hidden|clip|scroll|auto)$/.test(style.overflowY) && (rect.top < top - 1 || rect.bottom > top + ancestor.clientHeight + 1))\n return false;\n }\n return true;\n};\n","import { projectionAncestors } from './geometry.js';\n/** Current CSS visibility without the Engine's projection hiding rules.\n * Use when an existing renderer decides whether its DOM source is authored hidden.\n * Projection attributes are restored synchronously before returning; this performs\n * a style read and may notify MutationObservers, so it is not a cached measurement.\n */\nexport const getUnprojectedVisibility = (element) => {\n const win = element.ownerDocument.defaultView;\n if (!win)\n return 'hidden';\n const markers = [];\n for (const node of [element, ...projectionAncestors(element)]) {\n for (const attribute of Array.from(node.attributes)) {\n if (attribute.name === 'data-native-ui-snapshot-source' ||\n attribute.name === 'data-native-ui-snapshot-prepared' ||\n attribute.name === 'data-native-ui-snapshot-content' ||\n attribute.name.startsWith('data-native-ui-session-'))\n markers.push({ node, name: attribute.name, value: attribute.value });\n }\n }\n try {\n for (const { node, name } of markers)\n node.removeAttribute(name);\n return win.getComputedStyle(element).visibility;\n }\n finally {\n for (const { node, name, value } of markers)\n node.setAttribute(name, value);\n }\n};\n","// The injected runtime and a plugin's bundled helper share the binding.\nconst placementKey = Symbol.for('webview-native-ui-engine.projection-placement');\nexport const bindProjectionPlacement = (element, measure, invalidate = () => { }) => {\n const host = element;\n const state = { projected: false, measure, invalidate };\n host[placementKey] = state;\n return {\n get projected() {\n return host[placementKey] === state && state.projected;\n },\n dispose() {\n if (host[placementKey] === state)\n delete host[placementKey];\n state.projected = false;\n },\n };\n};\nexport const projectionPlacement = (element) => element?.[placementKey];\n","export const NATIVE_AD_ELEMENT_NAME = 'capacitor-admob-native';\nexport const defineNativeAdElement = (findFeed) => {\n const runtime = globalThis;\n runtime.__capacitorAdMobNativeFeedLookup = findFeed;\n if (typeof customElements === 'undefined' || customElements.get(NATIVE_AD_ELEMENT_NAME)) {\n return;\n }\n customElements.define(NATIVE_AD_ELEMENT_NAME, class extends HTMLElement {\n static get observedAttributes() {\n return ['feed-id', 'slot-key'];\n }\n connectedCallback() {\n this.connectToFeed();\n }\n disconnectedCallback() {\n this.disconnectFromFeed();\n }\n attributeChangedCallback() {\n if (!this.isConnected) {\n return;\n }\n this.disconnectFromFeed();\n this.connectToFeed();\n }\n connectToFeed() {\n var _a, _b, _c;\n const feedId = (_a = this.getAttribute('feed-id')) === null || _a === void 0 ? void 0 : _a.trim();\n const slotKey = (_b = this.getAttribute('slot-key')) === null || _b === void 0 ? void 0 : _b.trim();\n const feed = feedId ? (_c = runtime.__capacitorAdMobNativeFeedLookup) === null || _c === void 0 ? void 0 : _c.call(runtime, feedId) : undefined;\n if (!feed || !slotKey) {\n return;\n }\n try {\n feed.attach(slotKey, this);\n this.attachedFeed = feed;\n }\n catch (error) {\n this.dispatchEvent(new CustomEvent('nativeAdError', { bubbles: true, detail: error }));\n }\n }\n disconnectFromFeed() {\n var _a;\n (_a = this.attachedFeed) === null || _a === void 0 ? void 0 : _a.detach(this);\n this.attachedFeed = undefined;\n }\n });\n};\nexport const connectNativeAdElements = () => {\n document\n .querySelectorAll(NATIVE_AD_ELEMENT_NAME)\n .forEach((element) => { var _a, _b; return (_b = (_a = element).connectToFeed) === null || _b === void 0 ? void 0 : _b.call(_a); });\n};\n//# sourceMappingURL=native-ad-element.js.map","import { getUnprojectedVisibility } from '@webview-native-ui/engine';\nconst intersectRects = (left, right) => {\n const x = Math.max(left.x, right.x);\n const y = Math.max(left.y, right.y);\n const maxX = Math.min(left.x + left.width, right.x + right.width);\n const maxY = Math.min(left.y + left.height, right.y + right.height);\n return {\n x,\n y,\n width: Math.max(0, maxX - x),\n height: Math.max(0, maxY - y),\n };\n};\nconst toNativeRect = (rect) => ({\n x: rect.left,\n y: rect.top,\n width: rect.width,\n height: rect.height,\n});\nconst clipsDescendants = (element) => {\n const style = window.getComputedStyle(element);\n return [style.overflow, style.overflowX, style.overflowY].some((value) => ['auto', 'hidden', 'scroll', 'clip'].includes(value));\n};\nexport function* nativeAdAncestors(element) {\n var _a, _b;\n let current = element;\n while (current) {\n const root = current.getRootNode();\n current =\n (_b = (_a = current.assignedSlot) !== null && _a !== void 0 ? _a : current.parentElement) !== null && _b !== void 0 ? _b : (root instanceof ShadowRoot ? root.host : null);\n if (current)\n yield current;\n }\n}\nexport const measureNativeAdSlot = (element, scrollElement) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const style = window.getComputedStyle(element);\n const domRect = element.getBoundingClientRect();\n if (!element.isConnected ||\n style.display === 'none' ||\n (style.visibility === 'hidden' && getUnprojectedVisibility(element) === 'hidden') ||\n Number.parseFloat(style.opacity || '1') === 0 ||\n domRect.width <= 0 ||\n domRect.height <= 0) {\n return undefined;\n }\n const rect = toNativeRect(domRect);\n let clipRect = scrollElement\n ? rect\n : {\n x: (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.offsetLeft) !== null && _b !== void 0 ? _b : 0,\n y: (_d = (_c = window.visualViewport) === null || _c === void 0 ? void 0 : _c.offsetTop) !== null && _d !== void 0 ? _d : 0,\n width: (_f = (_e = window.visualViewport) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : window.innerWidth,\n height: (_h = (_g = window.visualViewport) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : window.innerHeight,\n };\n let foundScrollElement = !scrollElement;\n for (const ancestor of nativeAdAncestors(element)) {\n if (ancestor === scrollElement) {\n foundScrollElement = true;\n break;\n }\n if (clipsDescendants(ancestor)) {\n clipRect = intersectRects(clipRect, toNativeRect(ancestor.getBoundingClientRect()));\n }\n }\n clipRect = intersectRects(rect, clipRect);\n if (!foundScrollElement || clipRect.width <= 0 || clipRect.height <= 0)\n return undefined;\n if (scrollElement) {\n const origin = scrollElement.getBoundingClientRect();\n const translate = (value) => (Object.assign(Object.assign({}, value), { x: value.x - origin.left + scrollElement.scrollLeft, y: value.y - origin.top + scrollElement.scrollTop }));\n return { rect: translate(rect), clipRect: translate(clipRect) };\n }\n return { rect, clipRect };\n};\nexport const measureNativeAdScrollContainer = (element) => {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n const rect = toNativeRect(element.getBoundingClientRect());\n let clipRect = intersectRects(rect, {\n x: (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.offsetLeft) !== null && _b !== void 0 ? _b : 0,\n y: (_d = (_c = window.visualViewport) === null || _c === void 0 ? void 0 : _c.offsetTop) !== null && _d !== void 0 ? _d : 0,\n width: (_f = (_e = window.visualViewport) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : window.innerWidth,\n height: (_h = (_g = window.visualViewport) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : window.innerHeight,\n });\n for (const ancestor of nativeAdAncestors(element)) {\n if (clipsDescendants(ancestor)) {\n clipRect = intersectRects(clipRect, toNativeRect(ancestor.getBoundingClientRect()));\n }\n }\n return { rect, clipRect, contentWidth: element.scrollWidth, contentHeight: element.scrollHeight };\n};\n//# sourceMappingURL=native-ad-geometry.js.map","/**\n * Layouts rendered by the native Google Mobile Ads SDK.\n *\n * The dimensions of a native ad slot must remain stable while it is used by a\n * virtual scroller. `small` is intended for compact rows, while `medium`\n * includes a larger media area.\n */\nexport var NativeAdTemplate;\n(function (NativeAdTemplate) {\n NativeAdTemplate[\"Small\"] = \"small\";\n NativeAdTemplate[\"Medium\"] = \"medium\";\n})(NativeAdTemplate || (NativeAdTemplate = {}));\n//# sourceMappingURL=native-ad-template.enum.js.map","import { Capacitor } from '@capacitor/core';\nimport { bindProjectionPlacement } from '@webview-native-ui/engine';\nimport { connectNativeAdElements, defineNativeAdElement } from './native-ad-element';\nimport { measureNativeAdSlot, measureNativeAdScrollContainer, nativeAdAncestors } from './native-ad-geometry';\nimport { NativeAdTemplate } from './native-ad-template.enum';\nconst SCROLL_SETTLE_MS = 120;\nconst MAX_NATIVE_ADS = 3;\nconst MAX_ACTIVE_FEEDS = 2;\nconst MIN_SMALL_SLOT_WIDTH = 120;\nconst MIN_MEDIUM_SLOT_WIDTH = 144;\nconst MIN_MEDIUM_SLOT_HEIGHT = 300;\nconst MIN_SMALL_SLOT_HEIGHT = 120;\nconst TEMPLATE_ATTRIBUTE = 'data-capacitor-admob-template';\nconst applySlotDefaults = (element, template) => {\n const root = element.getRootNode();\n const container = root instanceof ShadowRoot ? root : element.ownerDocument.head;\n if (!container.querySelector('style[data-capacitor-admob-defaults]')) {\n const style = element.ownerDocument.createElement('style');\n style.setAttribute('data-capacitor-admob-defaults', '');\n // Prefer the first cascade layer; older WebViews use zero-specificity rules.\n const defaults = `\n :where([${TEMPLATE_ATTRIBUTE}]) { display: block; height: 320px; }\n :where([${TEMPLATE_ATTRIBUTE}=\"small\"]) { height: 120px; }\n `;\n style.textContent =\n 'CSSLayerBlockRule' in globalThis ? `@layer capacitor-admob-defaults { ${defaults} }` : defaults;\n container.prepend(style);\n }\n element.setAttribute(TEMPLATE_ATTRIBUTE, template);\n};\nlet bridge;\nlet sessionSequence = 0;\nconst feeds = new Map();\nconst createSessionId = () => { var _a, _b, _c; return (_c = (_b = (_a = globalThis.crypto) === null || _a === void 0 ? void 0 : _a.randomUUID) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : `${Date.now()}-${++sessionSequence}-${Math.random().toString(36).slice(2)}`; };\n/**\n * Manages native ad placement and lifecycle in a scrolling feed.\n *\n * A stable `slotKey`, rather than the element or array index, owns the native\n * ad lifecycle. Virtual-scroller compatibility has not yet been validated.\n */\nexport class NativeAdFeed {\n constructor(options) {\n var _a;\n this.sessionId = createSessionId();\n this.slots = new Map();\n this.elementSlots = new Map();\n this.scrollRoots = new Set();\n this.destroyed = false;\n this.nativeStarted = false;\n this.paused = false;\n this.layoutInvalidated = false;\n this.lastPlacementWasDirect = false;\n this.placementAcknowledgementRequired = false;\n this.operationTask = Promise.resolve();\n this.updateDirty = false;\n this.placementSequence = 0;\n this.listenerHandles = new Set();\n this.handleViewportMotion = (event) => {\n if (this.destroyed) {\n return;\n }\n if (event instanceof Event &&\n event.type === 'load' &&\n event.target instanceof HTMLImageElement &&\n event.target.dataset['admobSnapshot'] !== undefined)\n return;\n if (!(event instanceof Event) || !['scroll', 'touchmove', 'wheel'].includes(event.type)) {\n for (const state of this.slots.values())\n state.lastPlacement = undefined;\n }\n if (!(this.nativeScrollElement &&\n event instanceof Event &&\n ['scroll', 'touchmove', 'wheel'].includes(event.type))) {\n this.schedulePlacementUpdate();\n }\n this.scheduleEvaluation();\n };\n this.handleVisibilityChange = () => {\n if (this.destroyed) {\n return;\n }\n if (document.hidden) {\n this.layoutInvalidated = true;\n void this.requestPlacementUpdate();\n return;\n }\n this.scheduleEvaluation();\n };\n const id = options.feedId.trim();\n if (!id) {\n throw new Error('Native ad feed id must not be empty');\n }\n if (feeds.has(id)) {\n throw new Error(`Native ad feed id already exists: ${id}`);\n }\n if (feeds.size >= MAX_ACTIVE_FEEDS) {\n throw new Error(`At most ${MAX_ACTIVE_FEEDS} native ad feeds can be active`);\n }\n if (options.androidScrollSnapshot && Capacitor.getPlatform() !== 'android') {\n throw new Error('androidScrollSnapshot requires Android');\n }\n this.options = Object.assign(Object.assign({}, options), { feedId: id });\n this.nativeScrollElement = Capacitor.getPlatform() === 'ios' ? options.scrollElement : undefined;\n if (typeof IntersectionObserver !== 'undefined') {\n this.intersectionObserver = new IntersectionObserver((entries) => {\n for (const entry of entries) {\n const slotKey = this.elementSlots.get(entry.target);\n const state = slotKey ? this.slots.get(slotKey) : undefined;\n if (state) {\n state.intersecting = entry.isIntersecting;\n }\n }\n this.schedulePlacementUpdate();\n this.scheduleEvaluation();\n });\n }\n if (typeof ResizeObserver !== 'undefined') {\n this.resizeObserver = new ResizeObserver(this.handleViewportMotion);\n if (this.nativeScrollElement)\n this.resizeObserver.observe(this.nativeScrollElement);\n }\n document.addEventListener('scroll', this.handleViewportMotion, true);\n document.addEventListener('touchmove', this.handleViewportMotion, { capture: true, passive: true });\n document.addEventListener('wheel', this.handleViewportMotion, { capture: true, passive: true });\n window.addEventListener('resize', this.handleViewportMotion, { passive: true });\n (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.addEventListener('resize', this.handleViewportMotion, { passive: true });\n document.addEventListener('visibilitychange', this.handleVisibilityChange);\n document.addEventListener('load', this.handleViewportMotion, true);\n feeds.set(id, this);\n }\n static async create(options) {\n var _a;\n if (!bridge) {\n throw new Error('AdMob native ad bridge is not configured');\n }\n if (typeof document === 'undefined' || typeof window === 'undefined') {\n throw new Error('NativeAdFeed can only be created in a browser environment');\n }\n if (options.isTesting !== true && !((_a = options.adId) === null || _a === void 0 ? void 0 : _a.trim())) {\n throw new Error('adId is required unless isTesting is true');\n }\n const feed = new NativeAdFeed(options);\n try {\n await bridge.startNativeAdFeed({ feedId: feed.feedId, sessionId: feed.sessionId });\n feed.nativeStarted = true;\n defineNativeAdElement((feedId) => feeds.get(feedId));\n connectNativeAdElements();\n return feed;\n }\n catch (error) {\n await feed.destroy();\n throw error;\n }\n }\n get feedId() {\n return this.options.feedId;\n }\n async addListener(eventName, listener) {\n this.assertActive();\n if (!bridge) {\n throw new Error('AdMob native ad bridge is not configured');\n }\n const nativeHandle = await bridge.addListener(eventName, (event) => {\n if (event.feedId === this.options.feedId && event.sessionId === this.sessionId) {\n const filteredListener = listener;\n filteredListener(event);\n }\n });\n if (this.destroyed) {\n await nativeHandle.remove();\n this.assertActive();\n }\n let removed = false;\n const handle = {\n remove: async () => {\n if (removed) {\n return;\n }\n removed = true;\n this.listenerHandles.delete(handle);\n await nativeHandle.remove();\n },\n };\n this.listenerHandles.add(handle);\n return handle;\n }\n attach(slotKey, element) {\n var _a, _b, _c, _d, _e;\n this.assertActive();\n const normalizedKey = slotKey.trim();\n if (!normalizedKey) {\n throw new Error('Native ad slotKey must not be empty');\n }\n const previousKey = this.elementSlots.get(element);\n if (previousKey === normalizedKey) {\n return;\n }\n if (previousKey && previousKey !== normalizedKey) {\n this.detach(element);\n }\n const existing = this.slots.get(normalizedKey);\n if ((existing === null || existing === void 0 ? void 0 : existing.element) && existing.element !== element) {\n throw new Error(`Native ad slotKey is already attached: ${normalizedKey}`);\n }\n const state = existing !== null && existing !== void 0 ? existing : {\n slotKey: normalizedKey,\n generation: 0,\n intersecting: !this.intersectionObserver,\n status: 'idle',\n lastUsed: Date.now(),\n loadVersion: 0,\n };\n applySlotDefaults(element, (_a = this.options.template) !== null && _a !== void 0 ? _a : NativeAdTemplate.Medium);\n state.element = element;\n if (this.options.androidScrollSnapshot) {\n const owner = ((_b = state.projectionOwner) !== null && _b !== void 0 ? _b : (state.projectionOwner = `admob-${crypto.randomUUID()}`));\n element.dataset['admobProjection'] = owner;\n state.projectionSelector = `[data-admob-projection=\"${owner}\"]`;\n (_c = state.placementBinding) === null || _c === void 0 ? void 0 : _c.dispose();\n state.placementBinding = bindProjectionPlacement(element, () => {\n const placement = this.measurePlacement(state);\n state.lastPlacement = placement;\n // The reveal request applies this exact placement; keep batch deduplication in sync.\n if (this.lastPlacements) {\n const previous = JSON.parse(this.lastPlacements);\n previous.placements = previous.placements.map((item) => item.slotKey === state.slotKey ? placement : item);\n this.lastPlacements = JSON.stringify(previous);\n }\n return Object.assign(Object.assign({}, placement), { sessionId: this.sessionId, sequence: ++this.placementSequence });\n }, () => {\n if (state.element !== element || this.destroyed)\n return;\n state.lastPlacement = undefined;\n this.lastPlacements = undefined;\n this.schedulePlacementUpdate();\n });\n }\n state.generation += 1;\n state.lastUsed = Date.now();\n this.slots.set(normalizedKey, state);\n this.elementSlots.set(element, normalizedKey);\n this.updateScrollRoots();\n (_d = this.intersectionObserver) === null || _d === void 0 ? void 0 : _d.observe(element);\n (_e = this.resizeObserver) === null || _e === void 0 ? void 0 : _e.observe(element);\n this.scheduleEvaluation();\n }\n detach(element) {\n var _a, _b, _c;\n const slotKey = this.elementSlots.get(element);\n if (!slotKey) {\n return;\n }\n const state = this.slots.get(slotKey);\n if ((state === null || state === void 0 ? void 0 : state.element) === element) {\n (_a = state.placementBinding) === null || _a === void 0 ? void 0 : _a.dispose();\n state.placementBinding = undefined;\n state.lastPlacement = undefined;\n if (state.projectionOwner)\n delete element.dataset['admobProjection'];\n state.element = undefined;\n state.intersecting = false;\n state.generation += 1;\n state.lastUsed = Date.now();\n }\n (_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.unobserve(element);\n (_c = this.resizeObserver) === null || _c === void 0 ? void 0 : _c.unobserve(element);\n this.elementSlots.delete(element);\n this.updateScrollRoots();\n void this.requestPlacementUpdate();\n this.scheduleEvaluation();\n }\n async reload(slotKey) {\n this.assertActive();\n const normalizedKey = slotKey.trim();\n const state = this.slots.get(normalizedKey);\n if (!state) {\n throw new Error(`Native ad slotKey is not registered: ${normalizedKey}`);\n }\n await this.runOperation(async () => {\n await this.removeStateAd(state);\n const protectedStates = new Set(this.getVisibleStates());\n protectedStates.add(state);\n await this.evictUnusedAds(protectedStates);\n if ([...this.slots.values()].filter((slot) => this.occupiesNativeAd(slot)).length >= MAX_NATIVE_ADS) {\n throw new Error('Native ad capacity is currently in use by visible slots');\n }\n await this.loadState(state);\n await this.requestPlacementUpdate();\n });\n }\n /** Immediately hides this feed's overlays until {@link resume} is called. */\n async pause() {\n this.assertActive();\n this.paused = true;\n this.layoutInvalidated = true;\n if (!(await this.requestPlacementUpdate())) {\n throw new Error('Failed to hide native ad placements');\n }\n }\n /** Re-evaluates slots and restores eligible overlays after the viewport settles. */\n resume() {\n this.assertActive();\n this.paused = false;\n this.scheduleEvaluation();\n }\n /** Hides stale overlays and remeasures after an application-driven layout change. */\n async invalidateLayout() {\n this.assertActive();\n for (const state of this.slots.values())\n state.lastPlacement = undefined;\n this.layoutInvalidated = true;\n this.scheduleEvaluation();\n if (!(await this.requestPlacementUpdate())) {\n throw new Error('Failed to hide native ad placements');\n }\n }\n async destroy() {\n var _a, _b, _c;\n if (!this.destroyed) {\n this.destroyed = true;\n feeds.delete(this.options.feedId);\n document.removeEventListener('scroll', this.handleViewportMotion, true);\n for (const root of this.scrollRoots) {\n root.removeEventListener('scroll', this.handleViewportMotion, true);\n }\n this.scrollRoots.clear();\n document.removeEventListener('touchmove', this.handleViewportMotion, true);\n document.removeEventListener('wheel', this.handleViewportMotion, true);\n window.removeEventListener('resize', this.handleViewportMotion);\n (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.removeEventListener('resize', this.handleViewportMotion);\n document.removeEventListener('visibilitychange', this.handleVisibilityChange);\n document.removeEventListener('load', this.handleViewportMotion, true);\n if (this.settleTimer) {\n clearTimeout(this.settleTimer);\n }\n if (this.placementFrame !== undefined) {\n cancelAnimationFrame(this.placementFrame);\n this.placementFrame = undefined;\n }\n (_b = this.intersectionObserver) === null || _b === void 0 ? void 0 : _b.disconnect();\n (_c = this.resizeObserver) === null || _c === void 0 ? void 0 : _c.disconnect();\n }\n if (this.destroyTask) {\n return this.destroyTask;\n }\n this.destroyTask = this.destroyResources();\n try {\n await this.destroyTask;\n }\n finally {\n this.destroyTask = undefined;\n }\n }\n schedulePlacementUpdate() {\n if (this.destroyed || this.placementFrame !== undefined) {\n return;\n }\n this.placementFrame = requestAnimationFrame(() => {\n this.placementFrame = undefined;\n void this.requestPlacementUpdate(true);\n });\n }\n updateScrollRoots() {\n const roots = new Set();\n for (const element of this.elementSlots.keys()) {\n for (const ancestor of [element, ...nativeAdAncestors(element)]) {\n const root = ancestor.getRootNode();\n if (root instanceof ShadowRoot)\n roots.add(root);\n }\n }\n for (const root of this.scrollRoots) {\n if (!roots.has(root)) {\n root.removeEventListener('scroll', this.handleViewportMotion, true);\n this.scrollRoots.delete(root);\n }\n }\n for (const root of roots) {\n if (!this.scrollRoots.has(root)) {\n // Element scroll events do not cross a shadow boundary.\n root.addEventListener('scroll', this.handleViewportMotion, true);\n this.scrollRoots.add(root);\n }\n }\n }\n scheduleEvaluation() {\n if (this.destroyed) {\n return;\n }\n if (this.settleTimer) {\n clearTimeout(this.settleTimer);\n }\n this.settleTimer = setTimeout(() => {\n this.layoutInvalidated = false;\n void this.runOperation(async () => {\n await this.evaluate();\n });\n }, SCROLL_SETTLE_MS);\n }\n async evaluate() {\n if (this.destroyed || this.paused || document.hidden) {\n return;\n }\n const visibleStates = this.getVisibleStates();\n for (const state of visibleStates) {\n state.lastUsed = Date.now();\n }\n await this.evictUnusedAds(new Set(visibleStates));\n const occupied = [...this.slots.values()].filter((state) => this.occupiesNativeAd(state)).length;\n const loadable = visibleStates\n .filter((state) => state.status === 'idle')\n .slice(0, Math.max(0, MAX_NATIVE_ADS - occupied));\n await Promise.allSettled(loadable.map((state) => this.loadState(state)));\n await this.requestPlacementUpdate();\n }\n async loadState(state) {\n var _a;\n if (state.status !== 'idle' || !bridge) {\n return;\n }\n state.status = 'loading';\n const loadVersion = ++state.loadVersion;\n try {\n await bridge.loadNativeAd(Object.assign({ feedId: this.options.feedId, sessionId: this.sessionId, slotKey: state.slotKey, template: (_a = this.options.template) !== null && _a !== void 0 ? _a : NativeAdTemplate.Medium, style: this.options.style, adId: this.options.adId, isTesting: this.options.isTesting, npa: this.options.npa }, (state.projectionSelector ? { projectionSelector: state.projectionSelector } : {})));\n if (state.loadVersion === loadVersion) {\n state.status = 'loaded';\n state.lastUsed = Date.now();\n }\n }\n catch (error) {\n if (state.loadVersion === loadVersion) {\n state.status = 'failed';\n }\n throw error;\n }\n }\n async evictUnusedAds(visibleStates) {\n const occupied = [...this.slots.values()].filter((state) => this.occupiesNativeAd(state));\n const requestedLoads = [...visibleStates].filter((state) => state.status === 'idle').length;\n const evictionCount = Math.max(0, occupied.length + Math.min(requestedLoads, MAX_NATIVE_ADS) - MAX_NATIVE_ADS);\n const evicted = occupied\n .filter((state) => !visibleStates.has(state))\n .sort((left, right) => left.lastUsed - right.lastUsed)\n .slice(0, evictionCount);\n await Promise.allSettled(evicted.map((state) => this.removeStateAd(state)));\n const detached = [...this.slots.values()]\n .filter((state) => !state.element && !this.occupiesNativeAd(state))\n .sort((left, right) => right.lastUsed - left.lastUsed);\n for (const state of detached.slice(MAX_NATIVE_ADS)) {\n this.slots.delete(state.slotKey);\n }\n }\n occupiesNativeAd(state) {\n return ['loading', 'loaded', 'removing', 'removeFailed'].includes(state.status);\n }\n getVisibleStates() {\n return [...this.slots.values()].filter((state) => {\n var _a;\n if (this.reuseProjectedPlacement(state))\n return state.intersecting && !!((_a = state.lastPlacement) === null || _a === void 0 ? void 0 : _a.visible);\n const measured = state.element && state.intersecting ? measureNativeAdSlot(state.element) : undefined;\n return Boolean(measured && this.isSupportedSize(measured));\n });\n }\n isSupportedSize(measured) {\n var _a, _b;\n const minimumHeight = ((_a = this.options.template) !== null && _a !== void 0 ? _a : NativeAdTemplate.Medium) === NativeAdTemplate.Small\n ? MIN_SMALL_SLOT_HEIGHT\n : MIN_MEDIUM_SLOT_HEIGHT;\n const minimumWidth = ((_b = this.options.template) !== null && _b !== void 0 ? _b : NativeAdTemplate.Medium) === NativeAdTemplate.Small\n ? MIN_SMALL_SLOT_WIDTH\n : MIN_MEDIUM_SLOT_WIDTH;\n return measured.rect.width >= minimumWidth && measured.rect.height >= minimumHeight;\n }\n async removeStateAd(state) {\n if (state.status === 'removing') {\n return;\n }\n if (!bridge || state.status === 'idle' || state.status === 'failed') {\n state.status = 'idle';\n return;\n }\n state.status = 'removing';\n const removeVersion = ++state.loadVersion;\n await this.requestPlacementUpdate();\n try {\n await bridge.removeNativeAd({\n feedId: this.options.feedId,\n sessionId: this.sessionId,\n slotKey: state.slotKey,\n });\n if (state.loadVersion === removeVersion) {\n state.status = 'idle';\n }\n }\n catch (error) {\n if (state.loadVersion === removeVersion) {\n state.status = 'removeFailed';\n }\n throw error;\n }\n }\n runOperation(operation) {\n const result = this.operationTask.then(operation);\n this.operationTask = result.catch(() => undefined);\n return result;\n }\n async destroyResources() {\n var _a;\n await Promise.all([\n ...[...this.listenerHandles].map((handle) => handle.remove()),\n ...(this.nativeStarted && bridge\n ? [bridge.destroyNativeAdFeed({ feedId: this.options.feedId, sessionId: this.sessionId })]\n : []),\n ]);\n this.nativeStarted = false;\n this.listenerHandles.clear();\n for (const state of this.slots.values())\n (_a = state.placementBinding) === null || _a === void 0 ? void 0 : _a.dispose();\n this.slots.clear();\n this.elementSlots.clear();\n }\n reuseProjectedPlacement(state) {\n var _a, _b, _c;\n return Boolean(((_a = state.placementBinding) === null || _a === void 0 ? void 0 : _a.projected) &&\n ((_b = state.lastPlacement) === null || _b === void 0 ? void 0 : _b.visible) &&\n ((_c = state.element) === null || _c === void 0 ? void 0 : _c.isConnected) &&\n !this.paused &&\n !this.destroyed &&\n !document.hidden &&\n state.status === 'loaded' &&\n state.lastPlacement.generation === state.generation);\n }\n measurePlacement(state) {\n const measured = state.element ? measureNativeAdSlot(state.element, this.nativeScrollElement) : undefined;\n return {\n feedId: this.options.feedId,\n slotKey: state.slotKey,\n generation: state.generation,\n visible: Boolean(!this.paused &&\n !this.destroyed &&\n state.status === 'loaded' &&\n (!this.layoutInvalidated || this.options.androidScrollSnapshot) &&\n measured &&\n this.isSupportedSize(measured) &&\n !document.hidden),\n rect: measured === null || measured === void 0 ? void 0 : measured.rect,\n clipRect: measured === null || measured === void 0 ? void 0 : measured.clipRect,\n };\n }\n requestPlacementUpdate(allowDirect = false) {\n this.updateDirty = true;\n this.placementAcknowledgementRequired || (this.placementAcknowledgementRequired = !allowDirect);\n if (!this.placementUpdateTask) {\n this.placementUpdateTask = Promise.resolve().then(() => this.flushPlacementUpdates());\n }\n return this.placementUpdateTask;\n }\n async flushPlacementUpdates() {\n if (!bridge || this.destroyed) {\n return true;\n }\n try {\n while (this.updateDirty && !this.destroyed) {\n this.updateDirty = false;\n const allowDirect = !this.placementAcknowledgementRequired;\n this.placementAcknowledgementRequired = false;\n const retainedSlots = new Set();\n const placements = [...this.slots.values()]\n .filter((state) => state.status === 'loaded')\n .map((state) => {\n if (this.reuseProjectedPlacement(state)) {\n retainedSlots.add(state.slotKey);\n return state.lastPlacement;\n }\n return (state.lastPlacement = this.measurePlacement(state));\n });\n const scrollContainer = this.nativeScrollElement\n ? measureNativeAdScrollContainer(this.nativeScrollElement)\n : undefined;\n const serializedPlacements = JSON.stringify({ placements, scrollContainer });\n if (serializedPlacements === this.lastPlacements && (allowDirect || !this.lastPlacementWasDirect)) {\n continue;\n }\n try {\n const batch = Object.assign({ feedId: this.options.feedId, sessionId: this.sessionId, sequence: ++this.placementSequence, placements: placements.map((placement) => {\n return retainedSlots.has(placement.slotKey)\n ? {\n feedId: placement.feedId,\n slotKey: placement.slotKey,\n generation: placement.generation,\n visible: true,\n retain: true,\n }\n : placement;\n }) }, (scrollContainer ? { scrollContainer } : {}));\n const channel = Capacitor.getPlatform() === 'android'\n ? window\n .capacitorAdMobPlacements\n : undefined;\n let sentDirectly = false;\n if (allowDirect && channel) {\n try {\n channel.postMessage(JSON.stringify(batch));\n sentDirectly = true;\n }\n catch (_a) {\n // Keep the acknowledged bridge available if the direct channel fails.\n }\n }\n if (!sentDirectly)\n await bridge.updateNativeAdPlacements(batch);\n this.lastPlacementWasDirect = sentDirectly;\n this.lastPlacements = serializedPlacements;\n }\n catch (_b) {\n this.lastPlacements = undefined;\n // Retry on the next scroll, resize, or lifecycle update without\n // creating an unhandled rejection from this fire-and-forget task.\n this.updateDirty = true;\n return false;\n }\n }\n return true;\n }\n catch (_c) {\n this.updateDirty = true;\n return false;\n }\n finally {\n this.placementUpdateTask = undefined;\n }\n }\n assertActive() {\n if (this.destroyed) {\n throw new Error(`Native ad feed has been destroyed: ${this.options.feedId}`);\n }\n }\n}\nexport const configureNativeAdBridge = (adMobBridge) => {\n bridge = adMobBridge;\n};\n//# sourceMappingURL=native-ad-feed.js.map","export var MaxAdContentRating;\n(function (MaxAdContentRating) {\n /**\n * Content suitable for general audiences, including families.\n */\n MaxAdContentRating[\"General\"] = \"General\";\n /**\n * Content suitable for most audiences with parental guidance.\n */\n MaxAdContentRating[\"ParentalGuidance\"] = \"ParentalGuidance\";\n /**\n * Content suitable for teen and older audiences.\n */\n MaxAdContentRating[\"Teen\"] = \"Teen\";\n /**\n * Content suitable only for mature audiences.\n */\n MaxAdContentRating[\"MatureAudience\"] = \"MatureAudience\";\n})(MaxAdContentRating || (MaxAdContentRating = {}));\n//# sourceMappingURL=definitions.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var BannerAdPluginEvents;\n(function (BannerAdPluginEvents) {\n /**\n * Emits when the displayed banner size changes.\n */\n BannerAdPluginEvents[\"SizeChanged\"] = \"bannerAdSizeChanged\";\n /**\n * Emits when a banner ad has loaded.\n */\n BannerAdPluginEvents[\"Loaded\"] = \"bannerAdLoaded\";\n /**\n * Emits when a banner ad fails to load.\n */\n BannerAdPluginEvents[\"FailedToLoad\"] = \"bannerAdFailedToLoad\";\n /**\n * Emits when a banner opens an overlay after the user taps it.\n */\n BannerAdPluginEvents[\"Opened\"] = \"bannerAdOpened\";\n /**\n * Emits when the banner overlay is closed.\n */\n BannerAdPluginEvents[\"Closed\"] = \"bannerAdClosed\";\n /**\n * Emits when an impression is recorded for the banner ad.\n */\n BannerAdPluginEvents[\"AdImpression\"] = \"bannerAdImpression\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n BannerAdPluginEvents[\"AdPaid\"] = \"bannerAdPaid\";\n})(BannerAdPluginEvents || (BannerAdPluginEvents = {}));\n//# sourceMappingURL=banner-ad-plugin-events.enum.js.map","/**\n * @see https://developer.android.com/reference/android/widget/LinearLayout#attr_android:gravity\n */\nexport var BannerAdPosition;\n(function (BannerAdPosition) {\n /**\n * Positions the banner at the top center of the screen.\n */\n BannerAdPosition[\"TOP_CENTER\"] = \"TOP_CENTER\";\n /**\n * Positions the banner at the center of the screen.\n */\n BannerAdPosition[\"CENTER\"] = \"CENTER\";\n /**\n * Positions the banner at the bottom center of the screen.\n */\n BannerAdPosition[\"BOTTOM_CENTER\"] = \"BOTTOM_CENTER\";\n})(BannerAdPosition || (BannerAdPosition = {}));\n//# sourceMappingURL=banner-ad-position.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/ios/banner#banner_sizes\n * https://developers.google.com/android/reference/com/google/android/gms/ads/AdSize\n *\n * */\nexport var BannerAdSize;\n(function (BannerAdSize) {\n /**\n * Mobile Marketing Association (MMA)\n * banner ad size (320x50 density-independent pixels).\n */\n BannerAdSize[\"BANNER\"] = \"BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * full banner ad size (468x60 density-independent pixels).\n */\n BannerAdSize[\"FULL_BANNER\"] = \"FULL_BANNER\";\n /**\n * Large banner ad size (320x100 density-independent pixels).\n */\n BannerAdSize[\"LARGE_BANNER\"] = \"LARGE_BANNER\";\n /**\n * Interactive Advertising Bureau (IAB)\n * medium rectangle ad size (300x250 density-independent pixels).\n */\n BannerAdSize[\"MEDIUM_RECTANGLE\"] = \"MEDIUM_RECTANGLE\";\n /**\n * Interactive Advertising Bureau (IAB)\n * leaderboard ad size (728x90 density-independent pixels).\n */\n BannerAdSize[\"LEADERBOARD\"] = \"LEADERBOARD\";\n /**\n * A dynamically sized banner that is full-width and auto-height.\n */\n BannerAdSize[\"ADAPTIVE_BANNER\"] = \"ADAPTIVE_BANNER\";\n /**\n * A legacy smart banner sized to the screen width.\n * Retained for compatibility; use `ADAPTIVE_BANNER` for new integrations.\n *\n * @deprecated Use `ADAPTIVE_BANNER` instead.\n */\n BannerAdSize[\"SMART_BANNER\"] = \"SMART_BANNER\";\n})(BannerAdSize || (BannerAdSize = {}));\n//# sourceMappingURL=banner-ad-size.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var InterstitialAdPluginEvents;\n(function (InterstitialAdPluginEvents) {\n /**\n * Emits when an interstitial ad has loaded and is ready to show.\n */\n InterstitialAdPluginEvents[\"Loaded\"] = \"interstitialAdLoaded\";\n /**\n * Emits when an interstitial ad fails to load.\n */\n InterstitialAdPluginEvents[\"FailedToLoad\"] = \"interstitialAdFailedToLoad\";\n /**\n * Emits when an interstitial ad is shown.\n */\n InterstitialAdPluginEvents[\"Showed\"] = \"interstitialAdShowed\";\n /**\n * Emits when a loaded interstitial ad fails to show.\n */\n InterstitialAdPluginEvents[\"FailedToShow\"] = \"interstitialAdFailedToShow\";\n /**\n * Emits when an interstitial ad is dismissed.\n */\n InterstitialAdPluginEvents[\"Dismissed\"] = \"interstitialAdDismissed\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n InterstitialAdPluginEvents[\"AdImpression\"] = \"interstitialAdImpression\";\n})(InterstitialAdPluginEvents || (InterstitialAdPluginEvents = {}));\n//# sourceMappingURL=interstitial-ad-plugin-events.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var RewardInterstitialAdPluginEvents;\n(function (RewardInterstitialAdPluginEvents) {\n /**\n * Emits when a rewarded interstitial ad has loaded and is ready to show.\n */\n RewardInterstitialAdPluginEvents[\"Loaded\"] = \"onRewardedInterstitialAdLoaded\";\n /**\n * Emits when a rewarded interstitial ad fails to load.\n */\n RewardInterstitialAdPluginEvents[\"FailedToLoad\"] = \"onRewardedInterstitialAdFailedToLoad\";\n /**\n * Emits when a rewarded interstitial ad is shown.\n */\n RewardInterstitialAdPluginEvents[\"Showed\"] = \"onRewardedInterstitialAdShowed\";\n /**\n * Emits when a loaded rewarded interstitial ad fails to show.\n */\n RewardInterstitialAdPluginEvents[\"FailedToShow\"] = \"onRewardedInterstitialAdFailedToShow\";\n /**\n * Emits when a rewarded interstitial ad is dismissed.\n *\n * This event does not indicate whether the user earned a reward. Listen for\n * `Rewarded` separately before granting the reward.\n */\n RewardInterstitialAdPluginEvents[\"Dismissed\"] = \"onRewardedInterstitialAdDismissed\";\n /**\n * Emits when the user earns the advertised reward.\n */\n RewardInterstitialAdPluginEvents[\"Rewarded\"] = \"onRewardedInterstitialAdReward\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n RewardInterstitialAdPluginEvents[\"AdImpression\"] = \"onRewardedInterstitialAdImpression\";\n})(RewardInterstitialAdPluginEvents || (RewardInterstitialAdPluginEvents = {}));\n//# sourceMappingURL=reward-interstitial-ad-plugin-events.enum.js.map","// This enum should be keep in sync with their native equivalents with the same name\nexport var RewardAdPluginEvents;\n(function (RewardAdPluginEvents) {\n /**\n * Emits when the SDK records a click on a rewarded ad.\n */\n RewardAdPluginEvents[\"adClicked\"] = \"onRewardedVideoAdClicked\";\n /**\n * Emits when a rewarded ad has loaded and is ready to show.\n */\n RewardAdPluginEvents[\"Loaded\"] = \"onRewardedVideoAdLoaded\";\n /**\n * Emits when a rewarded ad fails to load.\n */\n RewardAdPluginEvents[\"FailedToLoad\"] = \"onRewardedVideoAdFailedToLoad\";\n /**\n * Emits when a rewarded ad is shown.\n */\n RewardAdPluginEvents[\"Showed\"] = \"onRewardedVideoAdShowed\";\n /**\n * Emits when a loaded rewarded ad fails to show.\n */\n RewardAdPluginEvents[\"FailedToShow\"] = \"onRewardedVideoAdFailedToShow\";\n /**\n * Emits when a rewarded ad is dismissed.\n *\n * This event does not indicate whether the user earned a reward. Listen for\n * `Rewarded` separately before granting the reward.\n */\n RewardAdPluginEvents[\"Dismissed\"] = \"onRewardedVideoAdDismissed\";\n /**\n * Emits when the user earns the advertised reward.\n */\n RewardAdPluginEvents[\"Rewarded\"] = \"onRewardedVideoAdReward\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n RewardAdPluginEvents[\"AdImpression\"] = \"onRewardedVideoAdImpression\";\n})(RewardAdPluginEvents || (RewardAdPluginEvents = {}));\n//# sourceMappingURL=reward-ad-plugin-events.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#consentstatus\n *\n * */\nexport var AdmobConsentStatus;\n(function (AdmobConsentStatus) {\n /**\n * User consent not required.\n */\n AdmobConsentStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /**\n * User consent already obtained.\n */\n AdmobConsentStatus[\"OBTAINED\"] = \"OBTAINED\";\n /**\n * User consent required but not yet obtained.\n */\n AdmobConsentStatus[\"REQUIRED\"] = \"REQUIRED\";\n /**\n * Unknown consent status, AdsConsent.requestInfoUpdate needs to be called to update it.\n */\n AdmobConsentStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(AdmobConsentStatus || (AdmobConsentStatus = {}));\n//# sourceMappingURL=consent-status.enum.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#debuggeography\n *\n * */\nexport var AdmobConsentDebugGeography;\n(function (AdmobConsentDebugGeography) {\n /**\n * Debug geography disabled.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"DISABLED\"] = 0] = \"DISABLED\";\n /**\n * Geography appears as in EEA for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"EEA\"] = 1] = \"EEA\";\n /**\n * Geography appears as not in EEA for debug devices.\n * @deprecated\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"NOT_EEA\"] = 2] = \"NOT_EEA\";\n /**\n * Geography appears as in regulated US state for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"US\"] = 3] = \"US\";\n /**\n * Geography appears as OTHER state for debug devices.\n */\n AdmobConsentDebugGeography[AdmobConsentDebugGeography[\"OTHER\"] = 4] = \"OTHER\";\n})(AdmobConsentDebugGeography || (AdmobConsentDebugGeography = {}));\n//# sourceMappingURL=consent-debug-geography.enum.js.map","/**\n * The precision of an impression-level ad value.\n */\nexport var AdValuePrecision;\n(function (AdValuePrecision) {\n /**\n * The ad value precision is unknown.\n */\n AdValuePrecision[AdValuePrecision[\"Unknown\"] = 0] = \"Unknown\";\n /**\n * The ad value is estimated from aggregated data.\n */\n AdValuePrecision[AdValuePrecision[\"Estimated\"] = 1] = \"Estimated\";\n /**\n * The ad value was provided by the publisher.\n */\n AdValuePrecision[AdValuePrecision[\"PublisherProvided\"] = 2] = \"PublisherProvided\";\n /**\n * The ad value is the precise value paid for this ad.\n */\n AdValuePrecision[AdValuePrecision[\"Precise\"] = 3] = \"Precise\";\n})(AdValuePrecision || (AdValuePrecision = {}));\n//# sourceMappingURL=ad-mob-revenue-data.interface.js.map","export var AppOpenAdPluginEvents;\n(function (AppOpenAdPluginEvents) {\n /**\n * Emits when an App Open ad has loaded.\n */\n AppOpenAdPluginEvents[\"Loaded\"] = \"appOpenAdLoaded\";\n /**\n * Emits when an App Open ad fails to load.\n */\n AppOpenAdPluginEvents[\"FailedToLoad\"] = \"appOpenAdFailedToLoad\";\n /**\n * Emits when an App Open ad is shown.\n */\n AppOpenAdPluginEvents[\"Opened\"] = \"appOpenAdOpened\";\n /**\n * Emits when an App Open ad is dismissed.\n */\n AppOpenAdPluginEvents[\"Closed\"] = \"appOpenAdClosed\";\n /**\n * Emits when a loaded App Open ad fails to show.\n */\n AppOpenAdPluginEvents[\"FailedToShow\"] = \"appOpenAdFailedToShow\";\n /**\n * Emits impression-level ad revenue data when a paid event is recorded.\n */\n AppOpenAdPluginEvents[\"AdImpression\"] = \"appOpenAdImpression\";\n})(AppOpenAdPluginEvents || (AppOpenAdPluginEvents = {}));\n//# sourceMappingURL=app-open-ad-plugin-events.enum.js.map","export var NativeAdPluginEvents;\n(function (NativeAdPluginEvents) {\n NativeAdPluginEvents[\"Loaded\"] = \"nativeAdLoaded\";\n NativeAdPluginEvents[\"FailedToLoad\"] = \"nativeAdFailedToLoad\";\n NativeAdPluginEvents[\"Clicked\"] = \"nativeAdClicked\";\n NativeAdPluginEvents[\"AdImpression\"] = \"nativeAdImpression\";\n NativeAdPluginEvents[\"Opened\"] = \"nativeAdOpened\";\n NativeAdPluginEvents[\"Closed\"] = \"nativeAdClosed\";\n NativeAdPluginEvents[\"AdPaid\"] = \"nativeAdPaid\";\n})(NativeAdPluginEvents || (NativeAdPluginEvents = {}));\n//# sourceMappingURL=native-ad-plugin-events.enum.js.map","import { registerPlugin } from '@capacitor/core';\nimport { configureNativeAdBridge } from './native-ads/native-ad-feed';\nconst nativeAdBridge = registerPlugin('AdMob', {\n web: () => import('./web').then((m) => new m.AdMobWeb()),\n});\nconst AdMob = nativeAdBridge;\nconfigureNativeAdBridge(nativeAdBridge);\nexport * from './definitions';\nexport * from './banner/index';\nexport * from './interstitial/index';\nexport * from './reward-interstitial/index';\nexport * from './reward/index';\nexport * from './consent/index';\nexport * from './shared/index';\nexport * from './app-open/index';\nexport * from './native-ads/index';\nexport { AdMob };\n//# sourceMappingURL=index.js.map","/**\n * For more information:\n * https://developers.google.com/admob/unity/reference/namespace/google-mobile-ads/ump/api#privacyoptionsrequirementstatus\n *\n * */\nexport var PrivacyOptionsRequirementStatus;\n(function (PrivacyOptionsRequirementStatus) {\n /**\n * Privacy options entry point is not required.\n */\n PrivacyOptionsRequirementStatus[\"NOT_REQUIRED\"] = \"NOT_REQUIRED\";\n /**\n * Privacy options entry point is required.\n */\n PrivacyOptionsRequirementStatus[\"REQUIRED\"] = \"REQUIRED\";\n /**\n * Privacy options requirement status is unknown.\n */\n PrivacyOptionsRequirementStatus[\"UNKNOWN\"] = \"UNKNOWN\";\n})(PrivacyOptionsRequirementStatus || (PrivacyOptionsRequirementStatus = {}));\n//# sourceMappingURL=privacy-options-requirement-status.enum.js.map","import { WebPlugin } from '@capacitor/core';\nimport { AdmobConsentStatus } from './consent/consent-status.enum';\nimport { PrivacyOptionsRequirementStatus } from './consent/privacy-options-requirement-status.enum';\nexport class AdMobWeb extends WebPlugin {\n async initialize() {\n console.log('initialize');\n }\n async requestTrackingAuthorization() {\n console.log('requestTrackingAuthorization');\n }\n async trackingAuthorizationStatus() {\n return {\n status: 'authorized',\n };\n }\n async requestConsentInfo(options) {\n console.log('requestConsentInfo', options);\n return {\n status: AdmobConsentStatus.REQUIRED,\n isConsentFormAvailable: true,\n canRequestAds: true,\n privacyOptionsRequirementStatus: PrivacyOptionsRequirementStatus.REQUIRED,\n };\n }\n async showPrivacyOptionsForm() {\n console.log('showPrivacyOptionsForm');\n }\n async showConsentForm() {\n console.log('showConsentForm');\n return {\n status: AdmobConsentStatus.REQUIRED,\n canRequestAds: true,\n privacyOptionsRequirementStatus: PrivacyOptionsRequirementStatus.REQUIRED,\n };\n }\n async resetConsentInfo() {\n console.log('resetConsentInfo');\n }\n async setApplicationMuted(options) {\n console.log('setApplicationMuted', options);\n }\n async setApplicationVolume(options) {\n console.log('setApplicationVolume', options);\n }\n async showBanner(options) {\n console.log('showBanner', options);\n }\n async hideBanner() {\n console.log('hideBanner');\n }\n async resumeBanner() {\n console.log('resumeBanner');\n }\n async removeBanner() {\n console.log('removeBanner');\n }\n async startNativeAdFeed() {\n throw new Error('Native ads are only available on iOS and Android');\n }\n async destroyNativeAdFeed(options) {\n console.log('destroyNativeAdFeed', options);\n }\n async loadNativeAd() {\n throw new Error('Native ads are only available on iOS and Android');\n }\n async updateNativeAdPlacements(options) {\n console.log('updateNativeAdPlacements', options);\n }\n async removeNativeAd(options) {\n console.log('removeNativeAd', options);\n }\n async prepareInterstitial(options) {\n console.log('prepareInterstitial', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showInterstitial(options) {\n console.log('showInterstitial', options);\n }\n async prepareRewardVideoAd(options) {\n console.log('prepareRewardVideoAd', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showRewardVideoAd(options) {\n console.log('showRewardVideoAd', options);\n return {\n type: '',\n amount: 0,\n };\n }\n async prepareRewardInterstitialAd(options) {\n console.log('prepareRewardInterstitialAd', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showRewardInterstitialAd(options) {\n console.log('showRewardInterstitialAd', options);\n return {\n type: '',\n amount: 0,\n };\n }\n async loadAppOpen(options) {\n console.log('loadAppOpen', options);\n return {\n adUnitId: options.adId,\n };\n }\n async showAppOpen(options) {\n console.log('showAppOpen', options);\n }\n async isAppOpenLoaded() {\n return { value: false };\n }\n addListener(eventName, listenerFunc) {\n void listenerFunc;\n console.log('addListener', eventName);\n return Promise.resolve({ remove: () => Promise.resolve() });\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["NativeAdTemplate","Capacitor","MaxAdContentRating","BannerAdPluginEvents","BannerAdPosition","BannerAdSize","InterstitialAdPluginEvents","RewardInterstitialAdPluginEvents","RewardAdPluginEvents","AdmobConsentStatus","AdmobConsentDebugGeography","AdValuePrecision","AppOpenAdPluginEvents","NativeAdPluginEvents","registerPlugin","WebPlugin"],"mappings":"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","x_google_ignoreList":[0,1,2]}
@@ -1,6 +1,4 @@
1
- # Native Ads (Preview)
2
-
3
- **Native Ads is a Preview feature.** You can use it for testing and in production. Its API may change in a minor release while in Preview.
1
+ # Native Ads
4
2
 
5
3
  Native ads are rendered with Google Mobile Ads SDK views owned by this plugin. Your app reserves an HTML slot and supplies a stable key; it does not implement a `NativeAdView` in Kotlin or Swift and does not render ad assets in JavaScript.
6
4
 
@@ -32,7 +30,7 @@ const paidHandle = await nativeAds.addListener(NativeAdPluginEvents.AdPaid, (eve
32
30
  });
33
31
  ```
34
32
 
35
- Use the framework-independent element in ordinary or virtualized markup. `slot-key` must identify the logical ad item, not its array index and not the recycled DOM node.
33
+ Use the framework-independent element in your feed markup. `slot-key` must identify the logical ad item, not its array index and not the recycled DOM node.
36
34
 
37
35
  ```html
38
36
  <capacitor-admob-native feed-id="home-feed" slot-key="sponsored-after-article-42"></capacitor-admob-native>
@@ -134,7 +132,7 @@ Call `destroy()` when leaving a screen. Await `pause()` before presenting an ove
134
132
  | `invalidateLayout(): Promise<void>` | Hides and remeasures after an application-driven reflow. |
135
133
  | `destroy()` | Removes listeners and all native resources for the session. |
136
134
 
137
- `NativeAdFeedOptions` contains `feedId`, `adId`, `template`, `style`, `isTesting`, `npa`, and the optional iOS `scrollElement`. Set `isTesting: true` to use Google's platform test ad unit. For production ads, set your platform-specific native ad unit ID in `adId` and omit `isTesting` or set it to `false`. `adId` is required unless `isTesting` is `true`. `feedId` and every `slotKey` must be non-empty and stable; reuse the same feed IDs across WebView reloads so stale native sessions can be replaced safely.
135
+ `NativeAdFeedOptions` contains `feedId`, `adId`, `template`, `style`, `isTesting`, `npa`, the optional iOS `scrollElement`, and Android `androidScrollSnapshot`. Set `isTesting: true` to use Google's platform test ad unit. For production ads, set your platform-specific native ad unit ID in `adId` and omit `isTesting` or set it to `false`. `adId` is required unless `isTesting` is `true`. `feedId` and every `slotKey` must be non-empty and stable; reuse the same feed IDs across WebView reloads so stale native sessions can be replaced safely.
138
136
 
139
137
  ## Rendering and policy boundary
140
138
 
@@ -156,6 +154,34 @@ const feed = await NativeAdFeed.create({
156
154
  });
157
155
  ```
158
156
 
159
- On iOS, specifying `scrollElement` enables experimental native scroll tracking for that container. Layout changes still require remeasurement; call `invalidateLayout()` after application-driven changes. Clipping inside the scroll container and at its visible bounds is retained. `pause()` and `destroy()` stop tracking. Other platforms ignore this option and retain JavaScript coordinate updates.
157
+ On iOS, specifying `scrollElement` enables native scroll tracking for that container. Layout changes still require remeasurement; call `invalidateLayout()` after application-driven changes. Clipping inside the scroll container and at its visible bounds is retained. `pause()` and `destroy()` stop tracking. Other platforms ignore this option and retain JavaScript coordinate updates.
160
158
 
161
159
  If the specified container cannot be identified unambiguously, the update fails and its ads stay hidden. Use one untransformed, unzoomed overflow scroll container; nested scrolling, document scrolling through this option, and virtual-scroll integrations are not supported. This does not change gesture routing for swipes that begin on an ad.
160
+
161
+ ## Android scroll snapshots
162
+
163
+ Set `androidScrollSnapshot: true` to display a cached image in the web feed while
164
+ scrolling and restore the native ad when scrolling stops. The demo enables this
165
+ option by default on Android.
166
+
167
+ ```ts
168
+ const feed = await NativeAdFeed.create({
169
+ feedId: 'articles',
170
+ adId: 'YOUR_ANDROID_NATIVE_AD_UNIT_ID',
171
+ androidScrollSnapshot: true,
172
+ });
173
+ ```
174
+
175
+ Use `isTesting: true` during development to request Google's test ads. For production,
176
+ provide your native ad unit ID in `adId` and omit `isTesting` or set it to `false`.
177
+ Snapshots are available in either mode. The option is supported only on Android.
178
+
179
+ WebView Native UI Engine manages snapshot capture and switching between the image
180
+ and native view. Each ad slot has its own projection. Images are refreshed when the
181
+ ad is reloaded or its layout changes; pausing, detaching, or destroying the feed
182
+ hides or removes the corresponding projections.
183
+
184
+ Video creatives and translucent backgrounds retain native tracking. If a snapshot
185
+ is unavailable, not ready, or exceeds the supported dimensions, the native view
186
+ continues tracking. Native SDK views handle ad interactions; snapshots do not
187
+ forward clicks or synthesize impressions.
@@ -1,3 +1,5 @@
1
+ // Preserve existing public Swift API names.
2
+ // swiftlint:disable identifier_name
1
3
  public enum AppOpenAdPluginEvents: String {
2
4
  case Loaded = "appOpenAdLoaded"
3
5
  case FailedToLoad = "appOpenAdFailedToLoad"
@@ -6,3 +8,4 @@ public enum AppOpenAdPluginEvents: String {
6
8
  case FailedToShow = "appOpenAdFailedToShow"
7
9
  case AdImpression = "appOpenAdImpression"
8
10
  }
11
+ // swiftlint:enable identifier_name
@@ -1,3 +1,5 @@
1
+ // Preserve existing public Swift API names.
2
+ // swiftlint:disable identifier_name
1
3
  public enum BannerAdPluginEvents: String {
2
4
  case SizeChanged = "bannerAdSizeChanged"
3
5
  case Closed = "bannerAdClosed"
@@ -7,3 +9,4 @@ public enum BannerAdPluginEvents: String {
7
9
  case AdImpression = "bannerAdImpression"
8
10
  case AdPaid = "bannerAdPaid"
9
11
  }
12
+ // swiftlint:enable identifier_name
@@ -1,3 +1,5 @@
1
+ // Preserve existing public Swift API names.
2
+ // swiftlint:disable identifier_name
1
3
  public enum BannerAdSizeEnum: String {
2
4
  case BANNER = "BANNER"
3
5
  case FULL_BANNER = "FULL_BANNER"
@@ -8,3 +10,4 @@ public enum BannerAdSizeEnum: String {
8
10
  case ADAPTIVE_BANNER = "ADAPTIVE_BANNER"
9
11
  // case FLUID = "FLUID"
10
12
  }
13
+ // swiftlint:enable identifier_name