Last active
July 18, 2020 06:41
-
-
Save ricardoalcantara/c238cd07286b33d6ffbcecc87adb3684 to your computer and use it in GitHub Desktop.
Interface that depends on Admob.gd
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
using Godot; | |
namespace AdmobLib | |
{ | |
public class AdmobInterface : Node | |
{ | |
private static AdmobSystem _instance; | |
public static AdmobSystem Instance => _instance; | |
[Signal] public delegate void BannerLoaded(); | |
[Signal] public delegate void Banner_failedToLoad(int error_code); | |
[Signal] public delegate void InterstitialFailedToLoad(int error_code); | |
[Signal] public delegate void InterstitialLoaded(); | |
[Signal] public delegate void InterstitialClosed(); | |
[Signal] public delegate void Rewarded_video_loaded(); | |
[Signal] public delegate void RewardedVideo_closed(); | |
[Signal] public delegate void Rewarded(string currency, int ammount); | |
[Signal] public delegate void RewardedVideoLeftApplication(); | |
[Signal] public delegate void RewardedVideoFailedToLoad(int error_code); | |
[Signal] public delegate void RewardedVideoOpened(); | |
[Signal] public delegate void RewardedVideoStarted(); | |
// If true use your real ad, if false use test ads. Make sure to only set it to true with your published apk, otherwise you can be banned by Google | |
private bool BannerOnTop { get => (bool)_admob.Get("banner_on_top"); set => _admob.Set("banner_on_top", value); } | |
private string BannerId { get => (string)_admob.Get("banner_id"); set => _admob.Set("banner_id", value); } | |
private string InterstitialId { get => (string)_admob.Get("interstitial_id"); set => _admob.Set("interstitial_id", value); } | |
private string RewardedId { get => (string)_admob.Get("rewarded_id"); set => _admob.Set("rewarded_id", value); } | |
// If true, set the ads to children directed. If true, max_ad_content_rate will be ignored (your max_ad_content_rate would can not be other than "G") | |
private bool ChildDirected { get => (bool)_admob.Get("child_directed"); set => _admob.Set("child_directed", value); } | |
// If ads should be personalized. In the European Economic Area, GDPR requires ad personalization to be opt-in. | |
private bool IsPersonalized { get => (bool)_admob.Get("is_personalized"); set => _admob.Set("is_personalized", value); } | |
// Its value must be "G", "PG", "T" or "MA". If the rating of your app in Play Console and your config of max_ad_content_rate in AdMob are not matched, your app can be banned by Google | |
private string MaxAdContentRate { get => (string)_admob.Get("max_ad_content_rate"); set => _admob.Set("max_ad_content_rate", value); } | |
private Node _admob = null; | |
public override void _Ready() | |
{ | |
_instance = this; | |
_admob = GetNode("/root/Admob"); | |
// _admob.Set("banner_on_top", banner_on_top); | |
// _admob.Set("banner_id", banner_id); | |
// _admob.Set("interstitial_id", interstitial_id); | |
// _admob.Set("rewarded_id", rewarded_id); | |
// _admob.Set("child_directed", child_directed); | |
// _admob.Set("is_personalized", is_personalized); | |
// _admob.Set("max_ad_content_rate", max_ad_content_rate); | |
BannerOnTop = true; | |
BannerId = "ca-app-pub-3940256099942544/6300978111"; | |
InterstitialId = "ca-app-pub-3940256099942544/1033173712"; | |
RewardedId = "ca-app-pub-3940256099942544/1033173712"; | |
ChildDirected = false; | |
IsPersonalized = true; | |
MaxAdContentRate = "G"; | |
_admob.Connect("banner_loaded", this, nameof(banner_loaded)); | |
_admob.Connect("banner_failed_to_load", this, nameof(banner_failed_to_load)); | |
_admob.Connect("interstitial_failed_to_load", this, nameof(interstitial_failed_to_load)); | |
_admob.Connect("interstitial_loaded", this, nameof(interstitial_loaded)); | |
_admob.Connect("interstitial_closed", this, nameof(interstitial_closed)); | |
_admob.Connect("rewarded_video_loaded", this, nameof(rewarded_video_loaded)); | |
_admob.Connect("rewarded_video_closed", this, nameof(rewarded_video_closed)); | |
_admob.Connect("rewarded", this, nameof(rewarded)); | |
_admob.Connect("rewarded_video_left_application", this, nameof(rewarded_video_left_application)); | |
_admob.Connect("rewarded_video_failed_to_load", this, nameof(rewarded_video_failed_to_load)); | |
_admob.Connect("rewarded_video_opened", this, nameof(rewarded_video_opened)); | |
_admob.Connect("rewarded_video_started", this, nameof(rewarded_video_started)); | |
_admob.Call("init"); | |
} | |
public void LoadBanner() | |
{ | |
_admob.Call("load_banner"); | |
} | |
public void LoadBanner(bool onTop) | |
{ | |
BannerOnTop = onTop; | |
_admob.Call("load_banner"); | |
} | |
public void LoadInterstitial() | |
{ | |
_admob.Call("load_interstitial"); | |
} | |
public bool IsInterstitialLoaded() | |
{ | |
return (bool)_admob.Call("is_interstitial_loaded"); | |
} | |
public void LoadRewardedVideo() | |
{ | |
_admob.Call("load_rewarded_video"); | |
} | |
public bool IsRewardedVideoLoaded() | |
{ | |
return (bool)_admob.Call("is_rewarded_video_loaded"); | |
} | |
// show / hide | |
public void ShowBanner() | |
{ | |
_admob.Call("show_banner"); | |
} | |
public void HideBanner() | |
{ | |
_admob.Call("hide_banner"); | |
} | |
public void ShowInterstitial() | |
{ | |
_admob.Call("show_interstitial"); | |
} | |
public void ShowRewardedVideo() | |
{ | |
_admob.Call("show_rewarded_video"); | |
} | |
private void banner_loaded() => EmitSignal(nameof(BannerLoaded)); | |
private void banner_failed_to_load(int error_code) => EmitSignal(nameof(Banner_failedToLoad), error_code); | |
private void interstitial_failed_to_load(int error_code) => EmitSignal(nameof(InterstitialFailedToLoad), error_code); | |
private void interstitial_loaded() => EmitSignal(nameof(InterstitialLoaded)); | |
private void interstitial_closed() => EmitSignal(nameof(InterstitialClosed)); | |
private void rewarded_video_loaded() => EmitSignal(nameof(Rewarded_video_loaded)); | |
private void rewarded_video_closed() => EmitSignal(nameof(RewardedVideo_closed)); | |
private void rewarded(string currency, int ammount) => EmitSignal(nameof(Rewarded), currency, ammount); | |
private void rewarded_video_left_application() => EmitSignal(nameof(RewardedVideoLeftApplication)); | |
private void rewarded_video_failed_to_load(int error_code) => EmitSignal(nameof(RewardedVideoFailedToLoad), error_code); | |
private void rewarded_video_opened() => EmitSignal(nameof(RewardedVideoOpened)); | |
private void rewarded_video_started() => EmitSignal(nameof(RewardedVideoStarted)); | |
} | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment