Athana SDK

For Games

广告服务

配置

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// DemoApplication.kt
class DemoApplication: Application() {
override fun onCreate() {
super.onCreate()

// -- Max 配置
val devKey = "<AppLovin MAX SDK Key>"
val privacyPolicyUrl = "<url>" // 隐私政策链接,用于欧盟地区
val termsOfServiceUrl = "<url>" // 用户协议链接,用于欧盟地区
MaxSdkConfiguration.initialize(devKey, privacyPolicyUrl, termsOfServiceUrl, debugMode)

// Athana SDK Config
// ...
//Athana.initialize(...);
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// DemoApplication.java
public class DemoApplication extends Application {

@Override
public void onCreate() {
super.onCreate();

...

// -- Max 配置
String devKey = "<AppLovin MAX SDK Key>";
String privacyPolicyUrl = "<url>"; // 隐私政策链接,用于欧盟地区
String termsOfServiceUrl = "<url>"; // 用户协议链接,用于欧盟地区
MaxSdkConfiguration.initialize(devKey, privacyPolicyUrl, termsOfServiceUrl, debugMode);

// Athana SDK Config
// ...
//Athana.initialize(...);
}
}

广告渠道配置文档:

https://developers.applovin.com/en/max/android/preparing-mediated-networks#gradle

https://developers.applovin.com/zh/max/android/preparing-mediated-networks#gradle

数据结构

ProxyAd

参数 类型 说明
type Integer 广告类型
- 1 - Rewarded
- 2 - MREC/BANNER
- 3 - Native
- 4 - Interstitial
- 5 - App Open
classify Integer 广告展示形式
- 1 - FullScreen Ad 全屏
- 2 - Banner Ad 横幅
platform String 广告平台
source String 广告媒体
adUnitId String 广告位
placement String 调用广告的位置
currency String 广告收益货币
revenue Double 广告收益
revenuePrecision String 广告收益数额精度

应用启动广告

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
// Example
private val appOpenUnitId = "<adUnitId>"

private fun listener() {
Athana.getInstance().setAdListener(object: BaseAdServiceListener() {
override fun onLoaded(ad: ProxyAd) {
super.onLoaded(ad)
if (ad.type == 5) {
// 加载成功
show("App Open")
}
}

override fun onLoadFailed(ad: ProxyAd, error: Any?) {
super.onLoadFailed(ad, error)
if (ad.type == 5) {
// 加载失败
}
}

override fun onClosed(ad: ProxyAd) {
super.onClosed(ad)
if (ad.type == 5) {
// 关闭广告
}
}
})
}

private fun load() {
listener()
Athana.getInstance().adService.loadAppOpenAd(appOpenUnitId)
}

private fun show(placement: String) {
Athana.getInstance().adService.showAppOpenAd(appOpenUnitId, placement)
}
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
// Example
private static String appOpenUnitId = "<adUnitId>";

private void listener() {
Athana.getInstance().setAdListener(new BaseAdServiceListener() {

@Override
public void onLoaded(@NonNull ProxyAd ad) {
super.onLoaded(ad);
if (ad.getType() == 5) {
// 加载成功
show("App Open");
}
}

@Override
public void onLoadFailed(@NonNull ProxyAd ad, Object error) {
super.onLoadFailed(ad, error);
if (ad.getType() == 5) {
// 加载失败
}
}

@Override
public void onClosed(ProxyAd ad) {
super.onClosed(ad);
if (ad.getType() == 5) {
// 关闭广告
}
}
});
}

private void load() {
listener();
Athana.getInstance().getAdService().loadAppOpenAd(appOpenUnitId);
}

private void show(String placement) {
Athana.getInstance().getAdService().showAppOpenAd(appOpenUnitId, placement);
}

激励广告

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
// Example
private val rewardedUnitId = "<adUnitId>"

private fun listener() {
Athana.getInstance().setAdListener(object: BaseAdServiceListener() {
override fun onLoaded(ad: ProxyAd) {
super.onLoaded(ad)
if (ad.type == 1) {
// 加载成功
show("StorePage")
}
}

override fun onLoadFailed(ad: ProxyAd, error: Any?) {
super.onLoadFailed(ad, error)
if (ad.type == 1) {
// 加载失败
}
}

override fun onRewarded(ad: ProxyAd) {
super.onRewarded(ad)
// 获得奖励

}

override fun onClosed(ad: ProxyAd) {
super.onClosed(ad)
if (ad.type == 1) {
// 关闭广告
}
}
})
}

private fun load() {
listener()
Athana.getInstance().adService.loadRewardAd(rewardedUnitId)
}

private fun show(placement: String) {
Athana.getInstance().adService.showRewardAd(rewardedUnitId, placement)
}
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
44
45
46
47
48
// Example
private static String rewardedUnitId = "<adUnitId>";

private void listener() {
Athana.getInstance().setAdListener(new BaseAdServiceListener() {

@Override
public void onLoaded(@NonNull ProxyAd ad) {
super.onLoaded(ad);
if (ad.getType() == 1) {
// 加载成功
show("StorePage");
}
}

@Override
public void onLoadFailed(@NonNull ProxyAd ad, Object error) {
super.onLoadFailed(ad, error);
if (ad.getType() == 1) {
// 加载失败
}
}

@Override
public void onRewarded(ProxyAd ad) {
super.onRewarded(ad)
// 获得奖励

}

@Override
public void onClosed(ProxyAd ad) {
super.onClosed(ad);
if (ad.getType() == 1) {
// 关闭广告
}
}
});
}

private void load() {
listener();
Athana.getInstance().getAdService().loadRewardAd(rewardedUnitId);
}

private void show(String placement) {
Athana.getInstance().getAdService().showRewardAd(rewardedUnitId, placement);
}

插屏广告

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
// Example
private val interstitialUnitId = "<adUnitId>"

private fun listener() {
Athana.getInstance().setAdListener(object: BaseAdServiceListener() {
override fun onLoaded(ad: ProxyAd) {
super.onLoaded(ad)
if (ad.type == 4) {
// 加载成功
show("Game Level 1-2")
}
}

override fun onLoadFailed(ad: ProxyAd, error: Any?) {
super.onLoadFailed(ad, error)
if (ad.type == 4) {
// 加载失败
}
}

override fun onClosed(ad: ProxyAd) {
super.onClosed(ad)
if (ad.type == 4) {
// 关闭广告
}
}
})
}

private fun load() {
listener()
Athana.getInstance().adService.loadInterstitialAd(interstitialUnitId)
}

private fun show(placement: String) {
Athana.getInstance().adService.showInterstitialAd(interstitialUnitId, placement)
}
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
// Example
private static String interstitialUnitId = "<adUnitId>";

private void listener() {
Athana.getInstance().setAdListener(new BaseAdServiceListener() {

@Override
public void onLoaded(@NonNull ProxyAd ad) {
super.onLoaded(ad);
if (ad.getType() == 4) {
// 加载成功
show("Game Level 1-2");
}
}

@Override
public void onLoadFailed(@NonNull ProxyAd ad, Object error) {
super.onLoadFailed(ad, error);
if (ad.getType() == 4) {
// 加载失败
}
}

@Override
public void onClosed(ProxyAd ad) {
super.onClosed(ad);
if (ad.getType() == 4) {
// 关闭广告
}
}
});
}

private void load() {
listener();
Athana.getInstance().getAdService().loadInterstitialAd(interstitialUnitId);
}

private void show(String placement) {
Athana.getInstance().getAdService().showInterstitialAd(interstitialUnitId, placement);
}

横幅广告

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
44
45
46
47
48
49
50
51
// Example
private var banner: Banner? = null
private val interstitialUnitId = "<adUnitId>"

private fun listener() {
Athana.getInstance().setAdListener(object: BaseAdServiceListener() {
override fun onLoaded(ad: ProxyAd) {
super.onLoaded(ad)
if (ad.type == 2) {
// 加载成功
}
}

override fun onLoadFailed(ad: ProxyAd, error: Any?) {
super.onLoadFailed(ad, error)
if (ad.type == 2) {
// 加载失败
}
}

override fun onClosed(ad: ProxyAd) {
super.onClosed(ad)
if (ad.type == 2) {
// 关闭广告
}
}
})
}

private fun create(placement: String) {
listener()
banner = Athana.getInstance().adService.createBanner(
bannerUnitId,
placement,
AdAlignment.TOP_CENTER,
AdSize.fullWidth(70)
)
if (banner == null) {
// 创建失败
}
// banner?.show() // 显示
// banner?.hide() // 隐藏
// banner?.updateAlignment(..) // 更新位置
// banner?.updateSize(..) // 更新尺寸
}

private fun destroy() {
// 销毁
banner?.destroy()
banner = null
}
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
44
45
46
47
48
49
50
51
52
53
54
55
56
// Example
private Banner banner = null;
private String bannerUnitId = "<adUnitId>";

private void listener() {
Athana.getInstance().setAdListener(new BaseAdServiceListener() {
@Override
public void onLoaded(@NonNull ProxyAd ad) {
super.onLoaded(ad);
if (ad.getType() == 2) {
// 加载成功
}
}

@Override
public void onLoadFailed(@NonNull ProxyAd ad, Object error) {
super.onLoadFailed(ad, error);
if (ad.getType() == 2) {
// 加载失败
}
}

@Override
public void onClosed(@NonNull ProxyAd ad) {
super.onClosed(ad);
if (ad.getType() == 2) {
// 关闭广告
}
}
});
}

private void create(String placement) {
listener();
banner = Athana.getInstance().getAdService().createBanner(
bannerUnitId,
placement,
AdAlignment.TOP_CENTER,
AdSize.fullWidth(70)
);
if (banner == null) {
// 创建失败
}
// banner?.show() // 显示
// banner?.hide() // 隐藏
// banner?.updateAlignment(..) // 更新位置
// banner?.updateSize(..) // 更新尺寸
}

private void destroy() {
// 销毁
if (banner != null) {
banner.destroy();
banner = null;
}
}
0%