Open cagbal opened 2 years ago
Sure, we could look into that when mobile version of Flet is ready!
admob and adsense
give me code for add ads in flet app
This feature is not yet available, but is on the roadmap.
+1
+1
+1
any update?
@FeodorFitsner any update
@ndonkoHenri any update
Mobile Ads is like 90% done (PR).
Waiting on #3345 (WIP) to finalize as mentioned in https://github.com/flet-dev/flet/pull/3288#issuecomment-2257732918.
Please be patient.
Very Good! I am very happy with this news. Is this remaining 10% too critical? in weeks? months? or more time?
Any update ?
I'll say what the others won't and I mean it with all the love in the world: Hurry up, honey sticks!! We needs this, precious!
Here's some good energy to speed up the process: (∩ᄑ_ᄑ)⊃━☆゚・。・
Install the latest pre and try mobile ads: pip install flet --pre -U
For now, only two types are present: Banner and Interstitial. More types will be coming in the future.
import flet as ft
import flet.ads as ads
def main(page: ft.Page):
page.horizontal_alignment = ft.CrossAxisAlignment.CENTER
id_interstitial = (
"ca-app-pub-3940256099942544/1033173712"
if page.platform == ft.PagePlatform.ANDROID
else "ca-app-pub-3940256099942544/4411468910"
)
id_banner = (
"ca-app-pub-3940256099942544/6300978111"
if page.platform == ft.PagePlatform.ANDROID
else "ca-app-pub-3940256099942544/2934735716"
)
def handle_interstitial_close(e):
nonlocal iad
print("InterstitialAd closed")
page.overlay.remove(e.control)
page.overlay.append(iad := get_new_interstitial_ad())
page.update()
def get_new_interstitial_ad():
return ads.InterstitialAd(
unit_id=id_interstitial,
on_load=lambda e: print("InterstitialAd loaded"),
on_error=lambda e: print("InterstitialAd error", e.data),
on_open=lambda e: print("InterstitialAd opened"),
on_close=handle_interstitial_close,
on_impression=lambda e: print("InterstitialAd impression"),
on_click=lambda e: print("InterstitialAd clicked"),
)
def display_new_banner_ad():
page.add(
ft.Container(
content=ads.BannerAd(
unit_id=id_banner,
on_click=lambda e: print("BannerAd clicked"),
on_load=lambda e: print("BannerAd loaded"),
on_error=lambda e: print("BannerAd error", e.data),
on_open=lambda e: print("BannerAd opened"),
on_close=lambda e: print("BannerAd closed"),
on_impression=lambda e: print("BannerAd impression"),
on_will_dismiss=lambda e: print("BannerAd will dismiss"),
),
width=320,
height=50,
bgcolor=ft.colors.TRANSPARENT,
)
)
page.overlay.append(iad := get_new_interstitial_ad())
page.appbar = ft.AppBar(
adaptive=True,
title=ft.Text("Mobile Ads Playground"),
bgcolor=ft.colors.LIGHT_BLUE_300,
)
page.add(
ft.OutlinedButton("Show InterstitialAd", on_click=lambda e: iad.show()),
ft.OutlinedButton("Show BannerAd", on_click=lambda e: display_new_banner_ad()),
)
ft.app(main)
I am documenting this at the moment, but for those testing it right now, Interstitial ads can only be shown once. That's why in the example above we created new ones each time.
Feel free to ask any questions.
Reopening this issue as there's still some work to do.
Hi Flet team,
This is an extraordinarily beautiful repo for python devs :)
I am just curious do you have any support now or future for Admob?