设置原生广告

原生广告为您提供单个广告素材资源(例如标题、图片和提示文字),您可以对其进行样式设置和排列,使其与应用的视觉设计相符。为了处理点击跟踪、展示和媒体播放,Google Mobile Ads SDK for React Native 提供了以下组件:

如需详细了解如何以合规方式展示原生广告,请参阅使用原生高级广告格式的原生广告。

本页介绍了如何在 Android 上加载单个和多个原生广告、管理广告内存和生命周期,以及为视频广告启用硬件加速。

前提条件

在继续操作之前,请确保满足以下条件:

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 界面中呈现广告。如需了解详情,请参阅展示原生广告。