この記事は Chet Haase による Android Developers - Medium の記事 "Now in Android #32" を元に翻訳・加筆したものです。詳しくは元記事をご覧ください。


Android 開発の最新ニュースやトピックをご紹介する Now in Android。今回はKotlin と Jetpack の API、Navigation についての新コース、最近公開されたブログ記事・動画・関連ドキュメント、ポッドキャスト エピソードなどをご紹介します。


最先端の Android 開発(MAD): Kotlin と Jetpack


最先端の Android 開発に関する技術コンテンツを扱う連載シリーズ MAD Skills の新しいミニシリーズ Kotlin で Jetpack API を使用する が順調に進んでいます。最初のエピソードを紹介した前回以降、3 つのエピソードが追加されました。この 3 つのエピソードでは、大まかに言えば Room ライブラリと WorkManager ライブラリの使い方に関する情報をお届けしていますが、コルーチンなどの Kotlin 機能を使ってコードをシンプルにする具体的な方法にも触れています。

Room Kotlin API の使用

このエピソードでは、Florina Muntenescu が、Room Kotlin API を使ってローカル データベース ストレージ要件を実現し、それをテストする方法について説明します。



ブログ記事(英語)でもご覧いただけます。


WorkManager Kotlin API の使用


このエピソードでは、Florina が WorkManager を使って非同期作業をスケジュールする方法を説明します。これは、すぐに実行することも、遅延実行することもできます。



ブログ記事(英語)でもご覧いただけます。


コミュニティ ヒント: Kotlin で開発のスピードと質を向上


Android の Google Developer Expert の Magda Miu さんとチームメンバーは、Kotlin を使ってわかりやすく、メンテナンスしやすい CameraX のベンダー拡張機能を記述しています。その方法について動画で説明してくれました。



Kotlin と Jetpack シリーズの締めくくりとして、1 月 15 日にからもう一度リアルタイム Q&A を開催しました。



1 月 18 日の週から、新しい MAD Skills シリーズが始まっています。連載中のコンテンツは、YouTube の MAD Skills プレイリストMedium の記事、またはすべてのリンクが掲載されているランディング ページからご覧いただけます。


Android トレーニング

Android Basics in Kotlin コースに新しいユニット「Unit 3: Navigation」が追加されました。

このユニットでは、Navigation コンポーネントAndroid アーキテクチャ コンポーネント ライブラリのその他の API に関するチュートリアルとサンプルを確認できます。


その他の最近公開されたブログ記事と動画


暗号と生体認証

Isai Damier が暗号と認証、セキュリティについての新しい記事(英語)を公開しました。暗号に関するさまざまな興味深い背景を取り上げながら、暗号を利用した安全なソリューションで生体認証が用いられることが多い理由について説明しています。


Kotlin の生産性

Florina Muntenescu が、Kotlin を使えば生産性が上がるという記事を公開しました。既にたくさんの Kotlin コードを書いている方なら、おそらくご存知のことでしょう。しかし、仕事で Kotlin を使うべきか迷っている方や、プロジェクトの他のメンバーを説得する方法を探している方なら、この記事に書かれている具体的な内容が役立つかもしれません。


RecyclerView で onClick() を扱う

Meghan Mehta が RecyclerView に関する連載シリーズの第 3 回目のブログ記事(英語)を公開しました。RecyclerView でよくある要件の 1 つが、ユーザーのクリックへの対応です。リストの項目をクリックすれば、通常は何かが起こります。記事では、この機能を扱うおすすめの方法を紹介します。


ADB (Android Developers Backstage) ポッドキャスト 新エピソード


前回の Now in Android 以降、Android Developers Backstage に新しいエピソードが投稿されています。以下のリンクまたはお気に入りのポッドキャスト クライアントでご確認ください。

ADB 154: It’s a Wrap!

2020 年末、Tor NorbyeRomain Guy、そして私がこのエピソードを収録しました。昨年、それまでとは違う働き方を模索する中で起きたことや、Android のツールやプラットフォームの最新機能について解説しています。

 


またお会いしましょう

今回は以上です。次回も Android デベロッパーの世界の最新アップデートをお届けします。お楽しみに。


Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC


今回は MAD Skills シリーズの 1 つ、Kotlin と Jetpack についての動画と記事をまとめました。Android コードの表現力と簡潔さ、安全性を向上させ、Kotlin で非同期コードを実行しやすくするさまざまな方法を取り上げています。

それぞれのエピソードから、Kotlin と Jetpack についての最新情報をご確認ください。いくつかの具体的な API を取り上げ、API の使い方だけでなく、API が内部的にどのように動作しているか解説しています。また、すべてのエピソードには対応するブログ投稿があり、そのほとんどにサンプルか Codelab へのリンクが含まれているので、実際に試してみたり、コンテンツに関する理解を深めたりできます。また、Jetpack や Kotlin のエンジニアが登場するリアルタイム Q&A も実施しました。

