flet-ads 0.1.0.dev2__tar.gz

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.

Potentially problematic release.


This version of flet-ads might be problematic. Click here for more details.

Files changed (26) hide show
  1. flet_ads-0.1.0.dev2/PKG-INFO +97 -0
  2. flet_ads-0.1.0.dev2/README.md +83 -0
  3. flet_ads-0.1.0.dev2/pyproject.toml +36 -0
  4. flet_ads-0.1.0.dev2/setup.cfg +4 -0
  5. flet_ads-0.1.0.dev2/src/flet_ads/__init__.py +10 -0
  6. flet_ads-0.1.0.dev2/src/flet_ads/banner.py +110 -0
  7. flet_ads-0.1.0.dev2/src/flet_ads/base_ad.py +174 -0
  8. flet_ads-0.1.0.dev2/src/flet_ads/interstitial.py +111 -0
  9. flet_ads-0.1.0.dev2/src/flet_ads/native.py +171 -0
  10. flet_ads-0.1.0.dev2/src/flet_ads.egg-info/PKG-INFO +97 -0
  11. flet_ads-0.1.0.dev2/src/flet_ads.egg-info/SOURCES.txt +24 -0
  12. flet_ads-0.1.0.dev2/src/flet_ads.egg-info/dependency_links.txt +1 -0
  13. flet_ads-0.1.0.dev2/src/flet_ads.egg-info/requires.txt +1 -0
  14. flet_ads-0.1.0.dev2/src/flet_ads.egg-info/top_level.txt +2 -0
  15. flet_ads-0.1.0.dev2/src/flutter/flet_ads/CHANGELOG.md +3 -0
  16. flet_ads-0.1.0.dev2/src/flutter/flet_ads/LICENSE +201 -0
  17. flet_ads-0.1.0.dev2/src/flutter/flet_ads/README.md +3 -0
  18. flet_ads-0.1.0.dev2/src/flutter/flet_ads/analysis_options.yaml +4 -0
  19. flet_ads-0.1.0.dev2/src/flutter/flet_ads/lib/flet_ads.dart +3 -0
  20. flet_ads-0.1.0.dev2/src/flutter/flet_ads/lib/src/banner.dart +96 -0
  21. flet_ads-0.1.0.dev2/src/flutter/flet_ads/lib/src/create_control.dart +29 -0
  22. flet_ads-0.1.0.dev2/src/flutter/flet_ads/lib/src/interstitial.dart +83 -0
  23. flet_ads-0.1.0.dev2/src/flutter/flet_ads/lib/src/native.dart +153 -0
  24. flet_ads-0.1.0.dev2/src/flutter/flet_ads/lib/utils/native.dart +69 -0
  25. flet_ads-0.1.0.dev2/src/flutter/flet_ads/pubspec.lock +759 -0
  26. flet_ads-0.1.0.dev2/src/flutter/flet_ads/pubspec.yaml +18 -0
