unity Google 广告接入 SDK Android

3 篇文章 0 订阅
1 篇文章 0 订阅

Google 广告接入参考
a.地址
GoogleAdMob网址:
https://apps.admob.com/v2/apps/5239834645/overview?utm_source=internal&utm_medium=et&utm_campaign=helpcentrecontextualopt&utm_term=http%3A%2F%2Fgoo.gl%2F6Xkfcf&subid=ww-ww-et-amhelpv4&pli=1

Unity SDK 地址: https://developers.google.cn/admob/unity/quick-start

示例工程地址:
https://github.com/googleads/googleads-mobile-unity/tree/main/samples/HelloWorld
插件下载:如下图

下载之后直接导入,然后需要设置在GoogleAdMob中申请的应用id

b. 插件导入之后unity设置如下:
Assets > Google Mobile Ads > Settings之后出现如下图:

using UnityEngine.Events;
using UnityEngine;
using GoogleMobileAds.Api;
using GoogleMobileAds.Common;
using UnityEngine.UI;
using System;
using System.Collections.Generic;

public class GoogleAdMobSDK : MonoBehaviour
{
    public Text infoText;

    #region

#if UNITY_IPHONE

    /// <summary>
    /// 开屏广告
    /// </summary>
    private readonly string AppOpenAdID = "ca-app-pub-3940256099942544/5662855259";
    /// <summary>
    /// 横幅广告
    /// </summary>
    private readonly string BannerAdID = "ca-app-pub-3940256099942544/2934735716";
    /// <summary>
    /// 插页式广告
    /// </summary>
    private readonly string InterstitialAdID = "ca-app-pub-3940256099942544/4411468910";
    /// <summary>
    /// 激励广告
    /// </summary>
    private readonly string RewardedAdID = "ca-app-pub-3940256099942544/1712485313";
    /// <summary>
    /// 插页式激励广告
    /// </summary>
    private readonly string RewardedInterstitialAdID = "ca-app-pub-3940256099942544/6978759866";
    /// <summary>
    /// 原生广告
    /// </summary>
    private readonly string NativeAdID = "ca-app-pub-3940256099942544/3986624511";

#elif UNITY_ANDROID

    /// <summary>
    /// 开屏广告
    /// </summary>
    private readonly string AppOpenAdID = "ca-app-pub-3940256099942544/3419835294";
    /// <summary>
    /// 横幅广告
    /// </summary>
    private readonly string BannerAdID = "ca-app-pub-3940256099942544/6300978111";
    /// <summary>
    /// 插页式广告
    /// </summary>
    private readonly string InterstitialAdID = "ca-app-pub-3940256099942544/1033173712";
    /// <summary>
    /// 激励广告
    /// </summary>
    private readonly string RewardedAdID = "ca-app-pub-3940256099942544/5224354917";
    /// <summary>
    /// 插页式激励广告
    /// </summary>
    private readonly string RewardedInterstitialAdID = "ca-app-pub-3940256099942544/5354046379";
    /// <summary>
    /// 原生广告
    /// </summary>
    private readonly string NativeAdID = "ca-app-pub-3940256099942544/2247696110";

#endif



    #endregion


    private readonly TimeSpan APPOPEN_TIMEOUT = TimeSpan.FromHours(4);
    private DateTime appOpenExpireTime;
    private AppOpenAd appOpenAd;
    private BannerView bannerView;
    private InterstitialAd interstitialAd;
    private RewardedAd rewardedAd;
    private RewardedInterstitialAd rewardedInterstitialAd;
    private float deltaTime;
    private bool isShowingAppOpenAd;
    public UnityEvent OnAdLoadedEvent;
    public UnityEvent OnAdFailedToLoadEvent;
    public UnityEvent OnAdOpeningEvent;
    public UnityEvent OnAdFailedToShowEvent;
    public UnityEvent OnUserEarnedRewardEvent;
    public UnityEvent OnAdClosedEvent;
    public bool showFpsMeter = true;



    #region UNITY MONOBEHAVIOR METHODS

