配置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
   |  class DemoApplication: Application() {     override fun onCreate() {         super.onCreate()                           val devKey = "<AppLovin MAX SDK Key>"         val privacyPolicyUrl = "<url>"          val termsOfServiceUrl = "<url>"          MaxSdkConfiguration.initialize(devKey, privacyPolicyUrl, termsOfServiceUrl, debugMode)
                                 } }
 
  | 
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
   |  public class DemoApplication extends Application {
      @Override     public void onCreate() {         super.onCreate();                  ...
                   String devKey = "<AppLovin MAX SDK Key>";         String privacyPolicyUrl = "<url>";          String termsOfServiceUrl = "<url>";          MaxSdkConfiguration.initialize(devKey, privacyPolicyUrl, termsOfServiceUrl, debugMode);
                                 } }
 
  | 
 
广告渠道配置文档:
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
   |  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
   |  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
   |  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
   |  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
   |  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
   |  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
   |  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) {              }                     }
  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
   |  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) {                }                       }      private void destroy() {            if (banner != null) {           banner.destroy();           banner = null;       }   }
 
  |