@capacitor-community/admob 8.2.0-beta.pr484.shaa6be63853bbd → 8.2.1

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 (62) hide show
  1. package/README.md +1 -0
  2. package/android/src/main/java/com/getcapacitor/community/admob/AdMob.java +73 -0
  3. package/android/src/main/java/com/getcapacitor/community/admob/nativeads/NativeAdExecutor.kt +378 -0
  4. package/android/src/main/java/com/getcapacitor/community/admob/nativeads/NativeAdFeedSessions.kt +35 -0
  5. package/android/src/main/java/com/getcapacitor/community/admob/nativeads/NativeAdPlacementValue.kt +44 -0
  6. package/android/src/main/java/com/getcapacitor/community/admob/nativeads/NativeAdPluginEvents.kt +11 -0
  7. package/android/src/main/java/com/getcapacitor/community/admob/nativeads/PluginNativeAdView.kt +187 -0
  8. package/dist/esm/index.d.ts +1 -0
  9. package/dist/esm/index.js +5 -1
  10. package/dist/esm/index.js.map +1 -1
  11. package/dist/esm/native-ads/index.d.ts +6 -0
  12. package/dist/esm/native-ads/index.js +4 -0
  13. package/dist/esm/native-ads/index.js.map +1 -0
  14. package/dist/esm/native-ads/native-ad-definitions.interface.d.ts +14 -0
  15. package/dist/esm/native-ads/native-ad-definitions.interface.js +2 -0
  16. package/dist/esm/native-ads/native-ad-definitions.interface.js.map +1 -0
  17. package/dist/esm/native-ads/native-ad-element.d.ts +9 -0
  18. package/dist/esm/native-ads/native-ad-element.js +53 -0
  19. package/dist/esm/native-ads/native-ad-element.js.map +1 -0
  20. package/dist/esm/native-ads/native-ad-event.interface.d.ts +5 -0
  21. package/dist/esm/native-ads/native-ad-event.interface.js +2 -0
  22. package/dist/esm/native-ads/native-ad-event.interface.js.map +1 -0
  23. package/dist/esm/native-ads/native-ad-feed.d.ts +72 -0
  24. package/dist/esm/native-ads/native-ad-feed.js +568 -0
  25. package/dist/esm/native-ads/native-ad-feed.js.map +1 -0
  26. package/dist/esm/native-ads/native-ad-geometry.d.ts +8 -0
  27. package/dist/esm/native-ads/native-ad-geometry.js +91 -0
  28. package/dist/esm/native-ads/native-ad-geometry.js.map +1 -0
  29. package/dist/esm/native-ads/native-ad-options.interface.d.ts +36 -0
  30. package/dist/esm/native-ads/native-ad-options.interface.js +2 -0
  31. package/dist/esm/native-ads/native-ad-options.interface.js.map +1 -0
  32. package/dist/esm/native-ads/native-ad-placement.interface.d.ts +26 -0
  33. package/dist/esm/native-ads/native-ad-placement.interface.js +2 -0
  34. package/dist/esm/native-ads/native-ad-placement.interface.js.map +1 -0
  35. package/dist/esm/native-ads/native-ad-plugin-events.enum.d.ts +9 -0
  36. package/dist/esm/native-ads/native-ad-plugin-events.enum.js +11 -0
  37. package/dist/esm/native-ads/native-ad-plugin-events.enum.js.map +1 -0
  38. package/dist/esm/native-ads/native-ad-style.interface.d.ts +30 -0
  39. package/dist/esm/native-ads/native-ad-style.interface.js +2 -0
  40. package/dist/esm/native-ads/native-ad-style.interface.js.map +1 -0
  41. package/dist/esm/native-ads/native-ad-template.enum.d.ts +11 -0
  42. package/dist/esm/native-ads/native-ad-template.enum.js +13 -0
  43. package/dist/esm/native-ads/native-ad-template.enum.js.map +1 -0
  44. package/dist/esm/web.d.ts +9 -1
  45. package/dist/esm/web.js +15 -0
  46. package/dist/esm/web.js.map +1 -1
  47. package/dist/plugin.cjs.js +751 -1
  48. package/dist/plugin.cjs.js.map +1 -1
  49. package/dist/plugin.js +751 -1
  50. package/dist/plugin.js.map +1 -1
  51. package/docs/native-ads.md +161 -0
  52. package/ios/Sources/AdMobPlugin/AdMobPlugin.swift +76 -44
  53. package/ios/Sources/AdMobPlugin/NativeAds/NativeAdExecutor.swift +354 -0
  54. package/ios/Sources/AdMobPlugin/NativeAds/NativeAdFeedSessions.swift +34 -0
  55. package/ios/Sources/AdMobPlugin/NativeAds/NativeAdPlacementValue.swift +50 -0
  56. package/ios/Sources/AdMobPlugin/NativeAds/NativeAdPluginEvents.swift +11 -0
  57. package/ios/Sources/AdMobPlugin/NativeAds/NativeAdScrollTracker.swift +66 -0
  58. package/ios/Sources/AdMobPlugin/NativeAds/NativeAdValues.swift +27 -0
  59. package/ios/Sources/AdMobPlugin/NativeAds/PluginNativeAdView.swift +187 -0
  60. package/ios/Tests/AdMobPluginTests/AdMobPluginTests.swift +37 -0
  61. package/ios/Tests/AdMobPluginTests/NativeAdScrollTrackerTests.swift +47 -0
  62. package/package.json +1 -1