    public void Start()
    {
        MobileAds.SetiOSAppPauseOnBackground(true);

        List<String> deviceIds = new List<String>() { AdRequest.TestDeviceSimulator };

        // 添加一些测试设备 ID(替换为您自己的设备 ID)。
#if UNITY_IPHONE
        deviceIds.Add("96e23e80653bb28980d3f40beb58915c");
#elif UNITY_ANDROID
        deviceIds.Add("75EF8D155528C04DACBBA6F36F433035");
#endif

        //配置 TagForChildDirectedTreatment 并测试设备 ID。
        RequestConfiguration requestConfiguration =
            new RequestConfiguration.Builder()
            .SetTagForChildDirectedTreatment(TagForChildDirectedTreatment.Unspecified)
            .SetTestDeviceIds(deviceIds).build();
        MobileAds.SetRequestConfiguration(requestConfiguration);

        // 初始化 Google 移动广告 SDK。
        MobileAds.Initialize(HandleInitCompleteAction);

        // 监听应用程序前台/后台事件。
        AppStateEventNotifier.AppStateChanged += OnAppStateChanged;
    }

    private void HandleInitCompleteAction(InitializationStatus initstatus)
    {
        PrintStatus("Initialization complete.");

        // 不能保证调用来自 GoogleMobileAds 的回调
        // 主线程。
        // 在本例中,我们使用 MobileAdsEventExecutor 来安排这些调用
        // 下一个 Update() 循环。
        MobileAdsEventExecutor.ExecuteInUpdate(() =>
        {
            //statusText.text = "Initialization complete.";
            RequestBannerAd();
        });
    }

    private void Update()
    {
        //if (showFpsMeter)
        //{
        //    fpsMeter.gameObject.SetActive(true);
        //    deltaTime += (Time.deltaTime - deltaTime) * 0.1f;
        //    float fps = 1.0f / deltaTime;
        //    fpsMeter.text = string.Format("{0:0.} fps", fps);
        //}
        //else
        //{
        //    fpsMeter.gameObject.SetActive(false);
        //}
    }

    #endregion

    #region HELPER METHODS

    /// <summary>
    /// 创建广告请求
    /// </summary>
    /// <returns></returns>
    private AdRequest CreateAdRequest()
    {
        return new AdRequest.Builder()
            .AddKeyword("unity-admob-sample")
            .Build();
    }

    #endregion

    #region 横幅广告

    /// <summary>
    /// 请求横幅广告
    /// </summary>
    public void RequestBannerAd()
    {
        this.ClearAdUnityAction();
        PrintStatus("请求横幅广告");

        // 这些广告单元配置为始终投放测试广告。
        string adUnitId = this.BannerAdID;
        //#if UNITY_EDITOR
        //        string adUnitId = "unused";
        //#elif UNITY_ANDROID
        //        string adUnitId = "ca-app-pub-3940256099942544/6300978111";
        //#elif UNITY_IPHONE
        //        string adUnitId = "ca-app-pub-3940256099942544/2934735716";
        //#else
        //        string adUnitId = "unexpected_platform";
        //#endif

        // 在重用之前清理横幅
        if (bannerView != null)
        {
            bannerView.Destroy();
        }

        // Create a 320x50 banner at top of the screen
        bannerView = new BannerView(adUnitId, AdSize.SmartBanner, AdPosition.Bottom);

        // 广告加载完成时,系统会执行 OnAdLoaded 事件。
        bannerView.OnAdLoaded += (sender, args) =>
        {
            PrintStatus("横幅广告已加载。");
            OnAdLoadedEvent.Invoke();
        };

        //广告加载失败时,系统会调用 OnAdFailedToLoad 事件。Message 参数描述发生的故障类型。
        bannerView.OnAdFailedToLoad += (sender, args) =>
        {
            PrintStatus("横幅广告无法加载并出现错误:" + args.LoadAdError.GetMessage());
            OnAdFailedToLoadEvent.Invoke();
        };

        //用户点按广告时,系统会调用此方法。如果您使用分析产品包跟踪点击,则此方法很适合记录点击。
        bannerView.OnAdOpening += (sender, args) =>
        {
            PrintStatus("横幅广告打开");
            OnAdOpeningEvent.Invoke();
        };

        //用户查看了广告的目标网址并返回应用时,系统会调用此方法。应用可以使用此方法恢复暂停的活动,或执行任何其他必要的操作,以做好互动准备。
        bannerView.OnAdClosed += (sender, args) =>
        {
            PrintStatus("横幅广告关闭");
            OnAdClosedEvent.Invoke();
        };

        //付费活动
        bannerView.OnPaidEvent += (sender, args) =>
        {
            string msg = string.Format("{0} (currency: {1}, value: {2}",
                                        "横幅广告收到了付费事件。",
                                        args.AdValue.CurrencyCode,
                                        args.AdValue.Value);
            PrintStatus(msg);
        };

        // 加载横幅广告
        bannerView.LoadAd(CreateAdRequest());
    }

