横幅和 MREC 广告
在 Android 应用中集成 CloudX 横幅和 MREC 广告
CloudX 渲染的素材
CloudX 下发的素材由内置渲染器渲染,渲染器已内置于核心 SDK,无需单独的渲染器适配器模块。素材类型根据出价响应自动选择,发布者无需额外集成即可渲染任一格式。渲染器在各广告格式中支持 MRAID 3.0(HTML)和 VAST 素材:
| 广告格式 | HTML(MRAID 3.0) | VAST |
|---|---|---|
| Banner | ✓ | — |
| MREC | ✓ | — |
| Interstitial | ✓ | ✓ |
| Rewarded | ✓ | ✓ |
横幅广告 (320x50)
class MainActivity : AppCompatActivity(), CloudXAdViewListener, CloudXAdRevenueListener {
private lateinit var bannerAd: CloudXAdView
private fun createBannerAd() {
bannerAd = CloudX.createBanner(this, "your-banner-ad-unit-id")
bannerAd.listener = this
bannerAd.revenueListener = this
val layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
layoutParams.gravity = Gravity.CENTER_HORIZONTAL
findViewById<LinearLayout>(R.id.banner_container).addView(bannerAd, layoutParams)
}
// CloudXAdViewListener 回调
override fun onAdLoaded(cloudXAd: CloudXAd) {
Log.d("CloudX", "横幅广告已加载,来自 ${cloudXAd.networkName}")
}
override fun onAdLoadFailed(adUnitId: String, cloudXError: CloudXError) {
Log.e("CloudX", "横幅广告加载失败: ${cloudXError.message}")
}
override fun onAdClicked(cloudXAd: CloudXAd) {
Log.d("CloudX", "横幅广告被点击")
}
override fun onAdExpanded(cloudXAd: CloudXAd) {
Log.d("CloudX", "横幅广告已展开")
}
override fun onAdCollapsed(cloudXAd: CloudXAd) {
Log.d("CloudX", "横幅广告已折叠")
}
// CloudXAdRevenueListener 回调
override fun onAdRevenuePaid(cloudXAd: CloudXAd) {
Log.d("CloudX", "横幅竞价时收入: ${cloudXAd.revenue},来自 ${cloudXAd.networkName}")
}
override fun onDestroy() {
super.onDestroy()
bannerAd.destroy()
}
}public class MainActivity extends AppCompatActivity implements CloudXAdViewListener, CloudXAdRevenueListener {
private CloudXAdView bannerAd;
private void createBannerAd() {
bannerAd = CloudX.createBanner(this, "your-banner-ad-unit-id");
bannerAd.setListener(this);
bannerAd.setRevenueListener(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
layoutParams.gravity = Gravity.CENTER_HORIZONTAL;
((LinearLayout) findViewById(R.id.banner_container)).addView(bannerAd, layoutParams);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (bannerAd != null) {
bannerAd.destroy();
}
}
// CloudXAdViewListener 回调
@Override
public void onAdLoaded(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "横幅广告已加载,来自 " + cloudXAd.getNetworkName());
}
@Override
public void onAdLoadFailed(@NonNull String adUnitId, @NonNull CloudXError cloudXError) {
Log.e("CloudX", "横幅广告加载失败: " + cloudXError.getMessage());
}
@Override
public void onAdClicked(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "横幅广告被点击");
}
@Override
public void onAdExpanded(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "横幅广告已展开");
}
@Override
public void onAdCollapsed(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "横幅广告已折叠");
}
// CloudXAdRevenueListener 回调
@Override
public void onAdRevenuePaid(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "横幅竞价时收入: " + cloudXAd.getRevenue() + ",来自 " + cloudXAd.getNetworkName());
}
}横幅广告默认自动刷新。手动控制刷新:
bannerAd.stopAutoRefresh() // 停止自动刷新
bannerAd.load() // 手动加载新广告
bannerAd.startAutoRefresh() // 重新启用自动刷新bannerAd.stopAutoRefresh(); // 停止自动刷新
bannerAd.load(); // 手动加载新广告
bannerAd.startAutoRefresh(); // 重新启用自动刷新可选的广告位和自定义数据用于跟踪:
bannerAd.setPlacement("home_screen")
bannerAd.setCustomData("level:5,coins:100")bannerAd.setPlacement("home_screen");
bannerAd.setCustomData("level:5,coins:100");MREC 广告 (300x250)
class MainActivity : AppCompatActivity(), CloudXAdViewListener, CloudXAdRevenueListener {
private lateinit var mrecAd: CloudXAdView
private fun createMrecAd() {
mrecAd = CloudX.createMREC(this, "your-mrec-ad-unit-id")
mrecAd.listener = this
mrecAd.revenueListener = this
val layoutParams = LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
)
layoutParams.gravity = Gravity.CENTER_HORIZONTAL
findViewById<LinearLayout>(R.id.mrec_container).addView(mrecAd, layoutParams)
}
// CloudXAdViewListener 回调(与横幅广告相同)
override fun onAdLoaded(cloudXAd: CloudXAd) {
Log.d("CloudX", "MREC 广告已加载,来自 ${cloudXAd.networkName}")
}
override fun onAdLoadFailed(adUnitId: String, cloudXError: CloudXError) {
Log.e("CloudX", "MREC 广告加载失败: ${cloudXError.message}")
}
override fun onAdClicked(cloudXAd: CloudXAd) {
Log.d("CloudX", "MREC 广告被点击")
}
override fun onAdExpanded(cloudXAd: CloudXAd) {
Log.d("CloudX", "MREC 广告已展开")
}
override fun onAdCollapsed(cloudXAd: CloudXAd) {
Log.d("CloudX", "MREC 广告已折叠")
}
// CloudXAdRevenueListener 回调
override fun onAdRevenuePaid(cloudXAd: CloudXAd) {
Log.d("CloudX", "MREC 竞价时收入: ${cloudXAd.revenue},来自 ${cloudXAd.networkName}")
}
override fun onDestroy() {
super.onDestroy()
mrecAd.destroy()
}
}public class MainActivity extends AppCompatActivity implements CloudXAdViewListener, CloudXAdRevenueListener {
private CloudXAdView mrecAd;
private void createMrecAd() {
mrecAd = CloudX.createMREC(this, "your-mrec-ad-unit-id");
mrecAd.setListener(this);
mrecAd.setRevenueListener(this);
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.WRAP_CONTENT,
LinearLayout.LayoutParams.WRAP_CONTENT
);
layoutParams.gravity = Gravity.CENTER_HORIZONTAL;
((LinearLayout) findViewById(R.id.mrec_container)).addView(mrecAd, layoutParams);
}
@Override
protected void onDestroy() {
super.onDestroy();
if (mrecAd != null) {
mrecAd.destroy();
}
}
// CloudXAdViewListener 回调(与横幅广告相同)
@Override
public void onAdLoaded(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "MREC 广告已加载,来自 " + cloudXAd.getNetworkName());
}
@Override
public void onAdLoadFailed(@NonNull String adUnitId, @NonNull CloudXError cloudXError) {
Log.e("CloudX", "MREC 广告加载失败: " + cloudXError.getMessage());
}
@Override
public void onAdClicked(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "MREC 广告被点击");
}
@Override
public void onAdExpanded(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "MREC 广告已展开");
}
@Override
public void onAdCollapsed(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "MREC 广告已折叠");
}
// CloudXAdRevenueListener 回调
@Override
public void onAdRevenuePaid(@NonNull CloudXAd cloudXAd) {
Log.d("CloudX", "MREC 竞价时收入: " + cloudXAd.getRevenue() + ",来自 " + cloudXAd.getNetworkName());
}
}MREC 广告也默认自动刷新。使用与横幅广告相同的刷新控制方法。