💡Tips
- 推荐使用标准化回调处理流程
- 自动刷新功能 请详见-HyperBid Tools控制台-应用管理-聚合单元-高级设置
- MREC(Medium Rectangle)标准尺寸为 300×250,适用于信息流和内容间穿插展示
Flutter SDK 提供两种方式加载 MREC 广告:程序化方式和 Widget 方式。
通过 McSdk 的静态方法创建并加载 MREC 广告,适用于需要精确控制广告生命周期的场景。
void initializeMRecAd() {
// 设置 MREC 广告回调监听
McSdk.setMRecListener(McAdViewAdListener(
onAdLoadedCallback: (McAd ad) {
// MREC 加载成功回调
},
onAdLoadFailedCallback: (String adUnitId, McError error) {
// MREC 加载失败回调
},
onAdClickedCallback: (McAd ad) {
// MREC 点击回调
},
onAdExpandedCallback: (McAd ad) {
// MREC 展开回调
},
onAdCollapsedCallback: (McAd ad) {
// MREC 折叠回调
},
onAdDisplayedCallback: (McAd ad) {
// MREC 展示成功回调
},
onAdRevenuePaidCallback: (McAd ad) {
// MREC 广告收益回调
},
onAdLoadFinishedCallback: (String adUnitId) {
// 本轮加载结束回调
},
));
loadMRecAd();
}
void loadMRecAd() {
// 设置场景 ID(可选)
McSdk.setMRecPlacement("your mediation unit id", "test_scenario_id_mrec");
// 创建 MREC 广告并指定展示位置
McSdk.createMRec("your mediation unit id", AdViewPosition.bottomCenter);
}
💡 Tips
- 调用
createMRec后,SDK 会自动开始加载广告。- 如果开启了自动刷新,SDK 会在刷新间隔到期后自动加载下一轮广告。
- 仅当自动刷新被暂停时,才需要手动调用
McSdk.loadMRec(adUnitId)重新加载。
AdViewPosition 支持以下位置枚举:
| 枚举值 | 说明 |
|---|---|
AdViewPosition.topCenter |
顶部居中 |
AdViewPosition.topRight |
顶部靠右 |
AdViewPosition.centered |
屏幕居中 |
AdViewPosition.centerLeft |
垂直居中靠左 |
AdViewPosition.centerRight |
垂直居中靠右 |
AdViewPosition.bottomLeft |
底部靠左 |
AdViewPosition.bottomCenter |
底部居中 |
AdViewPosition.bottomRight |
底部靠右 |
使用 McAdView 组件直接嵌入 Flutter Widget 树中,适用于需要灵活布局的场景。
final McAdViewController adViewController = McAdViewController();
Widget buildMRecAd() {
return McAdView(
adUnitId: "your mediation unit id",
adFormat: AdFormat.mrec,
controller: adViewController,
listener: McAdViewAdListener(
onAdLoadedCallback: (McAd ad) {
// MREC 加载成功回调
},
onAdLoadFailedCallback: (String adUnitId, McError error) {
// MREC 加载失败回调
},
onAdClickedCallback: (McAd ad) {
// MREC 点击回调
},
onAdExpandedCallback: (McAd ad) {
// MREC 展开回调
},
onAdCollapsedCallback: (McAd ad) {
// MREC 折叠回调
},
onAdDisplayedCallback: (McAd ad) {
// MREC 展示成功回调
},
onAdRevenuePaidCallback: (McAd ad) {
// MREC 广告收益回调
},
onAdLoadFinishedCallback: (String adUnitId) {
// 本轮加载结束回调
},
),
extraParameters: {"key": "value"},
localExtraParameters: {"key": value}
);
}
💡 Tips
- 如需手动刷新广告,可通过
McAdViewController调用loadAd()方法。- MREC 与 Banner 共用
McAdView组件,通过adFormat参数区分广告格式。
仅程序化方式需要手动控制展示与隐藏。Widget 方式由 Flutter Widget 生命周期自动管理。
// 展示 MREC 广告
McSdk.showMRec("your mediation unit id");
// 隐藏 MREC 广告
McSdk.hideMRec("your mediation unit id");
当不再需要 MREC 广告时,请及时释放资源以避免内存泄漏。
// 释放 MREC 广告资源
McSdk.destroyMRec("your mediation unit id");
💡 Tips
- 调用
destroyMRec后,该广告位的所有回调将停止触发。- 如需再次展示,需重新调用
createMRec创建广告。
通过自定义参数可以向广告平台传递额外配置信息。
// 设置额外参数,只用于 Max
McSdk.setMRecExtraParameter(
"your mediation unit id",
"mrec_test_extra_key",
"mrec_test_extra_value",
);
// 设置额外参数
McSdk.setMRecLocalExtraParameter(
"your mediation unit id",
"mrec_test_local_extra_key",
value,
);