【问题标题】:KivMob Rewarded Video Ad listenerKivMob 奖励视频广告监听器
【发布时间】:2020-04-01 15:08:16
【问题描述】:

我正在尝试使用 KivMob 在我的 kivy 应用程序上实施奖励视频广告。 我想通过KivMob库中提供的RewardedListenerInterface来处理奖励视频广告的回调函数。

根据我自己的理解,到目前为止我所做的一切......

Python 代码

class KivMobDemo(MDApp):

def __init__(self,**kwargs):
    self.theme_cls.theme_style = "Dark"
    super().__init__(**kwargs)        

# These are our Admob Ad IDs
APP = "ca-app-pub-XXXXXXXXXX"
BANNER = "ca-app-pub-XXXXXXXXXXXX"
INTERSTITIAL = "ca-app-pub-XXXXXXXXX"
REWARDED_VIDEO = "ca-app-pub-XXXXXXXX"
TEST_DEVICE_ID = "XXXXXXXXXXXXXXXXXXXXXXXX"
Count = NumericProperty(0)  #The Count Variable
show_banner = False
ads = KivMob(APP)
def build(self):
    self.ads.add_test_device(self.TEST_DEVICE_ID)
    self.ads.new_banner(self.BANNER, False)
    self.ads.new_interstitial(self.INTERSTITIAL)
    self.ads.request_banner()
    self.ads.request_interstitial()
    self.ads.set_rewarded_ad_listener(RewardsHandler()) #passed the Rewards class object
    self.ads.load_rewarded_ad(self.REWARDED_VIDEO)
    self.toggled = False
    self.ads.show_banner()
    return KivMobDemoUI()

def toggle_banner(self):
    self.show_banner = not self.show_banner
    if self.show_banner:
        self.ads.show_banner()
     else:
         self.ads.hide_banner()

def load_video(self):
    self.ads.load_rewarded_ad(self.REWARDED_VIDEO)

为重写回调函数创建了一个单独的类

class RewardsHandler(RewardedListenerInterface):

def on_rewarded(self, reward_name, reward_amount):
    KivMobDemo.Count += reward_amount
    print("User rewarded")

def on_rewarded_video_ad_completed(self):
    self.on_rewarded("Reward",1)
    print("Ad Completed Time to give Rewards")

def on_rewarded_video_ad_closed(self):
    KivMobDemo.Count+=0

def on_rewarded_video_ad_left_application(self):
    KivMobDemo.Count = 0

def on_rewarded_video_ad_started(self):
    KivMobDemo().load_video()

def on_rewarded_video_ad_failed_to_load(self, error_code):
    if(error_code == 0):
        print("Something Went Wrong, Please Try Again")
    elif(error_code == 1):
        print("Please Report To the Developer")
    elif(error_code == 2):
        print("Make Sure You Have Internet Access")
    else:
        print("Please Try Later")

基维代码

基本上我是在奖励视频播放后尝试增加计数变量。

            Screen:
                name: 'rewarded'
                BoxLayout:
                    MDLabel:
                        font_style: 'H1'
                        theme_text_color: 'Primary'
                        text: "Counter "+str(app.Count)
                        halign: 'center'
                        pos_hint: {'center_x': 0.5, 'center_y': 0.75}
                MDFloatingActionButton:
                    icon: 'plus'
                    elevation_normal: 2
                    pos_hint: {'center_x': 0.5, 'center_y': 0.25}
                    on_release: 
                        app.ads.show_rewarded_ad()

这段代码似乎很大,但是我添加了很多不相关的代码,因为为了让贡献者更加透明。

提前致谢。

【问题讨论】:

    标签: python admob kivy kivy-language


    【解决方案1】:

    是的,它有效 我在我的代码中修复了一些错误,这是 KivMob Rewarded Video Listener 的正确实现。

    让我来解释一下如何实现回调函数。

    首先创建一个单独的类来处理奖励回调函数,就像我对

    所做的那样

    Rewards_Handler 类并用 RewardedListenerInterface 类继承它。

    为什么我创建另一个类是为了覆盖 KivMob 库的 RewardedListenerInterface 类中预定义的奖励回调函数。

    您可以在 RewardedListenerInterface 类下的 KivMob 库中覆盖总共 8 个函数。

    你可以在这里here找到函数参数和详细信息

    通过定义与 KivMob 库中相同的名称来覆盖这些函数。

    现在最后一步是通过在 set_rewarded_listener(YOUR_REWARDS_CLASS_OBJECT_HERE()) 中传递对象来将该类插入到您的代码中

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-08-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多