    /// <summary>
    /// 销毁横幅广告
    /// </summary>
    public void DestroyBannerAd()
    {
        if (bannerView != null)
        {
            bannerView.Destroy();
        }
    }

    #endregion

    #region 插页式广告

    /// <summary>
    /// 请求和加载插页式广告
    /// </summary>
    public void RequestAndLoadInterstitialAd()
    {
        this.ClearAdUnityAction();
        PrintStatus("请求插页式广告");
        string adUnitId = this.InterstitialAdID;
        //#if UNITY_EDITOR
        //        string adUnitId = "unused";
        //#elif UNITY_ANDROID
        //        string adUnitId = "ca-app-pub-3940256099942544/1033173712";
        //#elif UNITY_IPHONE
        //        string adUnitId = "ca-app-pub-3940256099942544/4411468910";
        //#else
        //        string adUnitId = "unexpected_platform";
        //#endif

        // 使用前清理插页式广告
        if (interstitialAd != null)
        {
            interstitialAd.Destroy();
        }

        interstitialAd = new InterstitialAd(adUnitId);

        // 添加事件处理程序
        //广告加载完成时,系统会执行 OnAdLoaded 事件。
        interstitialAd.OnAdLoaded += (sender, args) =>
        {
            PrintStatus("已加载插页式广告。");
            OnAdLoadedEvent.Invoke();
        };

        //广告加载失败时,系统会调用 OnAdFailedToLoad 事件。Message 参数用于描述发生了何种类型的失败。
        interstitialAd.OnAdFailedToLoad += (sender, args) =>
        {
            PrintStatus("插页式广告未能加载并出现错误: " + args.LoadAdError.GetMessage());
            OnAdFailedToLoadEvent.Invoke();
        };

        //在广告开始展示并铺满设备屏幕时,系统会调用此方法。
        interstitialAd.OnAdOpening += (sender, args) =>
        {
            PrintStatus("插页式广告 打开.");
            OnAdOpeningEvent.Invoke();
        };

        //此方法会在用户点按“关闭”图标或使用“返回”按钮关闭插页式广告时被调用。如果您的应用暂停了音频输出或游戏循环,则非常适合使用此方法恢复这些活动。
        interstitialAd.OnAdClosed += (sender, args) =>
        {
            PrintStatus("插页式广告关闭.");
            OnAdClosedEvent.Invoke();
        };

        //插页式广告记录了一次展示。
        interstitialAd.OnAdDidRecordImpression += (sender, args) =>
        {
            PrintStatus("插页式广告记录了一次展示。");
        };

        //插页式广告未能展示
        interstitialAd.OnAdFailedToShow += (sender, args) =>
        {
            PrintStatus("插页式广告未能展示");
        };

        //付费活动
        interstitialAd.OnPaidEvent += (sender, args) =>
        {
            string msg = string.Format("{0} (currency: {1}, value: {2}",
                                        "插页式广告收到了付费事件。",
                                        args.AdValue.CurrencyCode,
                                        args.AdValue.Value);
            PrintStatus(msg);
        };

        // 加载插页式广告
        interstitialAd.LoadAd(CreateAdRequest());
    }

    /// <summary>
    /// 展示插页式广告
    /// </summary>
    public void ShowInterstitialAd()
    {
        if (interstitialAd != null && interstitialAd.IsLoaded())
        {
            interstitialAd.Show();
        }
        else
        {
            PrintStatus("插页式广告尚未准备就绪。");
        }
    }