エピソード 1 - KTX ライブラリの使用

このエピソードでは、Jetpack KTX 拡張機能を使って、Android と Jetpack のコーディングを簡単、快適、そして Kotlin らしくする方法を取り上げました。現在のところ、20 以上のライブラリに KTX 版があり、その中から特に重要なものを紹介します。core-ktx は、Android プラットフォームに由来する API を Kotlin らしく書けるようにする機能を提供しています。また、LiveData や ViewModel などの API と組み合わせてユーザー エクスペリエンスの向上を図れるいくつかの Jetpack KTX ライブラリも紹介します。

動画またはブログ記事(英語)をご覧ください。


エピソード 2 - コルーチンと Flow で API をシンプルに

エピソード 2 では、コルーチンと Flow を使って API をシンプルにする方法と、suspendCancellableCoroutine API と callbackFlow API を使って独自のアダプタを作る方法について説明します。このトピックを実際に試してみたい方は、Kotlin 拡張機能ライブラリの作成 Codelab をご覧ください。

動画を視聴するか、ブログ記事(英語)でご確認ください。


エピソード 3 - Room Kotlin API の使用とテスト

このエピソードでは、実際に Room を使ってみます。その上で、Kotlin を使って Room のテーブルやデータベースを作る方法、挿入などの 1 回限りの suspend 操作を実装する方法、Flow を使った監視可能クエリーについて簡単に確認します。コルーチンと Flow を使うと、Room はすべてのデータベース操作をバックグラウンド スレッドに移してくれます。Room のクエリーの実装方法やテスト方法については、動画またはブログ記事(英語)をご覧ください。実際に試してみたい方は、ビューで Room を使う Codelab をご覧ください。



 エピソード 4 - WorkManager Kotlin API の使用

エピソード 4 では、WorkManager を使って作業を簡単にする方法について説明します。この機能を使うと、非同期タスクのスケジュールを設定して、アプリが閉じられた場合や、デバイスが再起動した場合にも実行されることが期待されるタスクを、即時実行または遅延実行できます。このエピソードでは、WorkManager の基本について説明し、CoroutineWorker などの Kotlin API についても解説しています。


こちらの動画またはこちらのブログ記事(英語)をご覧ください。また、ぜひ WorkManager Codelab で実際に体験してみてください。



エピソード 5 - コミュニティ ヒント

エピソード 5 では、Android の Google Developer Expert の Magda Miu さんが Kotlin の基本 API と CameraX を使った経験についてお話ししています。



エピソード 6 - リアルタイム Q&A

最後のエピソードでは、リアルタイム Q&A を実施しました。司会の Chet Haase のほか、ゲストとして Architecture Components テックリードの Yigit Boyar、Kotlin プロダクト マネージャーの David Winer、そしてデベロッパー リレーションズ エンジニアの Manuel Vivoが参加し、YouTube、Twitter などから寄せられた質問に回答しています。



Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC

Kotlin は簡潔なプログラミング言語として知られています。そしてそれは、高い生産性を意味します。そして実際に、Kotlin を使っている Android デベロッパーの 67% が、生産性が向上したと述べています。このブログ投稿では、Kotlin を使ってパートナーのエンジニアたちが生産性を向上させた方法をいくつか共有し、そのために役立つ Kotlin の機能も紹介します。


簡潔さ、シンプルさと生産性

  • Kotlin の簡潔さは、開発のあらゆる段階で効果を発揮します。

  • コードの作成者は、構文ではなく、解決しなければならない問題に集中できます。 テストやデバッグするコードが少なくなれば、バグが生まれる可能性も少なくなります。

レビューやメンテナンスの担当者は、読むコードが少なくなるので、コードが行っていることを理解しやすくなります。そのため、レビューやメンテナンスが楽になります。

その一例として、Flipkart のチームを紹介しましょう。

「弊社の社内調査によると、デベロッパーの 50% が、Kotlin でモジュールを書くと [機能を完成させるまでの] 見積りが小さくなると回答しました」(Flipkart)


Kotlin の機能と生産性

Kotlin の機能のほとんどは、簡潔さと高い可読性を持つため、高い生産性につながります。特によく使われる機能について見てみましょう。


デフォルト引数とビルダー

Java プログラミング言語では、コンストラクタのパラメータが省略可能な場合、一般的に次の 2 つの方法のどちらかを利用します。

Kotlin ではデフォルト引数を利用できるので、どちらも必要ありません。デフォルト引数を使うと、ボイラープレートを追加することなく、関数のオーバーロードを実装できます。

Cash App チームが Kotlin を使い始めたとき、多くのビルダーを削減し、書く必要があるコードの量を減らすことができました。場合によっては、コードのサイズが 25% 少なくなりました。

