AI Search

原生广告

InMobi原生广告支持静态广告和视频广告。您可以选择信息流广告、启动画面广告或前置广告格式。创建原生广告位的步骤如下。

设置原生广告

InMobi原生广告支持静态广告和视频广告。您可以选择信息流广告、启动广告或前置广告格式。创建原生广告位的步骤如下。

  1. 从左侧导航栏中选择“库存” >“库存设置”
  2. 搜索您想要创建广告位的应用或网站,然后点击+ 添加广告位
  3. 点击“选择广告单元”,然后选择“原生广告”
  4. 点击“添加位置”开始设置您的 Native 设置。

原生广告位创建完成后,您将能够看到广告位 ID。

 

在您的应用中添加原生广告

创建原生广告

要创建原生广告,请创建一个InMobiNative实例:

  • Java
  • Kotlin

Java

Kotlin

以下nativeAdEventListener是抽象类的一个实现NativeAdEventListener。创建原生广告必须提供此接口的实现。如果在未进行 SDK 初始化的情况下创建 InMobiNative 对象,将会抛出异常。

强制的

您必须向InMobiNative构造函数提供一个 Context 实现。请确保您的实现持有强引用InMobiNative,否则您将无法从 SDK 获取此引用的任何回调。这可以通过将其设为类的成员变量或将其存储在贯穿应用程序生命周期的集合中来实现。

  • inMobiNative应该始终是一个强引用,否则您可能不会收到此引用的任何回调(加载成功、加载失败等)。
  • 如果inMobiNative被任何变量引用,请确保它是强引用。
  • 使用安卓系统分析器确保它inMobiNative不会因为垃圾回收而被删除。

NativeAdEventListener抽象类允许您监听原生广告的关键生命周期事件。

  • Java
  • Kotlin

Java

Kotlin

VideoEventListener抽象类允许您监听原生广告的视频生命周期事件。

  • Java
  • Kotlin

Java

Kotlin

正在加载原生广告

InMobiNative要请求原生广告,请对您上面创建的实例调用 load() 方法:

  • Java
  • Kotlin

Java

Kotlin

NativeAdEventListener 抽象类会通知此方法的结果。如果广告请求成功,onAdReceived(InMobiNative)则会生成一个事件。随后会生成另一个onAdLoadSucceeded事件onAdLoadFailed。如果生成了另一个事件,则该事件传递的对象onAdLoadFailed会指示请求成功的原因。InMobiAdRequestStatus

收听视频活动

要接收视频事件,请使用上面创建的实例上的(VideoEventListener )videoEventListener方法进行注册:setVideoEventListenervideoEventListenerInMobiNative

  • Java
  • Kotlin

Java

Kotlin

抽象VideoEventListener类会通知您有关原生广告的视频事件。

原生广告 API

以下是一些InMobiNative有助于拼接广告的重要 API:

核心广告数据 API

  • String getAdTitle()- 返回广告的标题文本。
  • String getAdDescription()- 返回广告的描述文本。
  • AdAsset getAdIcon()- 返回图标资源对象。用于getAdIcon().url 获取图标图像 URL。
  • String getCtaText()- 返回广告的号召性用语文本。
  • Float getAdRating()- 返回广告评分(可选,如果无评分则返回 0)。
  • String getAdvertiserName()- 返回广告的广告商/赞助商名称。

视图渲染 API

  • View getMediaView()- 返回包含广告图片或视频内容的媒体视图。此视图应添加到您的媒体容器(FrameLayout)中。
  • View getAdChoiceIcon()- 返回 AdChoices 图标视图。请将其添加到您的 AdChoices 容器中。
  • boolean isReady()- 当广告准备好显示时,返回 true。
  • Boolean isVideo()- 如果广告包含视频内容,则返回 true;否则返回 false;如果在无效状态下调用,则返回 null。

查看注册

  • void registerViewForTracking(InMobiNativeViewData viewData)- 将您的自定义广告视图注册到 InMobi SDK,以便进行展示跟踪和点击处理。这是至关重要的一步:
    • 启用自动曝光跟踪
    • 设置已注册视图的点击处理
    • 将您的用户界面元素与广告数据关联起来

