Unity Max SDK接入MRec广告,自定义显示位置
文章目录
- 加载横幅或 MREC
- 显示
- 隐藏
- 销毁
- 启动刷新
- 停止刷新
- 加载
- 除了自带的位置类型如何自定义位置
加载横幅或 MREC
#if UNITY_IOS
string mrecAdUnitId = "«iOS-ad-unit-ID»"; // Retrieve the ID from your account
#else // UNITY_ANDROID
string mrecAdUnitId = "«Android-ad-unit-ID»"; // Retrieve the ID from your account
#endifpublic void InitializeMRecAds()
{// MRECs are sized to 300x250 on phones and tabletsMaxSdk.CreateMRec(mrecAdUnitId, MaxSdkBase.AdViewPosition.Centered);MaxSdkCallbacks.MRec.OnAdLoadedEvent += OnMRecAdLoadedEvent;MaxSdkCallbacks.MRec.OnAdLoadFailedEvent += OnMRecAdLoadFailedEvent;MaxSdkCallbacks.MRec.OnAdClickedEvent += OnMRecAdClickedEvent;MaxSdkCallbacks.MRec.OnAdRevenuePaidEvent += OnMRecAdRevenuePaidEvent;MaxSdkCallbacks.MRec.OnAdExpandedEvent += OnMRecAdExpandedEvent;MaxSdkCallbacks.MRec.OnAdCollapsedEvent += OnMRecAdCollapsedEvent;
}public void OnMRecAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) {}public void OnMRecAdLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo error) {}public void OnMRecAdClickedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) {}public void OnMRecAdRevenuePaidEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) {}public void OnMRecAdExpandedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) {}public void OnMRecAdCollapsedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo) {}
以下为完整的位置选项列表:
TopLeft
TopCenter
TopRight
Centered
CenterLeft
CenterRight
BottomLeft
BottomCenter
BottomRight
您也可以调用 MaxSdk.CreateBanner(«ad-unit-ID», «x», «y»); 或 MaxSdk.CreateMRec(«ad-unit-ID», «x», «y»);,以将广告放置在具体的 (x,y) 坐标上。此操作可设置广告左上角的位置。 该坐标系代表屏幕的安全区域边界。 在设置这些坐标时,请务必考虑到广告的宽度和高度。 位置 (0, 0) 等同于 TopLeft;安全区域的右下角为 (safeAreaWidth, safeAreaHeight)。 请注意,Unity 的屏幕尺寸或安全区域大小可能与 Android 或 iOS 不同。 要在 Unity 的屏幕尺寸和 Android 或 iOS 使用的尺寸之间进行转换,请使用如下代码:
var density = MaxSdkUtils.GetScreenDensity();
var dp = «pixels» / density;
显示
MaxSdk.ShowMRec(«ad-unit-ID»);
隐藏
MaxSdk.HideMRec(«ad-unit-ID»);
销毁
MaxSdk.DestroyMRec(«ad-unit-ID»);
启动刷新
MaxSdk.StartMRecAutoRefresh(«ad-unit-ID»);
停止刷新
MaxSdk.StopMRecAutoRefresh(«ad-unit-ID»);
加载
MaxSdk.LoadMRec(«ad-unit-ID»);
注意CreateBanner只需要一次,如果加载失败,则
public void OnMRecAdLoadFailedEvent(string adUnitId, MaxSdkBase.ErrorInfo error){MaxSdk.StopBannerAutoRefresh(AdMaxType.MrecAdUnitId);MaxSdk.LoadMRec(AdMaxType.MrecAdUnitId);}
加载成功
public void OnMRecAdLoadedEvent(string adUnitId, MaxSdkBase.AdInfo adInfo){MaxSdk.StartMRecAutoRefresh(AdMaxType.MrecAdUnitId);}
除了自带的位置类型如何自定义位置
// 向上偏移值(单位:dp)public float offsetDp = 100f;void ShowCenteredMRecWithOffset(string adUnitId) {// 获取屏幕安全区域Rect safeArea = Screen.safeArea;float safeWidth = safeArea.width;float safeHeight = safeArea.height;// 广告尺寸固定为 300x250 像素float adWidth = 300f;float adHeight = 250f;// 计算 dp 到像素的转换float density = MaxSdkUtils.GetScreenDensity();float xPos = (safeWidth/density - adWidth) * 0.5f;float yPos = (safeHeight/density - adHeight) * 0.5f - offsetDp;// 创建并显示新的 MREC 广告:contentReference[oaicite:7]{index=7}MaxSdk.CreateMRec(adUnitId, xPos, yPos);//MaxSdk.ShowMRec(adUnitId);}
Banner基本同理