たとえば、以下の一例は、 Task オブジェクトの実装で、タスクの名前のみが必須パラメータになっています。ビルダーを使った場合と、デフォルト引数を使った場合でそれぞれどうなるかを示しています。

/* Copyright 2020 Google LLC.

   SPDX-License-Identifier: Apache-2.0 */


- public class Task {

-     private final String name;

-     private final Date deadline;

-     private final TaskPriority priority;

-     private final boolean completed;

-

-     private Task(String name, Date deadline, TaskPriority priority, boolean completed) {

-         this.name = name;

-         this.deadline = deadline;

-         this.priority = priority;

-         this.completed = completed;

-     }

-

-     public static class Builder {

-         private final String name;

-         private Date deadline;

-         private TaskPriority priority;

-         private boolean completed;

-

-         public Builder(String name) {

-             this.name = name;

-         }

-

-         public Builder setDeadline(Date deadline) {

-             this.deadline = deadline;

-         return this;

-         }

-

-         public Builder setPriority(TaskPriority priority) {

-             this.priority = priority;

-             return this;

-         }

-

-         public Builder setCompleted(boolean completed) {

-             this.completed = completed;

-             return this;

-         }

-

-         public Task build() {

-             return new Task(name, deadline, priority, completed);

-         }

-     }

-}

+ data class Task(

+     val name: String,

+     val deadline: Date = DEFAULT_DEADLINE,

+     val priority: TaskPriority = TaskPriority.LOW,

+     val completed: Boolean = false

+) 


デフォルト引数の詳細については、連載シリーズ Kotlin Vocablary のブログ記事「Kotlin のデフォルト引数」をご覧ください。


オブジェクトとシングルトン

おそらく、シングルトン パターンはソフトウェア開発で特によく使われるパターンの 1 つでしょう。オブジェクトのインスタンスを 1 つだけ作成し、他のオブジェクトから共有してアクセスできるようにしたい場合に役立ちます。

シングルトンを作るには、インスタンスが 1 つだけ存在するようにオブジェクトの作成方法を制御し、コードがスレッドセーフであることを保証する必要があります。Kotlin では、object キーワードだけでこれを実現できます。

 /* Copyright 2020 Google LLC.

   SPDX-License-Identifier: Apache-2.0 */

   

- public class Singleton{

-    private static volatile Singleton INSTANCE;

-    private Singleton(){}

-    public static Singleton getInstance(){

-        if (INSTANCE == null) {                // Single Checked

-            synchronized (Singleton.class) {

-                if (INSTANCE == null) {        // Double checked

-                    INSTANCE = new Singleton();

-                }

-            }

-        }

-        return INSTANCE;

-    }

-    private int count = 0;

-    public int count(){ return count++; }

- }


+ object Singleton {

+     private var count = 0

+     fun count(): Int {

+         return count++

+     }+ }

演算子、文字列テンプレートなど

Kotlin 言語の簡潔さとシンプルさは、演算子オーバーロード、分割代入、文字列テンプレートなどの機能から明らかです。そのため、コードはとても読みやすくなります。

たとえば、本を集めたライブラリがあるとしましょう。ライブラリから本を取り出し、そのタイトルだけを出力する場合、コードは次のようになります。

/* Copyright 2020 Google LLC.

   SPDX-License-Identifier: Apache-2.0 */


fun borrow(){

    library -= book

    val (title, author) = book

    println("Borrowed $title")

} 


使われている Kotlin の機能は次のとおりです。


 

まとめ

Kotlin を使うと、コードは読みやすく、書きやすくなります。シングルトン委譲などのパターンが言語に組み込まれており、たくさんのコードを書く必要がないため、バグが紛れ込む確率が低くなり、メンテナンスの負荷も軽減されます。また、文字列テンプレートラムダ式エクステンション関数演算子オーバーロードなどの機能で、コードをさらに簡潔かつシンプルにできます。書くコードが少なくなれば、読むコードやメンテナンスするコードも少なくなり、エラーが減って生産性が上がります。


詳しくは、Kotlin と Android Kotlin でより優れたアプリを作成するをお読みください。また、各社のケーススタディをご覧ください。デベロッパーにとっての Kotlin のメリットが確認できます。世界で特に好まれている開発言語の 1 つである Kotlin を使ってみたい方は、入門ページをご覧ください。

Reviewed by Yuichi Araki - Developer Relations Team and Hidenori Fujii - Google Play Developer Marketing APAC

事前アクセスパートナーの自動車向けアプリ : Tmap, PlugShare, 2GIS


まもなく Play ストアのオープンテスト トラックが公開できるよう準備をしています。ぜひ、事前にクローズド テストトラックにアプリを公開してお待ちください。多くのデベロッパーのみなさんが開発した自動車用アプリがリリースされるのを楽しみにしております。