    /// <summary>
    /// 销毁插页式广告
    /// </summary>
    public void DestroyInterstitialAd()
    {
        if (interstitialAd != null)
        {
            interstitialAd.Destroy();
        }
    }

    #endregion

    #region 激励广告

    /// <summary>
    /// 请求和加载激励广告
    /// </summary>
    public void RequestAndLoadRewardedAd()
    {
        this.ClearAdUnityAction();

        PrintStatus("请求激励广告");
        string adUnitId = this.RewardedAdID;
        //#if UNITY_EDITOR
        //        string adUnitId = "unused";
        //#elif UNITY_ANDROID
        //        string adUnitId = "ca-app-pub-3940256099942544/5224354917";
        //#elif UNITY_IPHONE
        //        string adUnitId = "ca-app-pub-3940256099942544/1712485313";
        //#else
        //        string adUnitId = "unexpected_platform";
        //#endif

        // 创建新的激励广告实例
        rewardedAd = new RewardedAd(adUnitId);

        // 添加事件处理程序
        //在广告加载完成时被调用。
        rewardedAd.OnAdLoaded += (sender, args) =>
        {
            PrintStatus("已加载激励广告。");
            OnAdLoadedEvent.Invoke();
            this.ShowRewardedAd();
        };

        //在广告加载失败时被调用。提供的 AdErrorEventArgs 的 Message 属性用于描述发生了何种类型的失败。
        rewardedAd.OnAdFailedToLoad += (sender, args) =>
        {
            PrintStatus("激励广告加载失败。");
            OnAdFailedToLoadEvent.Invoke();
        };

        //在广告开始展示并铺满设备屏幕时被调用。如需暂停应用音频输出或游戏循环,则非常适合使用此方法。
        rewardedAd.OnAdOpening += (sender, args) =>
        {
            PrintStatus("激励广告 打开.");
            OnAdOpeningEvent.Invoke();
        };

        //在广告显示失败时被调用。提供的 AdErrorEventArgs 的 Message 属性用于描述发生了何种类型的失败。
        rewardedAd.OnAdFailedToShow += (sender, args) =>
        {
            PrintStatus("激励广告未能展示并出现以下错误:" + args.AdError.GetMessage());
            OnAdFailedToShowEvent.Invoke();
        };

        //在用户点按“关闭”图标或使用“返回”按钮关闭激励视频广告时被调用。如果您的应用暂停了音频输出或游戏循环,则非常适合使用此方法恢复这些活动
        rewardedAd.OnAdClosed += (sender, args) =>
        {
            PrintStatus("激励广告 关闭.");
            OnAdClosedEvent.Invoke();
        };

        //用户获得的激励广告奖励:
        rewardedAd.OnUserEarnedReward += (sender, args) =>
        {
            PrintStatus("用户获得的奖励广告奖励:" + args.Amount);
            OnUserEarnedRewardEvent.Invoke();
        };

        //激励广告记录了一次展示。
        rewardedAd.OnAdDidRecordImpression += (sender, args) =>
        {
            PrintStatus("激励广告记录了一次展示");
        };
        rewardedAd.OnPaidEvent += (sender, args) =>
        {
            string msg = string.Format("{0} (currency: {1}, value: {2}",
                                        "激励广告收到了付费事件。",
                                        args.AdValue.CurrencyCode,
                                        args.AdValue.Value);
            PrintStatus(msg);
        };

        // Create empty ad request
        rewardedAd.LoadAd(CreateAdRequest());
    }

    /// <summary>
    /// 展示激励广告
    /// </summary>
    public void ShowRewardedAd()
    {
        PrintStatus("展示激励广告" + (rewardedAd != null));
        if (rewardedAd != null)
        {
            rewardedAd.Show();
        }
        else
        {
            PrintStatus("奖励广告尚未准备就绪。");
        }
    }