要注册视图,请使用 InMobiNativeViewData.Builder 类:

  • Java
  • Kotlin

Java

Kotlin

其他 API

  • JSONObject getCustomAdContent()- 返回一个 JSONObject,其中包含自定义 UI 实现的附加信息(描述、图像 URL 等)。

拼接原生广告

原生广告可以以三种格式嵌入到您的应用中:

  • 信息流广告
  • 飞溅广告
  • 前置广告

信息流广告整合

  1. 在您的信息流中声明您希望展示广告的广告位。

    例如,要在第四位展示广告:

    • Java
    • Kotlin

    Java

    Kotlin

  2. 如果广告加载成功,您将收到一个回调onAdLoadSucceeded(InMobiNative)。然后,您应该InMobiNativeAd在该监听器中将该对象添加到数据源中。如果您的应用内信息流是 `<head>` 标签,则以下是ListView一个示例实现:ListView

    • Java
    • Kotlin

    Java

    Kotlin


    在上述步骤中,AdFeedItem是你的类的扩展类FeedItem,其中FeedItem是为你的每行提供支持的类ListView。此外,mItems也是ArrayList为该适配器提供支持的类ListView
  3. 目前,我们已经加载了广告并将其添加到您的数据源中。现在,是时候展示广告了。示例实现ListView如下:

    • Java
    • Kotlin

    Java

    Kotlin

    该函数getItemViewType(position)检查内容类型是 FEED 还是 AD,如下所示:

    • Java
    • Kotlin

    Java

    Kotlin


    我们已使用上文所述部分 API 来显示广告的标题、描述和行动号召 (CTA) 文本。类似地,其他 API 也可用于显示广告的相应部分。

启动画面集成

可以使用相同的 InMobiNative 类来实现启动画面体验。但是,有几点需要注意:

  • 您应该使用InMobiNativeAd.isReady()函数来判断广告是否可以展示。有时,您的主线程可能被占用,因此您可能无法onAdLoadSucceeded及时收到通知。所以,最好在截止时间过后主动检查广告是否已准备就绪。
  • 重要提示:如果广告的第二个屏幕正在显示,则不应销毁或刷新该广告。您可以在代码中进行检查,onAdFullScreenDisplayed如果此回调被触发,则不应关闭广告。

以下是一个示例实现:

  • Java
  • Kotlin

Java

Kotlin

前置广告整合

可以使用同一个类来实现前置视频广告体验InMobiNative。您需要注册该功能videoEventListener,并在以下回调函数中关闭广告展示:

  • Java
  • Kotlin

Java

Kotlin

可以通过以下方式关闭前置广告:

  • Java
  • Kotlin

Java

Kotlin

  • Java
  • Kotlin

Java

Kotlin

刷新原生广告

为了优化广告对用户的曝光度,您需要在不同时间点刷新广告。要刷新广告,您需要按以下顺序调用相应函数。

笔记

在刷新之前,务必adFeedItem从数据源中移除并销毁该对象。然后,您需要创建一个新对象并调用 load 方法,如下面的代码所示:

  • Java
  • Kotlin

Java

Kotlin

管理 InMobiNative 实例

  1. 每个实例都InMobiNative代表一个广告。
  2. 如果要在内容流中的多个位置投放广告,请创建InMobiNative与广告位置数量相同的实例。
  3. 你应该在Activity 的回调函数中或 Fragment 的回调函数中InMobiNative创建实例onCreate()onActivityCreated()
  4. 你应该InMobiNativeonDestroy()Activity 的回调函数或OnDestroyView()Fragment 的回调函数中销毁实例。
  5. 一旦从数据源中移除对象InMobiNativeAd,就必须将其销毁。销毁后,所有用户与广告视图的交互都将失效InMobiNativeAd。因此,在销毁广告视图之前,务必先将其丢弃InMobiNativeAd
  6. InMobiNativeAd当承载它们的组件(在本例中是您的 Activity)使用 destroy() API 被销毁时,所有实例也必须被销毁。

本页内容

最后更新于 : 21 Jul, 2026