Reviewed by Hidenori Fujii - Google Play Developer Marketing APAC and Jake Hirakawa - Partner Development Manager, Android Auto


GDG のコミュニティ活動に参加されてから、どのような変化があったのか、辰濱さんのストーリーをお聞きください。


GDG オーガナイザー インタビュー #4




Q: 自己紹介をお願いします。


辰濱健一と申します。大学卒業後、徳島県内のソフトウエア開発会社への就職し、転職をした現在も徳島県内にて Android アプリ開発に携わっています。趣味は楽器演奏と旅行です。




Q: GDG の活動に参加しようと思ったきっかけは何ですか?


四国で Android の勉強会が開催されていたのが大きいですね。
GDG を知る前ぐらいの時期は、社内での Android エンジニアがごく少数だったのもあり、Android についてより深く学びたいニーズと GDG の存在がマッチしました。



Q: GDG の活動に参加してみて、いかがですか?何か変わったことはありますか?


初めのうちは参加者として学ばせてもらう側でした。何度か参加していくうちに、LT などで自分の持っている知見をみなさんに共有するようになったり、スタッフとして運営のお手伝いに関わるようになりました。

そして今はオーガナイザとして、イベントの企画や運営を行う側になっています。ほんの数年で GDG との関わり方がガラッと変わりました。

新しい技術やサービスをキャッチ アップするときも「今の仕事をより上手くこなすために」という姿勢から、「みなさんにも知見を共有できるように」という姿勢に変わりました。その甲斐あってか、以前よりも自分の中での新しい技術やサービスの理解が深まっている気がしています。



Q: コミュニティ活動をしていて、良かった点は何ですか?


どんどん知り合いが増えていくことと、そこから得られる情報や刺激が増えたことですね。GDG のイベントに参加することで、社内のエンジニアしか関わりがなかった状態から、徳島県内の他社のエンジニアとも知り合うことができました。

次第に四国や関西の方とも知り合い、今となっては日本各地だけではなく、海外にも知り合いが増えました。知り合いが増えたことで、視野が広がったり、SNS などを通じて多くの有益な情報が入ってきたり、色んな情報交換ができたり、たくさんの刺激をもらうことができています。



Q: これから、GDG Shikoku として、どういったことをしていきたいですか?


四国でのイベントはそこまで参加者が多くないので、参加者のニーズにマッチしたイベントを開催していきたいと思っています。また、四国外からも参加者が来たくなるようなイベントを企画して、四国と他地域のエンジニアが交流できる場にもしていきたいと思っています。






辰濱さん、どうもありがとうございました。GDG Shikoku の次のイベントは、「Android Kotlin Codelabs ハンズオン&質問会」です。オンライン開催のため、他地域の方々も奮ってご参加ください。詳細とお申し込みは、こちらのページをご覧ください。



このブログを読んでくださっている皆さんも、「普段、一緒に勉強する仲間が欲しい」と思ったことはありませんか?ぜひ、お近くの GDG チャプターを探してみてください。


詳しくはこちら → https://goo.gle/2XfrMPK
最寄りのチャプターを探すにはこちら→ https://goo.gle/3bpm4i2



お住まいの地域に GDG がない、GDG のコミュニティ活動を新たに始めてみたいという方がいましたら、こちらのページよりぜひご応募ください。


皆さまからのご応募をお待ちしております。




Posted by Takuo Suzuki - Developer Relations Team & Mari Okazaki - Developer Community Manager

MAD Skills シリーズを通して最先端の Android 開発(MAD)についてさまざまなことをお話ししてきました。そして今回は、皆さんの MAD スコアについてお知らせします。2020 年 12 月 15 日(日本時間 12 月 16 日)、MAD スコアカードを公開しました。これは、皆さんが使っている Jetpack ライブラリの数や、Kotlin でコーディングしているアプリの割合などを使い、皆さんの Andorid 開発がどれだけ最新であるかを示すスコアです。 


MAD スコアカードは Android Studio を使って、アプリが Android App Bundle でどれくらいサイズを削減したかなどの情報を示します。また、特定の Jetpack ライブラリや Kotlin 機能など、皆さんが使う可能性がある主要な MAD テクノロジーにもそれぞれスポットライトを当てています。さらに、皆さんの最も MAD なスキルに基づいて、特別な MAD キャラクターも表示されます。

スコアカードを確認する方法

ご自身の MAD スコアは、新しい Android Studio プラグインを通じて確認できます。スコアカードを確認して共有する方法は、以下のとおりです。 

  • ステップ 1 - プラグインをインストールする: Android Studio のプラグイン マーケットプレイスで、MAD スコアカードプラグインを探してダウンロードします。Studio 経由で簡単にすばやくインストールできます。

  • ステップ 2 - プラグインを実行する: MAD スコアカード プラグインは、Studio のメインメニューの [Analyze] に常に表示されます。[Analyze]、[Run] の順にクリックすると、自分のスコアカードの作成が始まります。

  • ステップ 3 - スコアカードを見て共有する: プラグインの実行が完了すると、パーソナルリンクを記載した通知が Studio に表示され、そこからスコアカードの詳しい情報をすべて表示できます。この結果は、他のユーザーと共有することもできます。