    /// <summary>
    /// 请求和加载插页式广告
    /// </summary>
    public void RequestAndLoadRewardedInterstitialAd()
    {
        this.ClearAdUnityAction();

        PrintStatus("请求插页式广告");

        // 这些广告单元配置为始终投放测试广告。
        string adUnitId = this.RewardedInterstitialAdID;
        //#if UNITY_EDITOR
        //        string adUnitId = "unused";
        //#elif UNITY_ANDROID
        //            string adUnitId = "ca-app-pub-3940256099942544/5354046379";
        //#elif UNITY_IPHONE
        //            string adUnitId = "ca-app-pub-3940256099942544/6978759866";
        //#else
        //            string adUnitId = "unexpected_platform";
        //#endif

        // 创建插页式广告。
        RewardedInterstitialAd.LoadAd(adUnitId, CreateAdRequest(), (rewardedInterstitialAd, error) =>
        {
            if (error != null)
            {
                PrintStatus("奖励插页式广告加载失败并出现错误: " + error);
                return;
            }

            this.rewardedInterstitialAd = rewardedInterstitialAd;
            PrintStatus("已加载奖励插页式广告。");

            // Register for ad events.
            this.rewardedInterstitialAd.OnAdDidPresentFullScreenContent += (sender, args) =>
            {
                PrintStatus("展示了奖励插页式广告。");
            };
            this.rewardedInterstitialAd.OnAdDidDismissFullScreenContent += (sender, args) =>
            {
                PrintStatus("奖励插页式广告已关闭。");
                this.rewardedInterstitialAd = null;
            };
            this.rewardedInterstitialAd.OnAdFailedToPresentFullScreenContent += (sender, args) =>
            {
                PrintStatus("奖励插页式广告未能展示并出现错误: " +
                                                                        args.AdError.GetMessage());
                this.rewardedInterstitialAd = null;
            };
            this.rewardedInterstitialAd.OnPaidEvent += (sender, args) =>
            {
                string msg = string.Format("{0} (currency: {1}, value: {2}",
                                            "奖励插页式广告收到了付费事件。",
                                            args.AdValue.CurrencyCode,
                                            args.AdValue.Value);
                PrintStatus(msg);
            };
            this.rewardedInterstitialAd.OnAdDidRecordImpression += (sender, args) =>
            {
                PrintStatus("奖励插页式广告记录了一次展示。");
            };
        });
    }

    /// <summary>
    /// 展示插页式广告
    /// </summary>
    public void ShowRewardedInterstitialAd()
    {
        if (rewardedInterstitialAd != null)
        {
            rewardedInterstitialAd.Show((reward) =>
            {
                PrintStatus("奖励插页式广告 奖励:" + reward.Amount);
            });
        }
        else
        {
            PrintStatus("激励式插页式广告尚未准备就绪。");
        }
    }

    #endregion

    #region 开屏广告

    /// <summary>
    /// 是否开屏广告
    /// </summary>
    public bool IsAppOpenAdAvailable
    {
        get
        {
            return (!isShowingAppOpenAd
                    && appOpenAd != null
                    && DateTime.Now < appOpenExpireTime);
        }
    }

    public void OnAppStateChanged(AppState state)
    {
        // 当应用程序处于前台时显示应用程序打开广告。
        //UnityEngine.PrintStatus("App State is " + state);

        // OnAppStateChanged 不能保证在 Unity UI 线程上执行。
        MobileAdsEventExecutor.ExecuteInUpdate(() =>
        {
            if (state == AppState.Foreground)
            {
                ShowAppOpenAd();
            }
        });
    }

    /// <summary>
    /// 请求和加载开屏广告
    /// </summary>
    public void RequestAndLoadAppOpenAd()
    {
        PrintStatus("请求 开屏广告.");
        string adUnitId = this.AppOpenAdID;
        //#if UNITY_EDITOR
        //        string adUnitId = "unused";
        //#elif UNITY_ANDROID
        //        string adUnitId = "ca-app-pub-3940256099942544/3419835294";
        //#elif UNITY_IPHONE
        //        string adUnitId = "ca-app-pub-3940256099942544/5662855259";
        //#else
        //        string adUnitId = "unexpected_platform";
        //#endif
        // 创建新的应用打开广告实例
        AppOpenAd.LoadAd(adUnitId,
                         ScreenOrientation.Portrait,
                         CreateAdRequest(),
                         OnAppOpenAdLoad);
    }

