Return to Video

bl-yPp6CIGo

  • 0:00 - 0:04
    好,在了解显示插播式广告
    的代码之前,
  • 0:04 - 0:06
    我们先简略讨论一下插播式广告。
  • 0:06 - 0:10
    使用插播式广告时,
    有两件重要的事情需要考虑。
  • 0:10 - 0:14
    第一是
    插播式广告的格式。
  • 0:14 - 0:18
    我们知道,插播式广告
    会占用设备的整个屏幕。
  • 0:18 - 0:21
    因此,在用户专注使用
    您的应用时,不要去打扰他,
  • 0:21 - 0:23
    这一点很重要。
  • 0:23 - 0:28
    所以,要考虑的第一件重要的事情,
    是在应用的自然间隙
  • 0:28 - 0:34
    显示插播式广告,
    例如在游戏的两个等级之间显示广告。
  • 0:34 - 0:37
    插播式广告的第二件重要事情,
    是在显示插播式广告之前
  • 0:37 - 0:40
    准备加载。
  • 0:40 - 0:42
    为什么这件事很重要?
  • 0:42 - 0:46
    如果网络很慢,
    加载插播式广告会
  • 0:46 - 0:47
    耗费很长时间。
  • 0:47 - 0:52
    到了要显示插播式广告
    的时候,您不希望
  • 0:52 - 0:56
    用户坐等广告加载,
    您希望广告能立即显示。
  • 0:56 - 0:58
    因此,我们会预先加载。
  • 0:58 - 1:02
    在显示广告之前,
    我们会准备加载。
  • 1:02 - 1:04
    那么怎样准备呢?
  • 1:04 - 1:07
    首先,我们看一下
    插播式广告类。
  • 1:07 - 1:12
    该类用于
    加载与显示插播式广告。
  • 1:12 - 1:14
    它包含名为 loadAd 的方法,
  • 1:14 - 1:18
    但是该方法只会请求
    加载广告,为了避免
  • 1:18 - 1:20
    阻止 UI 线程,
  • 1:20 - 1:24
    在广告加载之前,
    该方法会立即返回。
  • 1:24 - 1:26
    那么我们怎么知道
    广告什么时候加载呢?
  • 1:26 - 1:31
    通过设置 AdListener,
    我们可以重载 onAdLoaded 方法。
  • 1:31 - 1:35
    在插播式广告完成加载时,
    会调用此方法,
  • 1:35 - 1:39
    这样我们就可以调用
    插播式广告的 show 方法了。
  • 1:39 - 1:42
    这就是我们将在应用中
    实施的流程。
  • 1:42 - 1:46
    您还应该知道,
    插播式广告包含名为 isLoaded 的方法。
  • 1:46 - 1:50
    如果您对确切了解
    加载广告的时间没兴趣,
  • 1:50 - 1:52
    那么只调用 loadAd 就行了。
  • 1:52 - 1:57
    到了要显示广告的时候,
    您可以检查是否已加载广告。
  • 1:57 - 2:00
    如果已经加载,
    您可以调用 show 方法。
  • 2:00 - 2:02
    否则,完全不会
    显示广告。
  • 2:02 - 2:04
    现在我们来检查
    实施这个流程的代码。
  • 2:06 - 2:09
    打开
    InterstitialActivity Java 文件。
  • 2:09 - 2:14
    首先,我们添加了名为 mInterstital
    的 InterstitialAd 字段,
  • 2:14 - 2:19
    对 onCreate 方法
    不做任何更改。
  • 2:19 - 2:21
    接下来我们看一下
    loadInsterstitial 方法。
  • 2:21 - 2:24
    这段代码应该已经存在,
    因为我们在之前的练习中
  • 2:24 - 2:25
    已经设置过。
  • 2:25 - 2:27
    然后我们看一下其他代码。
  • 2:27 - 2:31
    首先,我们将创建
    InterstatialAd 的实例。
  • 2:31 - 2:33
    然后设置 AdUnitId。
  • 2:33 - 2:37
    我们将其设置为 this 字符串,
    该字符串将返回测试 InterstitialAds。
  • 2:37 - 2:40
    我们已经在资源字符串文件中
    定义了 this 字符串,因此必须
  • 2:40 - 2:45
    依次使用 getResources().getString
    与资源 ID 来获得该字符串。
  • 2:45 - 2:47
    现在来看一下
    我们谈论的流程。
  • 2:47 - 2:51
    在这里您可以看到,我们设置了
    InterstitialAd 的侦听器。
  • 2:51 - 2:53
    我们稍后会谈论这个侦听器。
  • 2:53 - 2:57
    先在这里设置侦听器,
    然后在这里执行。
  • 2:57 - 3:01
    现在您可以看到,我们
    使用生成器创建 AdRequest。
  • 3:01 - 3:06
    然后在 InterstitialAd 实例上
    调用 loadAd。
  • 3:06 - 3:09
    以自变量的形式提供 AdRequest,
    我们之前曾知道,
  • 3:09 - 3:12
    该方法将启动
    广告加载流程,但是
  • 3:12 - 3:16
    在广告加载之前,
    该方法会立即返回。
  • 3:16 - 3:19
    在这里,侦听器开始运行,
    您可以看到,
  • 3:19 - 3:23
    我们根据 ToastAdListener 类,
    在这里创建匿名类。
  • 3:23 - 3:27
    您可以看到,
    我们重载 onAdLoaded 方法。
  • 3:27 - 3:29
    由于我们在这里
    设置了侦听器,
  • 3:29 - 3:33
    因此在完成广告加载时,
    将调用该方法。
  • 3:33 - 3:36
    我们调用会显示烤面包消息
    的父方法,
  • 3:36 - 3:39
    在此之后是我们在
    ToastAdListener 类中定义的内容。
  • 3:41 - 3:45
    然后,我们将禁用按钮的文本
    设置为“显示插播式广告”。
  • 3:45 - 3:47
    我们还启用了该按钮。
  • 3:47 - 3:50
    这意味着用户
    现在可以按下该按钮。
  • 3:50 - 3:51
    按下该按钮时,
  • 3:51 - 3:55
    将调用 showInterstitial
    回调方法。
  • 3:55 - 3:57
    因此会执行
    showInterstitial。
  • 3:57 - 4:01
    简单检查一下
    是否已经加载插播式广告,
  • 4:01 - 4:03
    这似乎是不必要的检查,
  • 4:03 - 4:07
    因为我们知道
    自调用 onAdLoaded 后已加载广告,
  • 4:07 - 4:09
    但是我们还是要检查一下。
  • 4:09 - 4:12
    随后,真正显示插播式广告
    的时候到了,
  • 4:12 - 4:16
    显示广告时,
    实际上会以全屏模式显示。
  • 4:17 - 4:19
    对于按钮,
    我们回到之前的状态,
  • 4:19 - 4:23
    将文本设置为“插播式广告未准备就绪”,
    然后禁用。
  • 4:23 - 4:26
    最后,回到侦听器。
  • 4:26 - 4:30
    如果无法加载广告,将调用
    onAdFailedToLoad 方法。
  • 4:30 - 4:34
    在这个示例中,我们会再次
    显示烤面包的消息,
  • 4:34 - 4:37
    然后将 ErrorReason
    设置为按钮的文本。
  • 4:37 - 4:41
    就是这些,这就是我们
    实施插播式广告的代码。
Cím:
bl-yPp6CIGo
Leírás:

bl-yPp6CIGo

more » « less
Video Language:
English
Team:
Udacity
Projekt:
ud876-3 - Google Play Services - AdMob
Duration:
04:42

Chinese, Simplified subtitles

Felülvizsgálatok Compare revisions