原生广告为您提供单个广告素材资源(例如标题、图片和提示文字),您可以对其进行样式设置和排列,使其与应用的视觉设计相符。为了处理点击跟踪、展示和媒体播放,Google Mobile Ads SDK for React Native 提供了以下组件:
如需详细了解如何以合规方式展示原生广告,请参阅使用原生高级广告格式的原生广告。
本页介绍了如何在 Android 上加载单个和多个原生广告、管理广告内存和生命周期,以及为视频广告启用硬件加速。
前提条件
在继续操作之前,请确保满足以下条件:
- 设置 Google Mobile Ads SDK for React Native。
- 启用测试广告并使用以下测试广告单元 ID:
Android
| 格式 | 示例广告单元 ID |
|---|---|
| 原生 | ca-app-pub-3940256099942544/2247696110 |
| 原生视频 | ca-app-pub-3940256099942544/1044960115 |
iOS
| 格式 | 示例广告单元 ID |
|---|---|
| 原生 | ca-app-pub-3940256099942544/3986624511 |
| 原生视频 | ca-app-pub-3940256099942544/2521693316 |
加载广告
如需加载原生广告,请调用 NativeAd.load 方法,并传入包含广告单元 ID 的 NativeAdRequest 对象。此方法会返回一个 promise,该 promise 会使用加载的 NativeAd 对象进行解析,或使用 LoadAdError 对象进行拒绝。
以下示例会加载单个原生广告,在成功时返回加载的广告,在失败时记录出错提示:
export async function loadNativeAd(adUnitId: string): Promise<NativeAd | null> {
try {
const ad = await NativeAd.load({adUnitId});
return ad;
} catch (error) {
const loadError = error as LoadAdError;
console.error('Failed to load native ad:', loadError.message);
return null;
}
}
在加载和管理原生广告时,我们建议您执行以下操作:
- 限制加载的广告数量:原生广告素材资源会消耗内存。仅加载用户即将看到的广告(例如接下来的 1 到 2 个广告展示位置),而不是一次性加载大量广告。
- 清理已卸载的广告:当您从屏幕中移除或替换广告时,或者当包含广告的组件卸载时,请调用
ad.destroy方法。此方法会释放广告使用的资源和内存。 - 在一小时内展示加载的广告:原生广告素材会在 60 分钟后过期。如果您在一小时内未展示已加载的广告,请销毁该广告并请求另一个广告。
可选:加载多个广告
如需在一次请求中加载多个广告,请使用 NativeAdRequest 对象、要请求的广告数量和 NativeAdLoadCallback 对象调用 NativeAd.loadAds 方法。该请求最多可包含 5 个广告。
以下示例请求多个原生广告,并使用回调处理每个加载的广告、加载错误和请求完成:
export function loadMultipleNativeAds(adUnitId: string, numAds: number): void {
NativeAd.loadAds({adUnitId}, numAds, {
// Called when an individual native ad finishes loading.
onNativeAdLoad: (ad) => {
console.log('Loaded native ad:', ad.headline);
},
// Called when an individual native ad fails to load.
onAdFailedToLoad: (error) => {
console.error('Failed to load native ad:', error.message);
},
// Called when all requested ads have finished loading.
onAdLoadingCompleted: () => {
console.log('All requested native ads finished loading.');
},
});
}
如果您在可滚动的信息流中展示广告,请提前加载广告。此流程可让广告在用户访问时呈现。
启用硬件加速功能
如需在 Android 上的原生广告视图中展示视频广告,请启用硬件加速。
默认情况下,Android 会启用硬件加速。应用可能会全局停用硬件加速。如果您的应用在全局范围内停用了硬件加速,请为展示广告的 Activity 类启用该设置。
如果您全局启用了硬件加速,但应用未按预期运行,请针对个别 activity 控制硬件加速。
如需启用或停用硬件加速,请针对 AndroidManifest.xml 文件中的 application 和 activity 元素使用 android:hardwareAccelerated 属性。
以下示例展示了如何为应用全局启用硬件加速,但为一个 activity 停用该设置:
<application android:hardwareAccelerated="true">
<!-- For activities that use ads, hardwareAcceleration should be true. -->
<activity android:hardwareAccelerated="true" />
<!-- For activities that don't use ads, hardwareAcceleration can be false. -->
<activity android:hardwareAccelerated="false" />
</application>
后续步骤
加载广告后,使用 NativeAdView 和 NativeAdMediaView 组件在 React Native 界面中呈现广告。如需了解详情,请参阅展示原生广告。