KivMob | Multiple Banners for multiple screens or 1 Banner for multiple screens?

73 views
Skip to first unread message

Felipe Viera

unread,
Apr 3, 2020, 11:20:01 AM4/3/20
to Kivy users support
Olá!

Fiz um app simples com Kivy e KivMob, ele tem 2 screens e eu quero mostrar um Banner para cada Screen, mas não sei qual forma esta certa...

main.py:

from kivymd.app import MDApp
from kivy.uix.screenmanager import Screen
from kivy.lang.builder import Builder
from kivmob import KivMob


KV = """
ScreenManager
Screen
name: 'screen'
Button
text: 'Open Screen1'
size_hint: 0.3, 0.1
pos_hint: {'center_x':.500, 'center_y':.600}
on_release: app.root.current='myscreen1'

Button
text: 'Open Screen2'
size_hint: 0.3, 0.1
pos_hint: {'center_x':.500, 'center_y':.400}
on_release: app.root.current='myscreen2'


MyScreen1
name: 'myscreen1'

MyScreen2
name: 'myscreen2'
"""


class MyScreen1(Screen):
def on_pre_enter(self):
MDApp.get_running_app().SHOW_BANNER()


class MyScreen2(Screen):
def on_pre_enter(self):
MDApp.get_running_app().SHOW_BANNER()



class Android(MDApp):
def build(self):
APPLICATION_ID = "ca-app-pub-3940256099942544~3347511713"
self.ads = KivMob(APPLICATION_ID)
return Builder.load_string(KV)

def SHOW_BANNER(self):
BANNER_ID = "ca-app-pub-3940256099942544/6300978111"
self.ads.new_banner(BANNER_ID, top_pos=False)
self.ads.request_banner()
self.ads.show_banner()


Android().run()

1) Eu posso criar um banner dentro de uma função da classe (App) e chama-lo sempre que eu entrar na Screen1 e Screen2 ??


Ou eu devo criar um Banner diferente para cada Screen? exemplo:

from kivymd.app import MDApp
from kivy.uix.screenmanager import Screen
from kivy.lang.builder import Builder
from kivmob import KivMob


KV = """
ScreenManager
Screen
name: 'screen'
Button
text: 'Open Screen1'
size_hint: 0.3, 0.1
pos_hint: {'center_x':.500, 'center_y':.600}
on_release: app.root.current='myscreen1'

Button
text: 'Open Screen2'
size_hint: 0.3, 0.1
pos_hint: {'center_x':.500, 'center_y':.400}
on_release: app.root.current='myscreen2'


MyScreen1
name: 'myscreen1'

MyScreen2
name: 'myscreen2'
"""


class MyScreen1(Screen):
def on_pre_enter(self):
MDApp.get_running_app().__SHOW_BANNER_1__()


class MyScreen2(Screen):
def on_pre_enter(self):
MDApp.get_running_app().__SHOW_BANNER_2__()



class Android(MDApp):
def build(self):
APPLICATION_ID = "ca-app-pub-3940256099942544~3347511713"
self.ads = KivMob(APPLICATION_ID)
return Builder.load_string(KV)


def __SHOW_BANNER_1__(self):
BANNER_ID = "ca-app-pub-3940256099942544/6300978111"
self.ads.new_banner(BANNER_ID, top_pos=False)
self.ads.request_banner()
self.ads.show_banner()

def __SHOW_BANNER_2__(self):
BANNER_ID = "ca-app-pub-3940256099942544/6300978111"
self.ads.new_banner(BANNER_ID, top_pos=False)
self.ads.request_banner()
self.ads.show_banner()


Android().run()

Eu pessoalmente acho que devo criar um Banner diferente para cada Screen que tiver no meu app, para o usuário não ver apenas um tipo de Banner,
ou posso estar completamente errado!

Por favor me ajude, eu não sei qual método eu uso...                       Obrigado :D

Elliot Garbus

unread,
Apr 3, 2020, 11:42:15 AM4/3/20
to kivy-...@googlegroups.com

I would put the Banner code in app, or create a new class that has the banner, and use that to put in on each screen.

Repeating virtually the same code in multiple places is difficult to maintain.   You will have the privilege of fixing every bug multiple times.

 

A friend of mine likes to say, I”f you have to type the same code three times, you have done it wrong twice.”

--
You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/kivy-users/3e61d933-4fe9-4f63-bbbb-e1810489d284%40googlegroups.com.

 

Felipe Viera

unread,
Apr 3, 2020, 1:16:37 PM4/3/20
to Kivy users support
Obrigado Elliot Garbus! Criei uma função na classe app, e chamo ela quando entro numa tela:
def __SHOW_BANNER__(self):
    BANNER_ID = "ca-app-pub-3940256099942544/6300978111"
self.ads.new_banner(BANNER_ID, top_pos=False)
self.ads.request_banner()
self.ads.show_banner()


 Mas agora enfrento mais dúvidas, se você puder me responder eu agradeço muito :)

1) O que é: TEST_DEVICE_ID = "ca-app-pub-" > self.ads.add_test_device(TEST_DEVICE_ID) ? Eu preciso disso?

2) Eu quero mostrar um anúncio intersticial quando inicio o aplicativo, está correto?:
def on_start(self):
INTERSTITIAL_ID = "ca-app-pub-1234"
self.ads.new_interstitial(INTERSTITIAL_ID)
self.ads.request_interstitial()
self.ads.is_interstitial_loaded()
self.ads.show_interstitial()

3) Eu preciso usar o android.ndk = 17b para o KivMob funcionar? Ou posso usar o atual (NDK-r21)?

Elliot Garbus

unread,
Apr 3, 2020, 3:39:43 PM4/3/20
to kivy-...@googlegroups.com

1) What is: TEST_DEVICE_ID = "ca-app-pub-"> self.ads.add_test_device (TEST_DEVICE_ID)? I need it?

2) I want to show an interstitial ad when I start the app, is that correct ?:

3) Do I need to use android.ndk = 17b for KivMob to work? Or can I use the current one (NDK-r21)?

 

I have not used KivMob, perhaps another user can answer.

 

 

 

From: Felipe Viera
Sent: Friday, April 3, 2020 10:17 AM
To: Kivy users support

--

You received this message because you are subscribed to the Google Groups "Kivy users support" group.
To unsubscribe from this group and stop receiving emails from it, send an email to kivy-users+...@googlegroups.com.

Reply all
Reply to author
Forward
0 new messages