MAD Skills シリーズでレベルアップ

スコアカードを確認できたら、MAD Skills の各エピソードもご覧ください。この動画と記事のシリーズでは、最先端の Android 開発の最新技術を使って、優れたアプリを簡単に作る方法を説明しています。ナビゲーション、Kotlin、Android Studio などの各トピックは、3 週間のシリーズとして構成されています。各トピックの最後には、Q&A で皆さんの質問に回答します。マテリアル デザイン コンポーネントApp Bundleナビゲーションなど、以前のトピックも確認できます。今後のトピックは、YouTube の Android Developers で公開します。

ここから MAD スコアカードを確認して、共有しましょう!

Reviewed by Hidenori Fujii - Google Play Developer Marketing APAC



アプリ内課金をマネタイズの軸とするモバイルゲームに動画リワード広告を導入する際のコツや注意点は?そして、それを支える Google AdMob(以下、AdMob)のメリット、魅力はどこにあるのでしょうか?全世界で累計 2100 万ダウンロードを突破している『ヴァルキリーコネクト』をはじめとするモバイルゲームの開発・運営を手がけるエイチームでモバイルゲーム全般のマーケティング戦略を担う河野光志氏に話をうかがいました。


AdMob とは?



AdMob は、Google が提供するモバイルアプリを収益化するための広告サービス。Android のみならず、iOS にも導入可能で、同社がもつ世界最大規模の広告ネットワークをベースに多種多様な広告と潤沢な在庫でアプリの収益化を後押ししてくれます。現在 Android アプリのトップ 1,000 タイトルのうち導入率は 81%、広告主の数も 100 万以上(世界トップの広告主のうち 97%が出稿)と、良質なネットワークを形成しています。


広告の収益管理となると煩雑な業務や高度な知識を求められるイメージもありますが、Google はいかにマネタイズを容易にし、本質的にゲームやアプリの開発にパブリッシャーやデベロッパーが専念できるかを念頭にサービスを設計しています。アプリ内広告のオープンビディングやアプリ内課金とハイブリッドで活用するための予測機能なども備えているほか、国別で自動最適化も可能になっており、まさに Google だからこそ提供できるハイクオリティな広告サービスといえるでしょう。


日本の開発者が海外市場を見据えるべき理由と AdMob が持つ強み
 -- AdMob でハイブリッドなマネタイズを実現したという『ヴァルキリーコネクト』(以下、ヴァルコネ)ですが改めてどのような作品か教えてください。

河野 本作は北欧神話をモチーフにしたハイファンタジー RPG で、2020 年の 4 月に 4 周年を迎え、直近では全世界で 2,100 万 DL を突破した長期運営タイトルです。種族や属性などを加味しながらパーティーを編成し、基本的には自動で進行する準オートバトルを通してキャラクターを育成しつつ物語も楽しみ、他のユーザーとマルチプレイで強力なボスと戦う... という今となってはスタンダードになったスタイルのゲームです。

 -- 国内動画リワード広告市場は年々右肩上がりの急成長を続けており、2018 年に 170 億円相当とされた規模は、2022 年には約 380 億円規模まで拡大すると予測されていますが、『ヴァルコネ』のように国内のモバイルゲームに導入されている例はまだ多くないと感じています。マネタイズに動画リワード広告を取り入れたきっかけはどのようなものでしたか。

河野 『ヴァルコネ』は国内展開だけでなく海外展開にも注力しており、新規ユーザーの流入はまだまだ伸び続けています。

一般論としてモバイルゲームは運営が長期になるほど新規ユーザーの獲得が困難になり、広告で獲得したユーザーに課金してもらって ROAS(Return On Advertising Spend)を回収する、というモデルに無理が生じてくるんですね。また、いわゆる "石"(ガチャを回すための課金アイテム)などの直販は、海外より国内の方が圧倒的に多くなっています。

 -- ユーザー 1 人あたりの課金額は、日本が圧倒的に高いとされていますね。

河野 ですので、国内海外を問わず、無課金ユーザーの方のプレイも動画リワード広告で課金転化できればと考えたのがきっかけです。また、モバイルゲーム市場は国内でも海外デベロッパーやパブリッシャーによるヒット作が増えてきていますので弊社は元々海外にも積極的にチャレンジしていこうという姿勢でいました。海外では動画リワード広告とアプリ内課金のハイブリッド手法は徐々に成功事例もでてきていたので、これはエイチームとしてもチャレンジすべきだろうと判断したのが 2018 年頃のことですね。

 -- とはいえ、同様のサービスを提供する企業は多くいます。導入するにあたり、AdMob を選んだ理由はどこにあったのでしょう?

