# 10. Banner广告
# (1) API说明
ATBannerAd:
API | 参数 | 说明 |
---|---|---|
loadBannerAd | string placementid,Dictionary<string,string> extra | 加载广告 |
showBannerAd | string placementid,string position | 初次显示广告 postion:ATBannerAdLoadingExtra.kATBannerAdShowingPisitionTop(显示在屏幕顶部)ATBannerAdLoadingExtra.kATBannerAdShowingPisitionBottom(显示在屏幕底部) |
hideBannerAd | string placementid | 隐藏广告 |
showBannerAd | string placementid | 显示 已经隐藏的广告 |
cleanBannerAd | string placementid | 移除广告 |
# (2) 加载Banner广告
使用以下代码加载Banner广告:
public void loadBannerAd()
{
if(bannerCallback == null) {
bannerCallback = new BannerCallback();
ATBannerAd.Instance.setListener(bannerCallback);
}
Dictionary<string, object> jsonmap = new Dictionary<string,object>();
//配置Banner要展示的宽度,高度,是否使用pixel为单位(只针对iOS有效,Android 使用pixel为单位)
ATSize bannerSize = new ATSize(this.screenWidth, 100, true);
jsonmap.Add(ATBannerAdLoadingExtra.kATBannerAdLoadingExtraBannerAdSizeStruct, bannerSize);
//v5.6.5新增,只针对Admob的自适应Banner
jsonmap.Add(ATBannerAdLoadingExtra.kATBannerAdLoadingExtraInlineAdaptiveWidth, bannerSize.width);
jsonmap.Add(ATBannerAdLoadingExtra.kATBannerAdLoadingExtraInlineAdaptiveOrientation, ATBannerAdLoadingExtra.kATBannerAdLoadingExtraInlineAdaptiveOrientationCurrent);
ATBannerAd.Instance.loadBannerAd(mPlacementId_native_all, jsonmap);
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
请继续阅读以了解如何获得有关Banner广告事件的通知,例如加载成功/失败,展示和点击。
# (2) 展示Banner广告
目前可以用两种方法来展示banner广告。
- 用预定义的位置来展示banner广告 把banner展示在屏幕底部
ATBannerAd.Instance.showBannerAd(mPlacementId_native_all, ATBannerAdLoadingExtra.kATBannerAdShowingPisitionTop);
1
把banner展示在屏幕底部
ATBannerAd.Instance.showBannerAd(mPlacementId_native_all, ATBannerAdLoadingExtra.kATBannerAdShowingPisitionBottom);
1
当使用预定义位置来展示banner广告的时候,SDK已经考虑了刘海屏等Safe Area相关空白区域了。 2) 用ATRect来展示banner广告
public void showBannerAd()
{
ATRect arpuRect = new ATRect(0,70, screenWidth, 100, true);
ATBannerAd.Instance.showBannerAd(mPlacementId_native_all, arpuRect);
}
1
2
3
4
5
2
3
4
5
传递给ATRect类的构造函数的末尾参数表示是否使用像素(只针对iOS有效)。 例如,在iPhone 6上,如果分别为x,y,宽度和高度分别传递30、120、300、450,则在iPhone 7上传递给Objective-C代码的实际值将为15、60、150、225 这些值将是10、40、100、150; 也就是说,最终值将决定于目标设备的屏幕比例。
如果需要,请使用以下代码从屏幕上移除Banner:
public void removeBannerAd()
{
ATBannerAd.Instance.cleanBannerAd(mPlacementId_native_all);
}
1
2
3
4
2
3
4
如果您只想暂时隐藏 Banner(而不是从屏幕上移除),请在此处使用代码:
public void hideBannerAd()
{
ATBannerAd.Instance.hideBannerAd(mPlacementId_native_all);
}
1
2
3
4
2
3
4
隐藏Banner后,可以使用以下代码重新显示它:
public void reshowBannerAd()
{
ATBannerAd.Instance.showBannerAd(mPlacementId_native_all);
}
1
2
3
4
2
3
4
注意: 请注意,此处的showBannerAd
方法不接受rect参数
,这与您首次显示Banner广告时不同。
移除Banner广告和隐藏Banner广告的区别在于,从屏幕上移除Banner广告时也会破坏它(这意味着在再次显示之前,必须先加载Banner广告),而隐藏Banner只需调用showBannerAd
方法即可重新显示以前隐藏的Banner广告不传递ATRect参数
# (4) 实现Banner的监听器
要获得有关各种Banner
广告事件(加载成功/失败,展示和点击)的通知,只需定义一个ATBannerAdListener
接口的实现类:
class BannerCallback : ATBannerAdListener
{
public void onAdAutoRefresh(string unitId, ATCallbackInfo callbackInfo)
{
Debug.Log("Developer callback onAdAutoRefresh :" + unitId);
}
public void onAdAutoRefreshFail(string unitId, string code, string message)
{
Debug.Log("Developer callback onAdAutoRefreshFail : "+ unitId + "--code:" + code + "--msg:" + message);
}
public void onAdClick(string unitId, ATCallbackInfo callbackInfo)
{
Debug.Log("Developer callback onAdClick :" + unitId);
}
//v5.5.3之后不再执行该回调,转到onAdCloseButtonTapped方法回调
public void onAdClose(string unitId)
{
Debug.Log("Developer callback onAdClose :" + unitId);
}
public void onAdImpress(string unitId, ATCallbackInfo callbackInfo)
{
Debug.Log("Developer callback onAdImpress :" + unitId);
}
public void onAdLoad(string unitId)
{
Debug.Log("Developer callback onAdLoad :" + unitId);
}
public void onAdLoadFail(string unitId, string code, string message)
{
Debug.Log("Developer callback onAdLoadFail : : " + unitId + "--code:" + code + "--msg:" + message);
}
public void onAdCloseButtonTapped(string unitId, ATCallbackInfo callbackInfo)
{
Debug.Log("Developer callback onAdCloseButtonTapped :" + unitId);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43