【Unity】接入Max广告聚合SDK
创始人
2024-05-30 04:56:52

下载和导入MAX Unity插件:
官方SDK链接
在这里插入图片描述
在这里插入图片描述

2.初始化MAX SDK:

MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) => {// AppLovin SDK is initialized, start loading ads
};MaxSdk.SetSdkKey("YOUR_SDK_KEY_HERE");
MaxSdk.SetUserId("USER_ID");
MaxSdk.InitializeSdk();

3.配置广告源
选择所需要的广告源。点install。ExternalDependencyManager会帮你根据选择的广告源下载对应的SDK,可能需要挂vpn

在这里插入图片描述
在这里插入图片描述

4.在Unity应用中加载广告

激励视频有一下参考接口

	//加载激励视频MaxSdk.LoadRewardedAd(adUnitId); //判断是是否已经加载激励视频MaxSdk.IsRewardedAdReady(adUnitId)//播放激励视频MaxSdk.ShowRewardedAd(adUnitId);//添加奖励下发回调MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;

其他类型的广告接口可以看侧边栏的这里选择
在这里插入图片描述

给一份接入后的参考代码:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using AppLovinMax;
using System;/// 
/// Max广告聚合中间类
/// 
public class MaxAdsUtil : AdsSDKBase
{/// /// Max SDK key/// string maxKey = SDKConstant.Max_sdk_key;/// /// 激励视频id/// string IdReward = SDKConstant.Max_reward_ads_key;/// /// 插屏视频id/// string IdInterstitial = SDKConstant.Max_interstitial_ads_key;/// /// 横幅视频id/// string IdBannar = SDKConstant.Max_bannar_ads_key;/// /// 初始化/// public override void Init(){//base.Init();if (string.IsNullOrEmpty(maxKey)){Loger.Error("MAX SDK KEY is empty");return;}if (isInit){Loger.Info("MAX SDK is Inited");}//起动回调MaxSdkCallbacks.OnSdkInitializedEvent += (MaxSdkBase.SdkConfiguration sdkConfiguration) =>{Loger.Info("MAX SDK Init!!!");InitializeRewardedAds();isInit = true;};string deviceId = SystemInfo.deviceUniqueIdentifier;MaxSdk.SetUserId(deviceId);MaxSdk.SetSdkKey(maxKey);MaxSdk.InitializeSdk();}public void ShowDebugView(){MaxSdk.ShowMediationDebugger();}#region ------------------ 激励视频 ------------------/// /// 激励激励已经准备/// /// public override bool IsRewardReady(){if (string.IsNullOrEmpty(IdReward)) return false;return MaxSdk.IsRewardedAdReady(IdReward);}/// /// 播放激励/// /// public override void PlayRewardAds(Action callBack){if (!IsRewardReady()) return;onPlayReward = callBack;MaxSdk.ShowRewardedAd(IdReward);}/// /// 激励视频重试请求次数/// int retryAttemptReward = 0;/// /// 激励回调/// Action onPlayReward;/// /// 初始化激励视频/// public void InitializeRewardedAds(){// Attach callbackMaxSdkCallbacks.Rewarded.OnAdLoadedEvent += OnRewardedAdLoadedEvent;MaxSdkCallbacks.Rewarded.OnAdLoadFailedEvent += OnRewardedAdLoadFailedEvent;MaxSdkCallbacks.Rewarded.OnAdHiddenEvent += OnRewardedAdHiddenEvent;MaxSdkCallbacks.Rewarded.OnAdDisplayFailedEvent += OnRewardedAdFailedToDisplayEvent;MaxSdkCallbacks.Rewarded.OnAdReceivedRewardEvent += OnRewardedAdReceivedRewardEvent;if (string.IsNullOrEmpty(IdReward)){Loger.Error("MAX SDK RewardId is empty");}// Load the first rewarded adLoadRewardedAd();}/// /// 加载广告/// private void LoadRewardedAd(){if (string.IsNullOrEmpty(IdReward)) return;MaxSdk.LoadRewardedAd(IdReward);}/// /// 广告加载成功/// /// /// private void OnRewardedAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){retryAttemptReward = 0;Loger.Log($"Max SDK rewardAD ready :  id:{adInfo.AdUnitIdentifier}, channel:{adInfo.NetworkName}");}/// /// 广告加载失败/// /// /// private void OnRewardedAdLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo){retryAttemptReward++;float retryDelay = Math.Clamp(2 * retryAttemptReward, 0, 64);Loger.Info($"Max SDK rewardAD fail :{errorInfo.Code}  {errorInfo.Message}");TimerManager.runTimeOnce(retryDelay, LoadRewardedAd);}/// /// 广告播放失败/// /// /// /// private void OnRewardedAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo){LoadRewardedAd();onPlayReward = null;}/// /// 广告关闭/// /// /// private void OnRewardedAdHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){LoadRewardedAd();onPlayReward = null;}/// /// 发放奖励/// /// /// /// private void OnRewardedAdReceivedRewardEvent(string adUnitId, MaxSdk.Reward reward, MaxSdkBase.AdInfo adInfo){onPlayReward?.Invoke(true);onPlayReward = null;Loger.Log($"Max SDK rewardAD Revice :  id:{adInfo.AdUnitIdentifier}, channel:{adInfo.NetworkName}");}#endregion#region ------------------ 插屏视频 ------------------/// /// 激励激励已经准备/// /// public override bool IsInterstitialReady(){if (string.IsNullOrEmpty(IdInterstitial)) return false;return MaxSdk.IsInterstitialReady(IdInterstitial);}/// /// 播放激励/// /// public override void PlayInterstitialAds(Action callBack){if (!IsInterstitialReady()) return;onPlayInterstitial = callBack;MaxSdk.ShowInterstitial(IdInterstitial);}/// /// 插屏视频重试请求次数/// int retryAttemptInterstitial = 0;/// /// 插屏回调/// Action onPlayInterstitial;/// /// 初始化插屏/// public void InitializeInterstitialAds(){// Attach callbackMaxSdkCallbacks.Interstitial.OnAdLoadedEvent += OnInterstitialLoadedEvent;MaxSdkCallbacks.Interstitial.OnAdLoadFailedEvent += OnInterstitialLoadFailedEvent;MaxSdkCallbacks.Interstitial.OnAdHiddenEvent += OnInterstitialHiddenEvent;MaxSdkCallbacks.Interstitial.OnAdDisplayFailedEvent += OnInterstitialAdFailedToDisplayEvent;if (string.IsNullOrEmpty(IdInterstitial)){Loger.Error("MAX SDK InterstitiaId is empty");}// Load the first interstitialLoadInterstitial();}/// /// 加载插屏广告/// private void LoadInterstitial(){if (string.IsNullOrEmpty(IdInterstitial)) return;MaxSdk.LoadInterstitial(IdInterstitial);}/// /// 插屏广告加载成功/// /// /// private void OnInterstitialLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){retryAttemptInterstitial = 0;}/// /// 插屏广告加载失败/// /// /// private void OnInterstitialLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo){retryAttemptInterstitial++;float retryDelay = Math.Clamp(2 * retryAttemptInterstitial, 0, 64);TimerManager.runTimeOnce(retryDelay, LoadInterstitial);}/// /// 插屏广告显示失败/// /// /// /// private void OnInterstitialAdFailedToDisplayEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo, MaxSdkBase.AdInfo adInfo){LoadInterstitial();onPlayInterstitial = null;}/// /// 插屏广告显示关闭/// /// /// private void OnInterstitialHiddenEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){LoadInterstitial();onPlayInterstitial?.Invoke(true);onPlayInterstitial = null;}#endregion#region ------------------ Bannar视频 ------------------bool isBannarReady = false;public override void ShowBannarAds(){if (IsBannarReady())MaxSdk.ShowBanner(IdBannar);}public override void HideBannarAds(){MaxSdk.HideBanner(IdBannar);}/// /// 设置广告位置/// /// public override void SetBannarPos(BannarPos pos = BannarPos.BottomCenter){MaxSdkBase.BannerPosition enmuPos;switch (pos){case BannarPos.TopCenter:enmuPos = MaxSdkBase.BannerPosition.TopCenter;break;case BannarPos.BottomCenter:enmuPos = MaxSdkBase.BannerPosition.BottomCenter;break;default:enmuPos = MaxSdkBase.BannerPosition.BottomCenter; break;}MaxSdk.UpdateBannerPosition(IdBannar, enmuPos);}public override bool IsBannarReady(){return isBannarReady;}public void InitializeBannerAds(){// Banners are automatically sized to 320×50 on phones and 728×90 on tablets// You may call the utility method MaxSdkUtils.isTablet() to help with view sizing adjustmentsMaxSdk.CreateBanner(IdBannar, MaxSdkBase.BannerPosition.BottomCenter);// Set background or background color for banners to be fully functionalMaxSdk.SetBannerBackgroundColor(IdBannar, Color.white);MaxSdkCallbacks.Banner.OnAdLoadedEvent += OnBannerAdLoadedEvent;MaxSdkCallbacks.Banner.OnAdLoadFailedEvent += OnBannerAdLoadFailedEvent;MaxSdk.LoadBanner(IdBannar);}private void OnBannerAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){isBannarReady = true;}private void OnBannerAdLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo errorInfo){isBannarReady = false;MaxSdk.LoadBanner(IdBannar);}#endregion
}

相关内容

热门资讯

苗族的传统节日 贵州苗族节日有... 【岜沙苗族芦笙节】岜沙,苗语叫“分送”,距从江县城7.5公里,是世界上最崇拜树木并以树为神的枪手部落...
北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
世界上最漂亮的人 世界上最漂亮... 此前在某网上,选出了全球265万颜值姣好的女性。从这些数量庞大的女性群体中,人们投票选出了心目中最美...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
猫咪吃了塑料袋怎么办 猫咪误食... 你知道吗?塑料袋放久了会长猫哦!要说猫咪对塑料袋的喜爱程度完完全全可以媲美纸箱家里只要一有塑料袋的响...