河野 他の広告プラットフォームもいくつか検討しましたが、海外向けの広告在庫が圧倒的に多いというのが理由のひとつです。ウォーターフォール型の実装がされているので、高い eCPM(effective Cost Per Mille)を出しやすく運用しやすいというのも大きな魅力でした。


また、フィルター機能の使いやすさもチームのメンバーからは好評でした。ある動画広告を見たユーザーの方たちから「こういう動画は不適切ではないのか」とお問い合わせをいただくこともあるのですが、AdMob ならキーワードや画像で広告を検索し、手早く配信を止められます。優れた検索機能のおかげでこちらは工数を抑えられますし、ユーザーのみなさんのストレスもいち早く軽減できます。


 -- そうした事例も含め、広告のチューニングにかけている工数はどの程度なのでしょうか。

河野 弊社の場合は兼任で 2 名ですね。AdMob 自体が、自動化できるところは極力自動化してデベロッパーを開発に専念しやすくするというコンセプトですので、今後もこの工数が大きく増えることはないのかなと。


 -- AdMob による動画リワード広告を導入して、収益はどのように変わりましたか。

河野 『ヴァルコネ』や『ユニゾンリーグ』では、動画広告を見ることで回せるようになる "動画ガチャ"を実装しています。当初はよかれと思ってガチャ限定のキャラが排出されるようにしていたのですがこれが逆効果で、ユーザーの多くが直販の "石" の購入を控えてしまうようになり、収益が落ちてしまいました。

その後方針を変更し、キャラクターを強化するための素材などが出るようにしてからは収益は戻っています。すでに運営しているゲームに組み込む場合は、実装の仕方をよく考える必要があると痛感したエピソードですね。

 -- 動画広告導入によるユーザーからの反応はいかがでしたか。結構反発もある気もします。

河野 ゲーム側から強制的に広告を見せることはなく、動画ガチャを回そうとして初めて目にするものですので UX を損なうこともなく、"素材やアイテムをより多くもらえる手段のひとつ"として受け入れられていると感じます。

同業の方は「他のモバイルゲームの広告なんて見せたら、ユーザーが流出してそっちに移ってしまうのではないか」と懸念されるかもしれませんが、導入したことで DAU が大きく減ったということもないですね。私見ですが、モバイルゲームを 1 本だけ遊ぶユーザーはむしろ少ないのではと思いますので、広告を見て他のゲームを始めたとしても、こちらのプレイも続けてくれているのかなと。

 -- 『少女☆歌劇 レヴュースタァライト -Re LIVE-』の海外版では、広告ソースがリアルタイムに入札できる Open Bidding を取り入れているとうかがいました。

河野 導入前と導入後で、効果は大きく変化しており手応えを感じています。




広告の設定やタイミングを Google のチームが手厚くサポート



――そして、2020 年 6 月にリリースされた『初音ミク -TAP WONDER-』(以下、ミクたぷ)では、リリース当初から動画リワード広告が導入されていました。


河野 『ミクたぷ』は、タップするだけの簡単操作で誰でも気軽に楽しめる、バーチャル・シンガー「初音ミク」の新作スマートフォン ゲームです。ゲーム中の楽曲やミクが着るコスチュームの一部はユーザー応募によるもので、ユーザーのみなさんといっしょに盛り上げていくというのがコンセプトです。

今までに挙げたタイトルでの結果から確かな手ごたえを感じましたので、『ミクたぷ』はアプリ内課金と動画リワード広告による収益の割合を 6:4 くらいまで持っていきたいという前提で設計しています。設計に際しては開発段階から Google さんにもご協力いただけて、広告を出すのはどういうタイミングがいいのか、何分後がいいのか、何回出せばいいのかなど、事細かに相談させていただいてチューニングしました。特に海外での成功事例なども最新情報を共有してもらえるのがありがたかったですね。

具体的には、前述した動画ガチャに加え、ホーム画面で時おり流れてくる星をタップすると動画広告を見られるなど、ゲームの根底の部分にも組み込んでいます。

 -- 当初からゲームの設計に組み込むことで、開発チームもそれまで以上に広告の導入に深く携わっているかと思いますが、開発側のモチベーションはいかがでしたか。

河野 開発当初からアプリ内課金と動画リワード広告の収益を合算した数字を売り上げ目標としていたので、むしろサービス開始後に導入したタイトルよりもプロデューサーの熱意や関心が高いと感じますね。

また、ユーザーにとってみても、動画広告を見ているのといないのとではキャラクターの成長速度に違いが出るとなると、それが導線になりますので、広告を見るという行為をゲームサイクルに自然な形で取り入れられているのではと思います。