    /// <summary>
    /// 加载开屏广告
    /// </summary>
    /// <param name="ad"></param>
    /// <param name="error"></param>
    private void OnAppOpenAdLoad(AppOpenAd ad, AdFailedToLoadEventArgs error)
    {
        if (error != null)
        {
            PrintStatus("应用打开广告未能加载并出现错误: " + error);
            return;
        }

        PrintStatus("应用打开广告已加载。 请后台应用程序并返回。");
        this.appOpenAd = ad;
        this.appOpenExpireTime = DateTime.Now + APPOPEN_TIMEOUT;
    }

    /// <summary>
    /// 展示开屏广告
    /// </summary>
    public void ShowAppOpenAd()
    {
        if (!IsAppOpenAdAvailable)
        {
            return;
        }

        // Register for ad events.
        this.appOpenAd.OnAdDidDismissFullScreenContent += (sender, args) =>
        {
            PrintStatus("开屏广告 dismissed.");
            isShowingAppOpenAd = false;
            if (this.appOpenAd != null)
            {
                this.appOpenAd.Destroy();
                this.appOpenAd = null;
            }
        };
        this.appOpenAd.OnAdFailedToPresentFullScreenContent += (sender, args) =>
        {
            PrintStatus("开屏广告未能出现错误: " + args.AdError.GetMessage());

            isShowingAppOpenAd = false;
            if (this.appOpenAd != null)
            {
                this.appOpenAd.Destroy();
                this.appOpenAd = null;
            }
        };
        this.appOpenAd.OnAdDidPresentFullScreenContent += (sender, args) =>
        {
            PrintStatus("开屏广告 打开.");
        };
        this.appOpenAd.OnAdDidRecordImpression += (sender, args) =>
        {
            PrintStatus("开屏广告 记录了一个印象。.");
        };
        this.appOpenAd.OnPaidEvent += (sender, args) =>
        {
            string msg = string.Format("{0} (currency: {1}, value: {2}",
                                        "App Open ad received a paid event.",
                                        args.AdValue.CurrencyCode,
                                        args.AdValue.Value);
            PrintStatus(msg);
        };

        isShowingAppOpenAd = true;
        appOpenAd.Show();
    }

    #endregion


    #region AD INSPECTOR

    public void OpenAdInspector()
    {
        PrintStatus("打开广告检查器。");

        MobileAds.OpenAdInspector((error) =>
        {
            if (error != null)
            {
                PrintStatus("广告检查器无法打开并出现错误:" + error);
            }
            else
            {
                PrintStatus("广告检查器已成功打开。");
            }
        });
    }

    #endregion

    #region Utility

    ///<summary>
    /// 记录消息并更新主线程上的状态文本
    ///<summary>
    private void PrintStatus(string message)
    {
        infoText.text += "\n" + message;
        MobileAdsEventExecutor.ExecuteInUpdate(() =>
        {
            //statusText.text = message;
        });
    }

    #endregion


    #region 外部调用接口

    /// <summary>
    /// 清理广告事件
    /// </summary>
    public void ClearAdUnityAction()
    {
        this.OnAdLoadedEvent.RemoveAllListeners();
        this.OnAdFailedToLoadEvent.RemoveAllListeners();
        this.OnAdOpeningEvent.RemoveAllListeners();
        this.OnAdFailedToShowEvent.RemoveAllListeners();
        this.OnUserEarnedRewardEvent.RemoveAllListeners();
        this.OnAdClosedEvent.RemoveAllListeners();
    }