@@ -0,0 +1,97 @@
1
+ Metadata-Version: 2.2
2
+ Name: flet-ads
3
+ Version: 0.1.0.dev2
4
+ Summary: Ads controls for Flet
5
+ Author-email: Flet contributors <hello@flet.dev>
6
+ Project-URL: Homepage, https://flet.dev
7
+ Project-URL: Documentation, https://flet.dev/docs/controls/ads
8
+ Project-URL: Repository, https://github.com/flet-dev/flet-ads
9
+ Project-URL: Issues, https://github.com/flet-dev/flet-ads/issues
10
+ Classifier: License :: OSI Approved :: Apache Software License
11
+ Requires-Python: >=3.8
12
+ Description-Content-Type: text/markdown
13
+ Requires-Dist: flet>=0.25.2
14
+
15
+ # Ads controls for Flet
16
+
17
+ `BannerAd` and `InterstitialAd` controls for Flet.
18
+
19
+ ## Usage
20
+
21
+ Add `flet-ads` as dependency (`pyproject.toml` or `requirements.txt`) to your Flet project.
22
+
23
+ ## Example
24
+
25
+ ```py
26
+
27
+ import flet as ft
28
+
29
+ import flet_ads as ads
30
+
31
+
32
+ def main(page: ft.Page):
33
+ page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
34
+
35
+ id_interstitial = (
36
+ "ca-app-pub-3940256099942544/1033173712"
37
+ if page.platform == ft.PagePlatform.ANDROID
38
+ else "ca-app-pub-3940256099942544/4411468910"
39
+ )
40
+
41
+ id_banner = (
42
+ "ca-app-pub-3940256099942544/6300978111"
43
+ if page.platform == ft.PagePlatform.ANDROID
44
+ else "ca-app-pub-3940256099942544/2934735716"
45
+ )
46
+
47
+ def handle_interstitial_close(e):
48
+ nonlocal iad
49
+ print("InterstitialAd closed")
50
+ page.overlay.remove(e.control)
51
+ page.overlay.append(iad := get_new_interstitial_ad())
52
+ page.update()
53
+
54
+ def get_new_interstitial_ad():
55
+ return ads.InterstitialAd(
56
+ unit_id=id_interstitial,
57
+ on_load=lambda e: print("InterstitialAd loaded"),
58
+ on_error=lambda e: print("InterstitialAd error", e.data),
59
+ on_open=lambda e: print("InterstitialAd opened"),
60
+ on_close=handle_interstitial_close,
61
+ on_impression=lambda e: print("InterstitialAd impression"),
62
+ on_click=lambda e: print("InterstitialAd clicked"),
63
+ )
64
+
65
+ def display_new_banner_ad():
66
+ page.add(
67
+ ft.Container(
68
+ content=ads.BannerAd(
69
+ unit_id=id_banner,
70
+ on_click=lambda e: print("BannerAd clicked"),
71
+ on_load=lambda e: print("BannerAd loaded"),
72
+ on_error=lambda e: print("BannerAd error", e.data),
73
+ on_open=lambda e: print("BannerAd opened"),
74
+ on_close=lambda e: print("BannerAd closed"),
75
+ on_impression=lambda e: print("BannerAd impression"),
76
+ on_will_dismiss=lambda e: print("BannerAd will dismiss"),
77
+ ),
78
+ width=320,
79
+ height=50,
80
+ bgcolor=ft.colors.TRANSPARENT,
81
+ )
82
+ )
83
+
84
+ page.overlay.append(iad := get_new_interstitial_ad())
85
+ page.appbar = ft.AppBar(
86
+ adaptive=True,
87
+ title=ft.Text("Mobile Ads Playground"),
88
+ bgcolor=ft.colors.LIGHT_BLUE_300,
89
+ )
90
+ page.add(
91
+ ft.OutlinedButton("Show InterstitialAd", on_click=lambda e: iad.show()),
92
+ ft.OutlinedButton("Show BannerAd", on_click=lambda e: display_new_banner_ad()),
93
+ )
94
+
95
+
96
+ ft.app(main)
97
+ ```
@@ -0,0 +1,83 @@
1
+ # Ads controls for Flet
2
+
3
+ `BannerAd` and `InterstitialAd` controls for Flet.
4
+
5
+ ## Usage
6
+
7
+ Add `flet-ads` as dependency (`pyproject.toml` or `requirements.txt`) to your Flet project.
8
+
9
+ ## Example
10
+
11
+ ```py
12
+
13
+ import flet as ft
14
+
15
+ import flet_ads as ads
16
+
17
+
18
+ def main(page: ft.Page):
19
+ page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
20
+
21
+ id_interstitial = (
22
+ "ca-app-pub-3940256099942544/1033173712"
23
+ if page.platform == ft.PagePlatform.ANDROID
24
+ else "ca-app-pub-3940256099942544/4411468910"
25
+ )
26
+
27
+ id_banner = (
28
+ "ca-app-pub-3940256099942544/6300978111"
29
+ if page.platform == ft.PagePlatform.ANDROID
30
+ else "ca-app-pub-3940256099942544/2934735716"
31
+ )
32
+
33
+ def handle_interstitial_close(e):
34
+ nonlocal iad
35
+ print("InterstitialAd closed")
36
+ page.overlay.remove(e.control)
37
+ page.overlay.append(iad := get_new_interstitial_ad())
38
+ page.update()
39
+
40
+ def get_new_interstitial_ad():
41
+ return ads.InterstitialAd(
42
+ unit_id=id_interstitial,
43
+ on_load=lambda e: print("InterstitialAd loaded"),
44
+ on_error=lambda e: print("InterstitialAd error", e.data),
45
+ on_open=lambda e: print("InterstitialAd opened"),
46
+ on_close=handle_interstitial_close,
47
+ on_impression=lambda e: print("InterstitialAd impression"),
48
+ on_click=lambda e: print("InterstitialAd clicked"),
49
+ )
50
+
51
+ def display_new_banner_ad():
52
+ page.add(
53
+ ft.Container(
54
+ content=ads.BannerAd(
55
+ unit_id=id_banner,
56
+ on_click=lambda e: print("BannerAd clicked"),
57
+ on_load=lambda e: print("BannerAd loaded"),
58
+ on_error=lambda e: print("BannerAd error", e.data),
59
+ on_open=lambda e: print("BannerAd opened"),
60
+ on_close=lambda e: print("BannerAd closed"),
61
+ on_impression=lambda e: print("BannerAd impression"),
62
+ on_will_dismiss=lambda e: print("BannerAd will dismiss"),
63
+ ),
64
+ width=320,
65
+ height=50,
66
+ bgcolor=ft.colors.TRANSPARENT,
67
+ )
68
+ )
69
+
70
+ page.overlay.append(iad := get_new_interstitial_ad())
71
+ page.appbar = ft.AppBar(
72
+ adaptive=True,
73
+ title=ft.Text("Mobile Ads Playground"),
74
+ bgcolor=ft.colors.LIGHT_BLUE_300,
75
+ )
76
+ page.add(
77
+ ft.OutlinedButton("Show InterstitialAd", on_click=lambda e: iad.show()),
78
+ ft.OutlinedButton("Show BannerAd", on_click=lambda e: display_new_banner_ad()),
79
+ )
80
+
81
+
82
+ ft.app(main)
83
+ ```
@@ -0,0 +1,36 @@
1
+ [project]
2
+ name = "flet-ads"
3
+ version = "0.1.0.dev2"
4
+ description = "Ads controls for Flet"
5
+ readme = "README.md"
6
+ authors = [
7
+ { name = "Flet contributors", email = "hello@flet.dev" }
8
+ ]
9
+ classifiers = [
10
+ "License :: OSI Approved :: Apache Software License",
11
+ ]
12
+ requires-python = ">=3.8"
13
+ dependencies = [
14
+ "flet>=0.25.2",
15
+ ]
16
+
17
+ [project.urls]
18
+ Homepage = "https://flet.dev"
19
+ Documentation = "https://flet.dev/docs/controls/ads"
20
+ Repository = "https://github.com/flet-dev/flet-ads"
21
+ Issues = "https://github.com/flet-dev/flet-ads/issues"
22
+
23
+ [tool.setuptools.package-data]
24
+ "flutter.flet_ads" = ["**/*"]
25
+
26
+ [tool.uv]
27
+ dev-dependencies = [
28
+ "flet[all]>=0.25.2",
29
+ ]
30
+
31
+ [tool.setuptools]
32
+ license-files = []
33
+
34
+ [build-system]
35
+ requires = ["setuptools"]
36
+ build-backend = "setuptools.build_meta"
@@ -0,0 +1,4 @@
1
+ [egg_info]
2
+ tag_build =
3
+ tag_date = 0
4
+
@@ -0,0 +1,10 @@
1
+ from flet_ads.banner import BannerAd
2
+ from flet_ads.interstitial import InterstitialAd
3
+
4
+ # from flet_ads.native import (
5
+ # NativeAd,
6
+ # NativeAdTemplateStyle,
7
+ # NativeAdTemplateTextStyle,
8
+ # NativeAdTemplateType,
9
+ # NativeTemplateFontStyle,
10
+ # )
@@ -0,0 +1,110 @@
1
+ from typing import Any, Optional, Union
2
+
3
+ from flet.core.animation import AnimationValue
4
+ from flet.core.control import OptionalNumber
5
+ from flet.core.ref import Ref
6
+ from flet.core.types import (
7
+ OffsetValue,
8
+ OptionalControlEventCallable,
9
+ ResponsiveNumber,
10
+ RotateValue,
11
+ ScaleValue,
12
+ )
13
+
14
+ from flet_ads.base_ad import BaseAd
15
+
16
+
17
+ class BannerAd(BaseAd):
18
+ """
19
+ Displays a banner ad.
20
+
21
+ -----
22
+
23
+ Online docs: https://flet.dev/docs/controls/bannerad
24
+ """
25
+
26
+ def __init__(
27
+ self,
28
+ unit_id: str,
29
+ on_load: OptionalControlEventCallable = None,
30
+ on_error: OptionalControlEventCallable = None,
31
+ on_open: OptionalControlEventCallable = None,
32
+ on_close: OptionalControlEventCallable = None,
33
+ on_impression: OptionalControlEventCallable = None,
34
+ on_click: OptionalControlEventCallable = None,
35
+ on_will_dismiss: OptionalControlEventCallable = None,
36
+ #
37
+ # ConstrainedControl
38
+ #
39
+ ref: Optional[Ref] = None,
40
+ key: Optional[str] = None,
41
+ width: OptionalNumber = None,
42
+ height: OptionalNumber = None,
43
+ left: OptionalNumber = None,
44
+ top: OptionalNumber = None,
45
+ right: OptionalNumber = None,
46
+ bottom: OptionalNumber = None,
47
+ expand: Union[None, bool, int] = None,
48
+ expand_loose: Optional[bool] = None,
49
+ col: Optional[ResponsiveNumber] = None,
50
+ opacity: OptionalNumber = None,
51
+ rotate: RotateValue = None,
52
+ scale: ScaleValue = None,
53
+ offset: OffsetValue = None,
54
+ aspect_ratio: OptionalNumber = None,
55
+ animate_opacity: AnimationValue = None,
56
+ animate_size: AnimationValue = None,
57
+ animate_position: AnimationValue = None,
58
+ animate_rotation: AnimationValue = None,
59
+ animate_scale: AnimationValue = None,
60
+ animate_offset: AnimationValue = None,
61
+ on_animation_end: OptionalControlEventCallable = None,
62
+ tooltip: Optional[str] = None,
63
+ visible: Optional[bool] = None,
64
+ disabled: Optional[bool] = None,
65
+ data: Any = None,
66
+ ):
67
+ BaseAd.__init__(
68
+ self,
69
+ unit_id=unit_id,
70
+ on_load=on_load,
71
+ on_error=on_error,
72
+ on_open=on_open,
73
+ on_close=on_close,
74
+ on_impression=on_impression,
75
+ on_click=on_click,
76
+ on_will_dismiss=on_will_dismiss,
77
+ #
78
+ # ConstrainedControl
79
+ #
80
+ ref=ref,
81
+ key=key,
82
+ width=width,
83
+ height=height,
84
+ left=left,
85
+ top=top,
86
+ right=right,
87
+ bottom=bottom,
88
+ expand=expand,
89
+ expand_loose=expand_loose,
90
+ col=col,
91
+ opacity=opacity,
92
+ rotate=rotate,
93
+ scale=scale,
94
+ offset=offset,
95
+ aspect_ratio=aspect_ratio,
96
+ animate_opacity=animate_opacity,
97
+ animate_size=animate_size,
98
+ animate_position=animate_position,
99
+ animate_rotation=animate_rotation,
100
+ animate_scale=animate_scale,
101
+ animate_offset=animate_offset,
102
+ on_animation_end=on_animation_end,
103
+ tooltip=tooltip,
104
+ visible=visible,
105
+ disabled=disabled,
106
+ data=data,
107
+ )
108
+
109
+ def _get_control_name(self):
110
+ return "banner_ad"
@@ -0,0 +1,174 @@
1
+ from typing import Any, Optional, Union
2
+
3
+ from flet.core.animation import AnimationValue
4
+ from flet.core.constrained_control import ConstrainedControl
5
+ from flet.core.control import OptionalNumber
6
+ from flet.core.ref import Ref
7
+ from flet.core.types import (
8
+ OffsetValue,
9
+ OptionalControlEventCallable,
10
+ PagePlatform,
11
+ ResponsiveNumber,
12
+ RotateValue,
13
+ ScaleValue,
14
+ )
15
+
16
+
17
+ class BaseAd(ConstrainedControl):
18
+ def __init__(
19
+ self,
20
+ unit_id: str,
21
+ on_load: OptionalControlEventCallable = None,
22
+ on_error: OptionalControlEventCallable = None,
23
+ on_open: OptionalControlEventCallable = None,
24
+ on_close: OptionalControlEventCallable = None,
25
+ on_impression: OptionalControlEventCallable = None,
26
+ on_click: OptionalControlEventCallable = None,
27
+ on_will_dismiss: OptionalControlEventCallable = None,
28
+ #
29
+ # ConstrainedControl
30
+ #
31
+ ref: Optional[Ref] = None,
32
+ key: Optional[str] = None,
33
+ width: OptionalNumber = None,
34
+ height: OptionalNumber = None,
35
+ left: OptionalNumber = None,
36
+ top: OptionalNumber = None,
37
+ right: OptionalNumber = None,
38
+ bottom: OptionalNumber = None,
39
+ expand: Union[None, bool, int] = None,
40
+ expand_loose: Optional[bool] = None,
41
+ col: Optional[ResponsiveNumber] = None,
42
+ opacity: OptionalNumber = None,
43
+ rotate: RotateValue = None,
44
+ scale: ScaleValue = None,
45
+ offset: OffsetValue = None,
46
+ aspect_ratio: OptionalNumber = None,
47
+ animate_opacity: AnimationValue = None,
48
+ animate_size: AnimationValue = None,
49
+ animate_position: AnimationValue = None,
50
+ animate_rotation: AnimationValue = None,
51
+ animate_scale: AnimationValue = None,
52
+ animate_offset: AnimationValue = None,
53
+ on_animation_end: OptionalControlEventCallable = None,
54
+ tooltip: Optional[str] = None,
55
+ visible: Optional[bool] = None,
56
+ disabled: Optional[bool] = None,
57
+ data: Any = None,
58
+ ):
59
+ ConstrainedControl.__init__(
60
+ self,
61
+ ref=ref,
62
+ key=key,
63
+ width=width,
64
+ height=height,
65
+ left=left,
66
+ top=top,
67
+ right=right,
68
+ bottom=bottom,
69
+ expand=expand,
70
+ expand_loose=expand_loose,
71
+ col=col,
72
+ opacity=opacity,
73
+ rotate=rotate,
74
+ scale=scale,
75
+ offset=offset,
76
+ aspect_ratio=aspect_ratio,
77
+ animate_opacity=animate_opacity,
78
+ animate_size=animate_size,
79
+ animate_position=animate_position,
80
+ animate_rotation=animate_rotation,
81
+ animate_scale=animate_scale,
82
+ animate_offset=animate_offset,
83
+ on_animation_end=on_animation_end,
84
+ tooltip=tooltip,
85
+ visible=visible,
86
+ disabled=disabled,
87
+ data=data,
88
+ )
89
+
90
+ self.on_load = on_load
91
+ self.on_error = on_error
92
+ self.on_open = on_open
93
+ self.on_close = on_close
94
+ self.on_impression = on_impression
95
+ self.on_click = on_click
96
+ self.on_will_dismiss = on_will_dismiss
97
+ self.unit_id = unit_id
98
+
99
+ def before_update(self):
100
+ assert self.page.platform in [
101
+ PagePlatform.ANDROID,
102
+ PagePlatform.IOS,
103
+ ], f"{self.__class__.__name__} is only supported on Mobile (Android and iOS). "
104
+
105
+ @property
106
+ def unit_id(self) -> str:
107
+ return self._get_attr("unitId")
108
+
109
+ @unit_id.setter
110
+ def unit_id(self, value: str):
111
+ self._set_attr("unitId", value)
112
+
113
+ # on_load
114
+ @property
115
+ def on_load(self):
116
+ return self._get_event_handler("load")
117
+
118
+ @on_load.setter
119
+ def on_load(self, handler):
120
+ self._add_event_handler("load", handler)
121
+
122
+ # on_error
123
+ @property
124
+ def on_error(self):
125
+ return self._get_event_handler("error")
126
+
127
+ @on_error.setter
128
+ def on_error(self, handler):
129
+ self._add_event_handler("error", handler)
130
+
131
+ # on_open
132
+ @property
133
+ def on_open(self):
134
+ return self._get_event_handler("open")
135
+
136
+ @on_open.setter
137
+ def on_open(self, handler):
138
+ self._add_event_handler("open", handler)
139
+
140
+ # on_close
141
+ @property
142
+ def on_close(self):
143
+ return self._get_event_handler("close")
144
+
145
+ @on_close.setter
146
+ def on_close(self, handler):
147
+ self._add_event_handler("close", handler)
148
+
149
+ # on_click
150
+ @property
151
+ def on_click(self):
152
+ return self._get_event_handler("click")
153
+
154
+ @on_click.setter
155
+ def on_click(self, handler):
156
+ self._add_event_handler("click", handler)
157
+
158
+ # on_impression
159
+ @property
160
+ def on_impression(self):
161
+ return self._get_event_handler("impression")
162
+
163
+ @on_impression.setter
164
+ def on_impression(self, handler):
165
+ self._add_event_handler("impression", handler)
166
+
167
+ # on_will_dismiss
168
+ @property
169
+ def on_will_dismiss(self):
170
+ return self._get_event_handler("willDismiss")
171
+
172
+ @on_will_dismiss.setter
173
+ def on_will_dismiss(self, handler):
174
+ self._add_event_handler("willDismiss", handler)
@@ -0,0 +1,111 @@
1
+ from typing import Any, Optional, Union
2
+
3
+ from flet.core.animation import AnimationValue
4
+ from flet.core.control import OptionalNumber
5
+ from flet.core.ref import Ref
6
+ from flet.core.types import (
7
+ OffsetValue,
8
+ OptionalControlEventCallable,
9
+ ResponsiveNumber,
10
+ RotateValue,
11
+ ScaleValue,
12
+ )
13
+
14
+ from flet_ads.base_ad import BaseAd
15
+
16
+
17
+ class InterstitialAd(BaseAd):
18
+ """
19
+ Displays a full screen interstitial ad.
20
+
21
+ -----
22
+
23
+ Online docs: https://flet.dev/docs/controls/interstitialad
24
+ """
25
+
26
+ def __init__(
27
+ self,
28
+ unit_id: str,
29
+ on_load: OptionalControlEventCallable = None,
30
+ on_error: OptionalControlEventCallable = None,
31
+ on_open: OptionalControlEventCallable = None,
32
+ on_close: OptionalControlEventCallable = None,
33
+ on_impression: OptionalControlEventCallable = None,
34
+ on_click: OptionalControlEventCallable = None,
35
+ #
36
+ # ConstrainedControl
37
+ #
38
+ ref: Optional[Ref] = None,
39
+ key: Optional[str] = None,
40
+ width: OptionalNumber = None,
41
+ height: OptionalNumber = None,
42
+ left: OptionalNumber = None,
43
+ top: OptionalNumber = None,
44
+ right: OptionalNumber = None,
45
+ bottom: OptionalNumber = None,
46
+ expand: Union[None, bool, int] = None,
47
+ expand_loose: Optional[bool] = None,
48
+ col: Optional[ResponsiveNumber] = None,
49
+ opacity: OptionalNumber = None,
50
+ rotate: RotateValue = None,
51
+ scale: ScaleValue = None,
52
+ offset: OffsetValue = None,
53
+ aspect_ratio: OptionalNumber = None,
54
+ animate_opacity: AnimationValue = None,
55
+ animate_size: AnimationValue = None,
56
+ animate_position: AnimationValue = None,
57
+ animate_rotation: AnimationValue = None,
58
+ animate_scale: AnimationValue = None,
59
+ animate_offset: AnimationValue = None,
60
+ on_animation_end: OptionalControlEventCallable = None,
61
+ tooltip: Optional[str] = None,
62
+ visible: Optional[bool] = None,
63
+ disabled: Optional[bool] = None,
64
+ data: Any = None,
65
+ ):
66
+ BaseAd.__init__(
67
+ self,
68
+ unit_id=unit_id,
69
+ on_load=on_load,
70
+ on_error=on_error,
71
+ on_open=on_open,
72
+ on_close=on_close,
73
+ on_impression=on_impression,
74
+ on_click=on_click,
75
+ #
76
+ # ConstrainedControl
77
+ #
78
+ ref=ref,
79
+ key=key,
80
+ width=width,
81
+ height=height,
82
+ left=left,
83
+ top=top,
84
+ right=right,
85
+ bottom=bottom,
86
+ expand=expand,
87
+ expand_loose=expand_loose,
88
+ col=col,
89
+ opacity=opacity,
90
+ rotate=rotate,
91
+ scale=scale,
92
+ offset=offset,
93
+ aspect_ratio=aspect_ratio,
94
+ animate_opacity=animate_opacity,
95
+ animate_size=animate_size,
96
+ animate_position=animate_position,
97
+ animate_rotation=animate_rotation,
98
+ animate_scale=animate_scale,
99
+ animate_offset=animate_offset,
100
+ on_animation_end=on_animation_end,
101
+ tooltip=tooltip,
102
+ visible=visible,
103
+ disabled=disabled,
104
+ data=data,
105
+ )
106
+
107
+ def _get_control_name(self):
108
+ return "interstitial_ad"
109
+
110
+ def show(self):
111
+ self.invoke_method("show")