ミクたぷ』の動画リワード広告は Google さんの手厚いサポートのおかげもあり、問題やトラブルはほとんど発生せず好調に推移しています。

 -- 最初からハイブリッドでいくとなるとゲームのシステムやレベルデザインから LTV の考え方まで、これまでのお作法からは変化がありそうですね。

河野 そうですね。やはり何日プレイしたら、毎日動画リワード広告からボーナスを得る人とまったく得ない人でどれくらい差が出るか、といったこれまでにない指標も頭に入れながらレベルデザインを考える必要があります。どれだけユーザーに長く遊んでもらえるかということが重要なので、そのあたりのチューニングは大事になってきますね。

また、これまではいかにイベントを適切なタイミングでやって、限定のキャラを見せてユーザーを課金させるかというのがオーソドックスな手法でしたし、LTV を計測するときもいかに課金をしてもらうか、ということでしか測れませんでした。しかしハイブリッドなマネタイズモデルを導入することで、必ずしもアプリ内課金をしてもらう必要がなくなるわけです。

今、アプリ内のイベントにもチュートリアルクリアや課金といったポイントだけでなく、動画ガチャという地点も追加しています。長期タイトルだと前述のとおりなかなか新規ユーザーの獲得というジャッジを今の KPI ではしづらいのですが、動画リワード広告の収益も LTV として考えると、まだまだ新規にアプローチできるという判断もできると思いますし、どうしても既存ユーザーに目が行きがちな戦略も大きく変わってくるかもしれません。今後数値を整理しながら新しい施策に組み込めるようにしていきたいですね。

 -- 動画リワード広告とモバイルゲームという組み合わせを聞くとハイパーカジュアルゲームが思い浮かびますが、国内でゲームアプリとしてはメジャーであるアプリ内課金を軸にしたゲームでも大きな可能性があることがわかりました。

河野 繰り返しになってしまう部分もありますが、国内モバイルゲーム市場は、課金アイテムの直販によるマネタイズが主流ですが、海外勢はそもそもガチャがないアプリも少なくありません。

海外を見据えるなら、日本と比べたときの海外ユーザーの課金率の低さを補うためにも動画リワード広告の導入は必須といえます。ただ、私も先ほど失敗談をお話ししたように、どこにどのような広告を入れて、ユーザーにどのような報酬を与えるべきかという手法はゲームによってまちまちです。その点、AdMob はジャンルに応じたプレイブックが用意されているほか、こちらからの相談にも手厚くサポートしてもらえます。海外に出たいけどマネタイズが不安という方には、ぜひこうしたマネタイズ手法があることも頭に入れてチャレンジしてほしいです。

さまざまな SSP(Supply Side Platform)を連携できるのも欠かせない魅力のひとつですね。広告の在庫量や管理のしやすさも含め、モバイルゲームのマネタイズと生き残りを改めて考えるうえで AdMob は外せない選択肢となるのではと思います。


河野氏も語るように、ガチャを回すためのアプリ内課金だけに頼らない新たなマネタイズ手法を模索する必要がある昨今のモバイルゲーム市場。まだ国内市場も元気があるとはいえ、やはり更なるパイを求め海外に進出しようとするパブリッシャーやデベロッパーも少なくないはずです。

とはいえ、その設計や運用工数を考えると、どうしても二の足を踏んでしまう方も少なくないでしょう。新しいマネタイズにチャレンジしたい、海外でも収益性を高めたい、でもリソースは限られている... 尽きない悩みの中で AdMob は有力な選択肢としてあげられるのではないでしょうか。

収益性の高さはもちろん、チームによるサポートや、広告を適用したいゲームのジャンルに応じたプレイブックが用意されているほか、デベロッパーが少しでもクリエイティブに専念できるようにとの思いから機械学習などを生かした自動化ツールも導入されています。事実エイチームでも運用人数はマーケティング チームの一部でまかなえているということで、「とりあえず AdMob をいれておこう」という判断も間違いではないかもしれません。

すでにアプリ内課金と動画リワード広告によるハイブリッドなマネタイズ事例も国内外多数あるということで、興味のある方はぜひ導入を考えてみてはいかがでしょうか。

詳細はこちら

 

Posted by Google AdMob Japan

あらゆる規模のサイト運営者やクリエイターは、Web Stories の採用を進め、魅力的で物語性のある体験をユーザーに提供しています。パートナーから寄せられている主な要望は、成長を続けるこのコンテンツ形式を簡単かつ効率的に収益化することです。現在まで、サイト運営者が Web Stories を収益化する主な方法は、直販広告とアフィリエイト リンクでした。

Google は Web Stories 向けにプログラム広告ソリューションをリリースし、アド マネージャーや AdSense を使っている世界中のすべてのサイト運営者がこの仕組みを利用できるようにします。サイト運営者は、この新機能を使って Web Stories から簡単に収益を上げることができます。

