+5 votes

I am trying to show a rewarded video in my mobile game but it seems like I can't load the admob. I basically coppied the code from the Shin-Nil admob for Godot 3 example and made some alterations (link below)

https://github.com/kloder-games/godot-admob/tree/master/examples/godot-3

The example project already works fine on my device, so I think it must be a problem in my project.

var admob = null
var isReal = false
var isTop = true
var adBannerId = "ca-app-pub-3940256099942544/6300978111" # test id
var adInterstitialId = "ca-app-pub-3940256099942544/1033173712" 
var adRewardedId = "ca-app-pub-3940256099942544/8691691433" 
var debug = null
var isbieunguloaded = false
var istrunggianloaded = false

func _ready():
    if(Engine.has_singleton("AdMob")):
        admob = Engine.get_singleton("AdMob")
        admob.init(isReal, get_instance_id())
        loadBanner()
        loadInterstitial()
        loadRewardedVideo()
    else:
        print("No admob singleton")

<Some code not relevant do ads>

# Loaders
func loadRewardedVideo():
    if admob != null:
        admob.loadRewardedVideo(adRewardedId)

# Events

func _on_BtnRewardedVideo_pressed():
    if admob != null:
        print("admob != null: showing video")
        admob.showRewardedVideo()
    print("null admob")

func _on_admob_network_error():
    print("Network Error")
    if(Engine.has_singleton("AdMob")):
        admob = Engine.get_singleton("AdMob")
        admob.init(isReal, get_instance_id())
        loadBanner()


func _on_rewarded_video_ad_loaded():
    print("Rewarded loaded success")
    #get_node("CanvasLayer/BtnRewardedVideo").set_disabled(false)

func _on_rewarded_video_ad_closed():
    print("Rewarded closed")
    #get_node("CanvasLayer/BtnRewardedVideo").set_disabled(true)
    loadRewardedVideo()

func _on_rewarded(currency, amount):
    print("Reward: " + currency + ", " + str(amount))
    #get_node("CanvasLayer/LblRewarded").set_text("Reward: " + currency + ", " + str(amount))


func _on_get_magnets_released():
    _on_BtnRewardedVideo_pressed()

When I run that project on my device, it Outputs "No admob singleton", so I can't initiate the admob variable (look at the if-else loop on the _ready function). Am I forgetting to do something.

I have spotted another problem: The projects settings for the example project that is working and my project are different, as seen in the image below. The android menu is missing. I am pretty sure this is causing the problem, but I don't know how to solve it.
enter image description here

I am sorry for any spelling errors, English is not my main language.

asked Dec 26, 2018 in Engine by Jonas Marma (19 points)

I can't help with your question but just wanted to say your English is really good, no need to apologise for it :)

Oh! Thank you!

Which version of godot are u using

It is Godot 3.0.6

2 Answers

0 votes

You must add the admob source code under the Godot Engine's modules directory, and compile it, and also compile the export template. Hope to help you!

answered Jan 3, 2019 by att (35 points)

can you explain in details? how n where i can find modules directory? i'm using mac version of godot

0 votes
answered Jul 23, 2019 by XxcringekidxX (27 points)
Welcome to Godot Engine Q&A, where you can ask questions and receive answers from other members of the community.

Please make sure to read How to use this Q&A? before posting your first questions.