    /// <summary>
    /// 请求激励视频广告
    /// </summary>
    /// <param name="_OnAdLoadedEvent"> 在广告加载完成时被调用</param>
    /// <param name="_OnAdFailedToLoadEvent">在广告加载失败时被调用</param>
    /// <param name="_OnAdOpeningEvent">在广告开始展示并铺满设备屏幕时被调用</param>
    /// <param name="_OnAdFailedToShowEvent">在广告显示失败时被调用</param>
    /// <param name="_OnUserEarnedRewardEvent">用户获得的激励广告奖励</param>
    /// <param name="_OnAdClosedEvent">在用户点按“关闭”图标或使用“返回”按钮关闭激励视频广告时被调用</param>
    public void RequestAndLoadRewardedAd(UnityAction _OnAdLoadedEvent, UnityAction _OnAdFailedToLoadEvent,
        UnityAction _OnAdOpeningEvent, UnityAction _OnAdFailedToShowEvent, UnityAction _OnUserEarnedRewardEvent, UnityAction _OnAdClosedEvent)
    {
        this.OnAdLoadedEvent.AddListener(_OnAdLoadedEvent);
        this.OnAdFailedToLoadEvent.AddListener(_OnAdFailedToLoadEvent);
        this.OnAdOpeningEvent.AddListener(_OnAdOpeningEvent);
        this.OnAdFailedToShowEvent.AddListener(_OnAdFailedToShowEvent);
        this.OnUserEarnedRewardEvent.AddListener(_OnUserEarnedRewardEvent);
        this.OnAdClosedEvent.AddListener(_OnAdClosedEvent);

        this.RequestAndLoadRewardedAd();

    }

    public void RequestAndLoadRewardedAd1()
    {
        PrintStatus("RequestAndLoadRewardedAd1");
        this.RequestAndLoadRewardedAd(null, null, null, null, null, null);
    }


    /// <summary>
    /// 请求和加载插页式广告
    /// </summary>
    /// <param name="_OnAdLoadedEvent"> 在广告加载完成时被调用</param>
    /// <param name="_OnAdFailedToLoadEvent">在广告加载失败时被调用</param>
    /// <param name="_OnAdOpeningEvent">在广告开始展示并铺满设备屏幕时被调用</param>
    /// <param name="_OnAdFailedToShowEvent">在广告显示失败时被调用</param>
    /// <param name="_OnUserEarnedRewardEvent">用户获得的激励广告奖励</param>
    /// <param name="_OnAdClosedEvent">在用户点按“关闭”图标或使用“返回”按钮关闭激励视频广告时被调用</param>
    public void RequestAndLoadRewardedInterstitialAd(UnityAction _OnAdLoadedEvent, UnityAction _OnAdFailedToLoadEvent,
        UnityAction _OnAdOpeningEvent, UnityAction _OnAdFailedToShowEvent, UnityAction _OnUserEarnedRewardEvent, UnityAction _OnAdClosedEvent)
    {
        this.OnAdLoadedEvent.AddListener(_OnAdLoadedEvent);
        this.OnAdFailedToLoadEvent.AddListener(_OnAdFailedToLoadEvent);
        this.OnAdOpeningEvent.AddListener(_OnAdOpeningEvent);
        this.OnAdFailedToShowEvent.AddListener(_OnAdFailedToShowEvent);
        this.OnUserEarnedRewardEvent.AddListener(_OnUserEarnedRewardEvent);
        this.OnAdClosedEvent.AddListener(_OnAdClosedEvent);

        this.RequestAndLoadRewardedInterstitialAd();

    }

    public void RequestAndLoadRewardedInterstitialAd1()
    {
        PrintStatus("RequestAndLoadRewardedInterstitialAd1");
        this.RequestAndLoadRewardedInterstitialAd(null, null, null, null, null, null);
    }

    /// <summary>
    /// 请求横幅广告
    /// </summary>
    /// <param name="_OnAdLoadedEvent"> 在广告加载完成时被调用</param>
    /// <param name="_OnAdFailedToLoadEvent">在广告加载失败时被调用</param>
    /// <param name="_OnAdOpeningEvent">在广告开始展示并铺满设备屏幕时被调用</param>
    /// <param name="_OnAdFailedToShowEvent">在广告显示失败时被调用</param>
    /// <param name="_OnUserEarnedRewardEvent">用户获得的激励广告奖励</param>
    /// <param name="_OnAdClosedEvent">在用户点按“关闭”图标或使用“返回”按钮关闭激励视频广告时被调用</param>
    public void RequestBannerAd(UnityAction _OnAdLoadedEvent, UnityAction _OnAdFailedToLoadEvent,
        UnityAction _OnAdOpeningEvent, UnityAction _OnAdFailedToShowEvent, UnityAction _OnUserEarnedRewardEvent, UnityAction _OnAdClosedEvent)
    {
        this.OnAdLoadedEvent.AddListener(_OnAdLoadedEvent);
        this.OnAdFailedToLoadEvent.AddListener(_OnAdFailedToLoadEvent);
        this.OnAdOpeningEvent.AddListener(_OnAdOpeningEvent);
        this.OnAdFailedToShowEvent.AddListener(_OnAdFailedToShowEvent);
        this.OnUserEarnedRewardEvent.AddListener(_OnUserEarnedRewardEvent);
        this.OnAdClosedEvent.AddListener(_OnAdClosedEvent);

        this.RequestBannerAd();

    }