ストーリー広告

Web Stories は、ユーザーをコンテンツに没入させるタップ可能な全画面のページです。ストーリー広告は、魅力的な全画面の広告クリエイティブです。ユーザーの操作にシームレスに組み込むことができるので、ストーリーのコンテンツへのエンゲージメントや興味を維持できます。Web Stories でストーリー広告を表示する頻度や場所は、ユーザー エクスペリエンスと収益化の可能性の両方を最適化するために動的に決定されます。 

新しいプログラム機能は現在オープンベータ版で、アド マネージャーや AdSense を使っているすべてのサイト運営者が利用できます。まずは、Google Display Ads からの複数のタイプのモバイル デマンドを活用するところから始め、近日中に他のデマンドソースも追加する予定です。 

Stories にプログラム広告を設定する 

プログラム広告はすぐに使うことができます。広告プラットフォームで以下のいくつかの簡単な手順を実行し、適切に設定した <amp-story-auto-ads> タグを Web Stories に追加します。ビジュアル作成ツールを使っている方は、近日中に広告タグを扱う機能が追加されるはずですが、Web Stories のコードを直接編集してタグを挿入することも可能です。

アド マネージャー

アド マネージャーの設定とアナリティクスのガイド

例:

<amp-story-auto-ads> <script type="application/json"> { "ad-attributes": { "type": "doubleclick", "data-slot": "/30197360/a4a/my_story_360" } } </script> </amp-story-auto-ads>
Code language: HTML, XML (xml)

AdSense

AdSense の設定とアナリティクスのガイド

例:

<amp-story-auto-ads> <script type="application/json"> { "ad-attributes": { "type": "adsense", "data-ad-client": "ca-pub-0000000000000000", "data-ad-slot": "00000000" } } </script> </amp-story-auto-ads>
Code language: HTML, XML (xml)

その他のプラットフォーム

その他のプラットフォームと広告ネットワークもストーリー広告をサポートできます。同様のタグ構造が使えるようになる予定です。

クリエイターの収益向上

私たちは、すべての Web Stories クリエイターがデジタル広告の収益を向上させることができるように努力しています。また、今後もこの形式の収益化機能の改善を続ける予定です。ストーリー広告のエコシステムは、他の広告ネットワークや広告ソリューションに対してオープンであるように設計されています。Web Stories との統合をご希望の広告プロバイダの方は、GitHub からお知らせください。

投稿者: Google、Web Stories プロダクト マネージャー、Varun Rao


Reviewed by Chiko Shimizu - Developer Relations Team

社会課題をテクノロジーで解決に導く スタートアップを対象とした 3 か月集中型のプログラム 「 Google for Startups Accelerator Class 3 」の参加企業を発表します。昨年 9 月 より募集を開始し、多くの素晴らしい目標を持ったスタートアップにご応募をいただきました。ありがとうございました。


アクセラレーターに参加が決定したのは、下記 11 社です。

参加企業一覧(アルファベット順)

  • AI Medical Service : 内視鏡の画像診断支援 AI(人工知能)の開発
  • Coaido : 緊急時に 119 番通報をしながら周囲に SOS を発信できる緊急情報共有アプリの開発
  • Eco-Pork: タンパク質危機の解決を目指し、養豚管理ソリューションの提供
  • edison.ai : 人工知能、画像解析やセンサーなど を活用したレジ無し店舗を実現するソリューションの提供
  • Fermenstation : 未利用資源を独自の技術で発酵して製造するサステナブル原料およびこれらを使ったサステナブル プロダクトの開発
  • iXs : ロボットを利用したデータ取得・AI 解析・3 次元データ連携など、インフラにおける DX を支援
  • Nature :エネルギー消費を抑える為のスマート リモコン「Nature Remo」と次世代型 HEMS「Nature Remo E」を開発
  • Triple W : 排泄の悩みや負担のある方に向けた超音波ウェアラブルデバイスの開発
  • UrDoc : 日本に在住および滞在する日本語を母国語としない人を対象とした多言語オンライン医療サービスの提供
  • WASSHA : IoT テクノロジーを活用し、新興国の未電化地域への電力サービスの提供
  • Welmo : AI や ICT を活用した介護福祉プラットフォーム サービスを提供

今後の流れ

今後 3 ヶ月に渡って、社会課題解決に特化したセッションをはじめ、機械学習などのテクノロジーに関するセッションや世界の外部や Google 社員によるオンライン メンタリング等を提供し、参加企業のさらなる成長を支援していきます。

プログラムについての詳細は、Google for Startups のページをご参照ください。



Posted by Takuo Suzuki - Developer Relations Team


Posted by Eiji Kitamura - Developer Relations Team