Skip to content Skip to sidebar Skip to footer

Admob Rewarded Video Ads On KIVY - Java. Android

I'm trying to display google admob rewarded videos on my first game but I can't seem to make it work. This is what I have so far, I don't know Java so this is a very difficult for

Solution 1:

You're thinking in right direction but to make it work you need RewardedVideoAdListener. You can create it using PythonJavaClass and java methods from PyJnius like that:

from jnius import PythonJavaClass, java_method

from kivy.logger import Logger

from functools import partial

class RewardedVideoAdListener(PythonJavaClass):

    __javacontext__ = 'app'
    __javainterfaces__ = ["com.google.android.gms.ads.reward.RewardedVideoAdListener"]

    __INFO = True

    @java_method('()V')
    def onRewardedVideoAdLeftApplication(self):
        if self.__INFO:
            Logger.info("AdMob: onRewardedVideoAdLeftApplication")

    @java_method('()V')
    def onRewardedVideoAdClosed(self):
        if self.__INFO:
            Logger.info("AdMob: onRewardedVideoAdClosed")

    @java_method('(I)V')
    def onRewardedVideoAdFailedToLoad(self, errorCode):
        if self.__INFO:
            Logger.info("AdMob: onRewardedVideoAdFailedToLoad, errorCode is "+str(errorCode))

    @java_method('()V')
    def onRewardedVideoAdLoaded(self):
        if self.__INFO:
            Logger.info("AdMob: onRewardedVideoAdLoaded")

    @java_method('()V')
    def onRewardedVideoAdOpened(self):
        if self.__INFO:
            Logger.info("AdMob: onRewardedVideoAdOpened")

    @java_method('(Lcom/google/android/gms/ads/reward/RewardItem;)V')
    def onRewarded(self, reward):
        if self.__INFO:
            Logger.info("AdMob: onRewarded, type is "+str(reward.getType())+", amount is "+str(reward.getAmount()))

    @java_method('()V')
    def onRewardedVideoStarted(self):
        if self.__INFO:
            Logger.info("AdMob: onRewardedVideoStarted")

Of course, you can add some handlers to this methods, for example:

from kivy.clock import Clock
from functools import partial

@java_method('(Lcom/google/android/gms/ads/reward/RewardItem;)V')
def onRewarded(self, reward):
    if self.__INFO:
        Logger.info("AdMob: onRewarded, type is "+str(reward.getType())+", amount is "+str(reward.getAmount()))
    self.__rewarded = True
    Clock.schedule_once(partial(on_reward, reward.getType(), reward.getAmount()))

And you have to use this listener in your setRewardedVideoAdListener method:

mRewardedVideoAdListener = RewardedVideoAdListener()
mRewardedVideoAd.setRewardedVideoAdListener(mRewardedVideoAdListener)

Post a Comment for "Admob Rewarded Video Ads On KIVY - Java. Android"