    public void RequestBannerAd1()
    {
        PrintStatus("RequestBannerAd1");
        this.RequestBannerAd(null, null, null, null, null, null);
    }

    /// <summary>
    /// 请求和加载插页式广告
    /// </summary>
    /// <param name="_OnAdLoadedEvent"> 在广告加载完成时被调用</param>
    /// <param name="_OnAdFailedToLoadEvent">在广告加载失败时被调用</param>
    /// <param name="_OnAdOpeningEvent">在广告开始展示并铺满设备屏幕时被调用</param>
    /// <param name="_OnAdFailedToShowEvent">在广告显示失败时被调用</param>
    /// <param name="_OnUserEarnedRewardEvent">用户获得的激励广告奖励</param>
    /// <param name="_OnAdClosedEvent">在用户点按“关闭”图标或使用“返回”按钮关闭激励视频广告时被调用</param>
    public void RequestAndLoadInterstitialAd(UnityAction _OnAdLoadedEvent, UnityAction _OnAdFailedToLoadEvent,
        UnityAction _OnAdOpeningEvent, UnityAction _OnAdFailedToShowEvent, UnityAction _OnUserEarnedRewardEvent, UnityAction _OnAdClosedEvent)
    {
        this.OnAdLoadedEvent.AddListener(_OnAdLoadedEvent);
        this.OnAdFailedToLoadEvent.AddListener(_OnAdFailedToLoadEvent);
        this.OnAdOpeningEvent.AddListener(_OnAdOpeningEvent);
        this.OnAdFailedToShowEvent.AddListener(_OnAdFailedToShowEvent);
        this.OnUserEarnedRewardEvent.AddListener(_OnUserEarnedRewardEvent);
        this.OnAdClosedEvent.AddListener(_OnAdClosedEvent);

        this.RequestAndLoadInterstitialAd();

    }


    public void RequestAndLoadInterstitialAd1()
    {
        PrintStatus("RequestAndLoadInterstitialAd1");
        this.RequestAndLoadInterstitialAd(null, null, null, null, null, null);
    }


    #endregion
}

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Unity接入SDK是指在Unity项目中集成第三方SDK的过程。具体的接入流程包括以下几个步骤: 1. 准备工作:首先,你需要从SDK提供商处获取SDK的相关文件,包括jar文件、iOS的.framework文件等。 2. 导入SDK文件:将SDK的相关文件导入到Unity项目中。对于Android平台,可以将jar文件放置在Unity项目的Plugins文件夹下;对于iOS平台,可以将.framework文件拖入Unity项目中。 3. 配置SDK参数:在Unity中,你需要根据SDK的要求配置相应的参数。这些参数可能包括App ID、App Key、回调URL等。你可以在Unity中创建一个脚本,用来存储和管理这些参数。 4. 调用SDK接口:根据SDK的文档和示例代码,调用SDK提供的接口完成相应的功能。你可以在Unity中编写脚本,通过调用SDK接口实现登录、支付、分享等功能。 以上是Unity接入SDK的一般流程。具体的接入方法和代码示例可以参考SDK提供商的文档和示例代码。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [unity接入SDK流程(android)](https://download.csdn.net/download/lb18520182905/44974594)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *2* [[Unity]Unity接平台SDK(3种方式)](https://blog.csdn.net/zp288105109a/article/details/80244617)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] - *3* [【Unity游戏开发】SDK接入与集成——小白入门篇](https://blog.csdn.net/weixin_34195142/article/details/85919506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 33.333333333333336%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值