@@ -0,0 +1,91 @@
1
+ const intersectRects = (left, right) => {
2
+ const x = Math.max(left.x, right.x);
3
+ const y = Math.max(left.y, right.y);
4
+ const maxX = Math.min(left.x + left.width, right.x + right.width);
5
+ const maxY = Math.min(left.y + left.height, right.y + right.height);
6
+ return {
7
+ x,
8
+ y,
9
+ width: Math.max(0, maxX - x),
10
+ height: Math.max(0, maxY - y),
11
+ };
12
+ };
13
+ const toNativeRect = (rect) => ({
14
+ x: rect.left,
15
+ y: rect.top,
16
+ width: rect.width,
17
+ height: rect.height,
18
+ });
19
+ const clipsDescendants = (element) => {
20
+ const style = window.getComputedStyle(element);
21
+ return [style.overflow, style.overflowX, style.overflowY].some((value) => ['auto', 'hidden', 'scroll', 'clip'].includes(value));
22
+ };
23
+ export function* nativeAdAncestors(element) {
24
+ var _a, _b;
25
+ let current = element;
26
+ while (current) {
27
+ const root = current.getRootNode();
28
+ current =
29
+ (_b = (_a = current.assignedSlot) !== null && _a !== void 0 ? _a : current.parentElement) !== null && _b !== void 0 ? _b : (root instanceof ShadowRoot ? root.host : null);
30
+ if (current)
31
+ yield current;
32
+ }
33
+ }
34
+ export const measureNativeAdSlot = (element, scrollElement) => {
35
+ var _a, _b, _c, _d, _e, _f, _g, _h;
36
+ const style = window.getComputedStyle(element);
37
+ const domRect = element.getBoundingClientRect();
38
+ if (!element.isConnected ||
39
+ style.display === 'none' ||
40
+ style.visibility === 'hidden' ||
41
+ Number.parseFloat(style.opacity || '1') === 0 ||
42
+ domRect.width <= 0 ||
43
+ domRect.height <= 0) {
44
+ return undefined;
45
+ }
46
+ const rect = toNativeRect(domRect);
47
+ let clipRect = scrollElement
48
+ ? rect
49
+ : {
50
+ x: (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.offsetLeft) !== null && _b !== void 0 ? _b : 0,
51
+ y: (_d = (_c = window.visualViewport) === null || _c === void 0 ? void 0 : _c.offsetTop) !== null && _d !== void 0 ? _d : 0,
52
+ width: (_f = (_e = window.visualViewport) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : window.innerWidth,
53
+ height: (_h = (_g = window.visualViewport) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : window.innerHeight,
54
+ };
55
+ let foundScrollElement = !scrollElement;
56
+ for (const ancestor of nativeAdAncestors(element)) {
57
+ if (ancestor === scrollElement) {
58
+ foundScrollElement = true;
59
+ break;
60
+ }
61
+ if (clipsDescendants(ancestor)) {
62
+ clipRect = intersectRects(clipRect, toNativeRect(ancestor.getBoundingClientRect()));
63
+ }
64
+ }
65
+ clipRect = intersectRects(rect, clipRect);
66
+ if (!foundScrollElement || clipRect.width <= 0 || clipRect.height <= 0)
67
+ return undefined;
68
+ if (scrollElement) {
69
+ const origin = scrollElement.getBoundingClientRect();
70
+ const translate = (value) => (Object.assign(Object.assign({}, value), { x: value.x - origin.left + scrollElement.scrollLeft, y: value.y - origin.top + scrollElement.scrollTop }));
71
+ return { rect: translate(rect), clipRect: translate(clipRect) };
72
+ }
73
+ return { rect, clipRect };
74
+ };
75
+ export const measureNativeAdScrollContainer = (element) => {
76
+ var _a, _b, _c, _d, _e, _f, _g, _h;
77
+ const rect = toNativeRect(element.getBoundingClientRect());
78
+ let clipRect = intersectRects(rect, {
79
+ x: (_b = (_a = window.visualViewport) === null || _a === void 0 ? void 0 : _a.offsetLeft) !== null && _b !== void 0 ? _b : 0,
80
+ y: (_d = (_c = window.visualViewport) === null || _c === void 0 ? void 0 : _c.offsetTop) !== null && _d !== void 0 ? _d : 0,
81
+ width: (_f = (_e = window.visualViewport) === null || _e === void 0 ? void 0 : _e.width) !== null && _f !== void 0 ? _f : window.innerWidth,
82
+ height: (_h = (_g = window.visualViewport) === null || _g === void 0 ? void 0 : _g.height) !== null && _h !== void 0 ? _h : window.innerHeight,
83
+ });
84
+ for (const ancestor of nativeAdAncestors(element)) {
85
+ if (clipsDescendants(ancestor)) {
86
+ clipRect = intersectRects(clipRect, toNativeRect(ancestor.getBoundingClientRect()));
87
+ }
88
+ }
89
+ return { rect, clipRect, contentWidth: element.scrollWidth, contentHeight: element.scrollHeight };
90
+ };
91
+ //# sourceMappingURL=native-ad-geometry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-ad-geometry.js","sourceRoot":"","sources":["../../../src/native-ads/native-ad-geometry.ts"],"names":[],"mappings":"AAOA,MAAM,cAAc,GAAG,CAAC,IAAkB,EAAE,KAAmB,EAAgB,EAAE;IAC/E,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC;IACpC,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,CAAC;IAClE,MAAM,IAAI,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC;IACpE,OAAO;QACL,CAAC;QACD,CAAC;QACD,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;QAC5B,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,CAAC;KAC9B,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,YAAY,GAAG,CAAC,IAAa,EAAgB,EAAE,CAAC,CAAC;IACrD,CAAC,EAAE,IAAI,CAAC,IAAI;IACZ,CAAC,EAAE,IAAI,CAAC,GAAG;IACX,KAAK,EAAE,IAAI,CAAC,KAAK;IACjB,MAAM,EAAE,IAAI,CAAC,MAAM;CACpB,CAAC,CAAC;AAEH,MAAM,gBAAgB,GAAG,CAAC,OAAoB,EAAW,EAAE;IACzD,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,OAAO,CAAC,KAAK,CAAC,QAAQ,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CACvE,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CACrD,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,SAAS,CAAC,CAAC,iBAAiB,CAAC,OAAoB;;IACrD,IAAI,OAAO,GAAuB,OAAO,CAAC;IAC1C,OAAO,OAAO,EAAE,CAAC;QACf,MAAM,IAAI,GAAS,OAAO,CAAC,WAAW,EAAE,CAAC;QACzC,OAAO;YACL,MAAA,MAAA,OAAO,CAAC,YAAY,mCAAI,OAAO,CAAC,aAAa,mCAAI,CAAC,IAAI,YAAY,UAAU,CAAC,CAAC,CAAE,IAAI,CAAC,IAAoB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACpH,IAAI,OAAO;YAAE,MAAM,OAAO,CAAC;IAC7B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,OAAoB,EACpB,aAA2B,EACO,EAAE;;IACpC,MAAM,KAAK,GAAG,MAAM,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,OAAO,CAAC,qBAAqB,EAAE,CAAC;IAChD,IACE,CAAC,OAAO,CAAC,WAAW;QACpB,KAAK,CAAC,OAAO,KAAK,MAAM;QACxB,KAAK,CAAC,UAAU,KAAK,QAAQ;QAC7B,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,IAAI,GAAG,CAAC,KAAK,CAAC;QAC7C,OAAO,CAAC,KAAK,IAAI,CAAC;QAClB,OAAO,CAAC,MAAM,IAAI,CAAC,EACnB,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACnC,IAAI,QAAQ,GAAiB,aAAa;QACxC,CAAC,CAAC,IAAI;QACN,CAAC,CAAC;YACE,CAAC,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,UAAU,mCAAI,CAAC;YACzC,CAAC,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,SAAS,mCAAI,CAAC;YACxC,KAAK,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,KAAK,mCAAI,MAAM,CAAC,UAAU;YACxD,MAAM,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,MAAM,mCAAI,MAAM,CAAC,WAAW;SAC5D,CAAC;IAEN,IAAI,kBAAkB,GAAG,CAAC,aAAa,CAAC;IACxC,KAAK,MAAM,QAAQ,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,QAAQ,KAAK,aAAa,EAAE,CAAC;YAC/B,kBAAkB,GAAG,IAAI,CAAC;YAC1B,MAAM;QACR,CAAC;QACD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IAED,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IAC1C,IAAI,CAAC,kBAAkB,IAAI,QAAQ,CAAC,KAAK,IAAI,CAAC,IAAI,QAAQ,CAAC,MAAM,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACzF,IAAI,aAAa,EAAE,CAAC;QAClB,MAAM,MAAM,GAAG,aAAa,CAAC,qBAAqB,EAAE,CAAC;QACrD,MAAM,SAAS,GAAG,CAAC,KAAmB,EAAgB,EAAE,CAAC,iCACpD,KAAK,KACR,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,IAAI,GAAG,aAAa,CAAC,UAAU,EACnD,CAAC,EAAE,KAAK,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,GAAG,aAAa,CAAC,SAAS,IACjD,CAAC;QACH,OAAO,EAAE,IAAI,EAAE,SAAS,CAAC,IAAI,CAAC,EAAE,QAAQ,EAAE,SAAS,CAAC,QAAQ,CAAC,EAAE,CAAC;IAClE,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AAC5B,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,OAAoB,EAA6C,EAAE;;IAChH,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAAC;IAC3D,IAAI,QAAQ,GAAG,cAAc,CAAC,IAAI,EAAE;QAClC,CAAC,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,UAAU,mCAAI,CAAC;QACzC,CAAC,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,SAAS,mCAAI,CAAC;QACxC,KAAK,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,KAAK,mCAAI,MAAM,CAAC,UAAU;QACxD,MAAM,EAAE,MAAA,MAAA,MAAM,CAAC,cAAc,0CAAE,MAAM,mCAAI,MAAM,CAAC,WAAW;KAC5D,CAAC,CAAC;IACH,KAAK,MAAM,QAAQ,IAAI,iBAAiB,CAAC,OAAO,CAAC,EAAE,CAAC;QAClD,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC;YAC/B,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAAE,YAAY,CAAC,QAAQ,CAAC,qBAAqB,EAAE,CAAC,CAAC,CAAC;QACtF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,YAAY,EAAE,OAAO,CAAC,WAAW,EAAE,aAAa,EAAE,OAAO,CAAC,YAAY,EAAE,CAAC;AACpG,CAAC,CAAC"}
@@ -0,0 +1,36 @@
1
+ import type { AdOptions } from '../shared';
2
+ import type { NativeAdStyle } from './native-ad-style.interface';
3
+ import type { NativeAdTemplate } from './native-ad-template.enum';
4
+ /** @experimental Native feed ads are not yet covered by the stable API contract. */
5
+ export interface NativeAdFeedOptions extends Pick<AdOptions, 'npa' | 'isTesting'> {
6
+ /** Unique ID for this feed manager. */
7
+ feedId: string;
8
+ /**
9
+ * Experimental iOS native tracking for a single scroll container.
10
+ * For Ionic, pass the result of ion-content.getScrollElement().
11
+ * Other platforms retain JavaScript placement updates.
12
+ */
13
+ scrollElement?: HTMLElement;
14
+ /** Plugin-owned layout used for every native ad in this feed. */
15
+ template?: NativeAdTemplate;
16
+ /** Cross-platform styling applied to the plugin-owned layout. */
17
+ style?: NativeAdStyle;
18
+ /** Native ad unit ID. Required unless isTesting is true. */
19
+ adId?: string;
20
+ }
21
+ export interface NativeAdFeedSession {
22
+ feedId: string;
23
+ sessionId: string;
24
+ }
25
+ export interface NativeAdLoadOptions extends Pick<AdOptions, 'npa' | 'isTesting'>, NativeAdFeedSession {
26
+ slotKey: string;
27
+ template: NativeAdTemplate;
28
+ style?: NativeAdStyle;
29
+ adId?: string;
30
+ }
31
+ export interface NativeAdIdentity {
32
+ feedId: string;
33
+ slotKey: string;
34
+ }
35
+ export interface NativeAdCommandIdentity extends NativeAdIdentity, NativeAdFeedSession {
36
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=native-ad-options.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-ad-options.interface.js","sourceRoot":"","sources":["../../../src/native-ads/native-ad-options.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,26 @@
1
+ import type { NativeAdFeedSession, NativeAdIdentity } from './native-ad-options.interface';
2
+ export interface NativeAdRect {
3
+ x: number;
4
+ y: number;
5
+ width: number;
6
+ height: number;
7
+ }
8
+ export interface NativeAdPlacement extends NativeAdIdentity {
9
+ /** Internal binding generation used to reject recycled DOM state. */
10
+ generation: number;
11
+ visible: boolean;
12
+ rect?: NativeAdRect;
13
+ clipRect?: NativeAdRect;
14
+ }
15
+ export interface NativeAdPlacementBatch extends NativeAdFeedSession {
16
+ /** Monotonically increasing sequence used to reject stale bridge calls. */
17
+ sequence: number;
18
+ placements: NativeAdPlacement[];
19
+ /** iOS-only binding; placements use this element's content coordinates. */
20
+ scrollContainer?: {
21
+ rect: NativeAdRect;
22
+ clipRect: NativeAdRect;
23
+ contentWidth: number;
24
+ contentHeight: number;
25
+ };
26
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=native-ad-placement.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-ad-placement.interface.js","sourceRoot":"","sources":["../../../src/native-ads/native-ad-placement.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,9 @@
1
+ export declare enum NativeAdPluginEvents {
2
+ Loaded = "nativeAdLoaded",
3
+ FailedToLoad = "nativeAdFailedToLoad",
4
+ Clicked = "nativeAdClicked",
5
+ AdImpression = "nativeAdImpression",
6
+ Opened = "nativeAdOpened",
7
+ Closed = "nativeAdClosed",
8
+ AdPaid = "nativeAdPaid"
9
+ }
@@ -0,0 +1,11 @@
1
+ export var NativeAdPluginEvents;
2
+ (function (NativeAdPluginEvents) {
3
+ NativeAdPluginEvents["Loaded"] = "nativeAdLoaded";
4
+ NativeAdPluginEvents["FailedToLoad"] = "nativeAdFailedToLoad";
5
+ NativeAdPluginEvents["Clicked"] = "nativeAdClicked";
6
+ NativeAdPluginEvents["AdImpression"] = "nativeAdImpression";
7
+ NativeAdPluginEvents["Opened"] = "nativeAdOpened";
8
+ NativeAdPluginEvents["Closed"] = "nativeAdClosed";
9
+ NativeAdPluginEvents["AdPaid"] = "nativeAdPaid";
10
+ })(NativeAdPluginEvents || (NativeAdPluginEvents = {}));
11
+ //# sourceMappingURL=native-ad-plugin-events.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-ad-plugin-events.enum.js","sourceRoot":"","sources":["../../../src/native-ads/native-ad-plugin-events.enum.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,oBAQX;AARD,WAAY,oBAAoB;IAC9B,iDAAyB,CAAA;IACzB,6DAAqC,CAAA;IACrC,mDAA2B,CAAA;IAC3B,2DAAmC,CAAA;IACnC,iDAAyB,CAAA;IACzB,iDAAyB,CAAA;IACzB,+CAAuB,CAAA;AACzB,CAAC,EARW,oBAAoB,KAApB,oBAAoB,QAQ/B"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * Cross-platform style tokens supported by the plugin-owned native layouts.
3
+ * Arbitrary HTML and platform-specific native layouts are intentionally not
4
+ * accepted so that click tracking, AdChoices, and attribution remain under the
5
+ * Google Mobile Ads SDK's control.
6
+ */
7
+ export interface NativeAdStyle {
8
+ /** CSS-style `#RRGGBB` or `#RRGGBBAA`. */
9
+ backgroundColor?: string;
10
+ /** CSS-style `#RRGGBB` or `#RRGGBBAA`. */
11
+ borderColor?: string;
12
+ /** Border width in logical pixels. */
13
+ borderWidth?: number;
14
+ /** Corner radius in logical pixels. */
15
+ cornerRadius?: number;
16
+ /** CSS-style `#RRGGBB` or `#RRGGBBAA`. */
17
+ headlineColor?: string;
18
+ /** Scaled font size, clamped to 12–24. */
19
+ headlineFontSize?: number;
20
+ /** CSS-style `#RRGGBB` or `#RRGGBBAA`. */
21
+ bodyColor?: string;
22
+ /** Scaled font size, clamped to 10–18. */
23
+ bodyFontSize?: number;
24
+ /** CSS-style `#RRGGBB` or `#RRGGBBAA`. */
25
+ callToActionBackgroundColor?: string;
26
+ /** CSS-style `#RRGGBB` or `#RRGGBBAA`. */
27
+ callToActionTextColor?: string;
28
+ /** Scaled font size, clamped to 12–18. */
29
+ callToActionFontSize?: number;
30
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=native-ad-style.interface.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-ad-style.interface.js","sourceRoot":"","sources":["../../../src/native-ads/native-ad-style.interface.ts"],"names":[],"mappings":""}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Layouts rendered by the native Google Mobile Ads SDK.
3
+ *
4
+ * The dimensions of a native ad slot must remain stable while it is used by a
5
+ * virtual scroller. `small` is intended for compact rows, while `medium`
6
+ * includes a larger media area.
7
+ */
8
+ export declare enum NativeAdTemplate {
9
+ Small = "small",
10
+ Medium = "medium"
11
+ }
@@ -0,0 +1,13 @@
1
+ /**
2
+ * Layouts rendered by the native Google Mobile Ads SDK.
3
+ *
4
+ * The dimensions of a native ad slot must remain stable while it is used by a
5
+ * virtual scroller. `small` is intended for compact rows, while `medium`
6
+ * includes a larger media area.
7
+ */
8
+ export var NativeAdTemplate;
9
+ (function (NativeAdTemplate) {
10
+ NativeAdTemplate["Small"] = "small";
11
+ NativeAdTemplate["Medium"] = "medium";
12
+ })(NativeAdTemplate || (NativeAdTemplate = {}));
13
+ //# sourceMappingURL=native-ad-template.enum.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-ad-template.enum.js","sourceRoot":"","sources":["../../../src/native-ads/native-ad-template.enum.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,CAAN,IAAY,gBAGX;AAHD,WAAY,gBAAgB;IAC1B,mCAAe,CAAA;IACf,qCAAiB,CAAA;AACnB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,QAG3B"}
package/dist/esm/web.d.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import { WebPlugin } from '@capacitor/core';
2
2
  import type { AdMobPlugin, ApplicationMutedOptions, ApplicationVolumeOptions, AdmobConsentInfo, AdmobConsentRequestOptions } from '.';
3
3
  import type { AppOpenAdOptions } from './app-open/app-open-ad-options.interface';
4
+ import type { NativeAdDefinitions } from './native-ads/native-ad-definitions.interface';
5
+ import type { NativeAdCommandIdentity, NativeAdFeedSession } from './native-ads/native-ad-options.interface';
6
+ import type { NativeAdPlacementBatch } from './native-ads/native-ad-placement.interface';
4
7
  import type { AdMobRewardItem } from './reward';
5
8
  import type { AdOptions, AdLoadInfo, AdShowOptions } from './shared';
6
9
  import type { TrackingAuthorizationStatusInterface } from './shared/tracking-authorization-status.interface';
7
- export declare class AdMobWeb extends WebPlugin implements AdMobPlugin {
10
+ export declare class AdMobWeb extends WebPlugin implements AdMobPlugin, NativeAdDefinitions {
8
11
  initialize(): Promise<void>;
9
12
  requestTrackingAuthorization(): Promise<void>;
10
13
  trackingAuthorizationStatus(): Promise<TrackingAuthorizationStatusInterface>;
@@ -18,6 +21,11 @@ export declare class AdMobWeb extends WebPlugin implements AdMobPlugin {
18
21
  hideBanner(): Promise<void>;
19
22
  resumeBanner(): Promise<void>;
20
23
  removeBanner(): Promise<void>;
24
+ startNativeAdFeed(): Promise<void>;
25
+ destroyNativeAdFeed(options: NativeAdFeedSession): Promise<void>;
26
+ loadNativeAd(): Promise<void>;
27
+ updateNativeAdPlacements(options: NativeAdPlacementBatch): Promise<void>;
28
+ removeNativeAd(options: NativeAdCommandIdentity): Promise<void>;
21
29
  prepareInterstitial(options: AdOptions): Promise<AdLoadInfo>;
22
30
  showInterstitial(options?: AdShowOptions): Promise<void>;
23
31
  prepareRewardVideoAd(options: AdOptions): Promise<AdLoadInfo>;
package/dist/esm/web.js CHANGED
@@ -54,6 +54,21 @@ export class AdMobWeb extends WebPlugin {
54
54
  async removeBanner() {
55
55
  console.log('removeBanner');
56
56
  }
57
+ async startNativeAdFeed() {
58
+ throw new Error('Native ads are only available on iOS and Android');
59
+ }
60
+ async destroyNativeAdFeed(options) {
61
+ console.log('destroyNativeAdFeed', options);
62
+ }
63
+ async loadNativeAd() {
64
+ throw new Error('Native ads are only available on iOS and Android');
65
+ }
66
+ async updateNativeAdPlacements(options) {
67
+ console.log('updateNativeAdPlacements', options);
68
+ }
69
+ async removeNativeAd(options) {
70
+ console.log('removeNativeAd', options);
71
+ }
57
72
  async prepareInterstitial(options) {
58
73
  console.log('prepareInterstitial', options);
59
74
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"web.js","sourceRoot":"","sources":["../../src/web.ts"],"names":[],"mappings":"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"}