2024.10.10
将来は卵1パックの価格が2倍に? 多くの日本人が知らない世界の新潮流、「動物福祉」とは
LINE広告・広告ネットワークのSDK開発(全1記事)
提供:LINE株式会社
リンクをコピー
記事をブックマーク
樋村隆弘氏:樋村と申します。Ad Network & Performance室Ad Network Devチームのマネージャーをしています。本日は、私たちのチームで開発しているLINE広告ネットワークの簡単な紹介と、そこでAndroidエンジニアが果たしている役割について紹介したいと思います。
今日の説明会では、Androidアプリを開発されている部門の紹介がほとんどですが、LINEの中には、広告SDKといったLINE以外のアプリに組み込まれるようなSDKを開発しているような部署もあります。それを知っていただこうと思いまして、本日は発表に加わわりました。よろしくお願いいたします。
本日のアジェンダです。最初に私たちのチーム体制についての紹介と、LINE広告ネットワークについて簡単に紹介いたします。その後、LINE広告ネットワークの中身と技術スタックについて紹介いたします。よろしくお願いいたします。
それではまず、私たちの部署について簡単に紹介いたします。私たちは開発4センターのAd Network & Performance室のAd Network Devチームというところに所属しています。
私はこのAd Network Devチームのマネージャーをしています。こちらは、私を含めて7名の小規模なチームなのですが、来月からまた1人増えまして、8名となる予定です。Ad Network Devチームは、LINE広告のネットワークの開発と運用を担当しています。
次に、私たちの担当しているLINE広告ネットワークを紹介いたします。LINE広告ネットワークの前に、LINE広告というものについてまず紹介する必要があるかなと思いまして、紹介のスライドを加えました。
LINE広告ですが、こちらはその名のとおり、LINEに広告を配信するための広告プラットフォームです。今日の説明会に来ているみなさんは、おそらくLINEをインストールしたことがあると思いますので、LINEに配信されている広告をご覧になったことがあるかと思います。
LINE広告は、トークリスト最上部の枠の部分やニュース面の部分、タイムラインのフィードの中など、LINEのさまざまな場所で流れています。
LINE広告の規模ですが、LINEアプリ自体は、月間アクティブユーザーが国内で8,900万人(2021年6月時点)を突破していまして、こちらに広告を配信するので、やはり国内最大級の運用型広告プラットフォームであると言えるかなと思います。
こちらのLINE広告は、以前はLINEのためだけに広告を配信するプラットフォームだったのですが、現在はLINE広告ネットワークというものを通じて、LINE外のアプリに対しても広告の配信が可能になっています。本日は、こちらのLINE広告ネットワークについて紹介いたします。
LINE広告ネットワークは、LINE広告のプラットフォームを使って、LINE以外のアプリに対して広告を配信するための広告ネットワークです。
例えばLINEマンガやLINE BLOGといったLINEのファミリーアプリをはじめとして、ニュースサイトやレシピサイト、マンガ系アプリ、ライフスタイル系など、国内のさまざまな幅広いアプリに対して広告の配信が可能となっています。
LINE広告ネットワークのMAU (Monthly Active Users) については、2020年9月の時点で1.1億ユーザーに達しています。広範なアプリで、非常に多くのユーザーに対して広告配信可能なプラットフォームとなっています。
またこちらは、LINE広告のターゲティング機能を活用して配信できるということで、多くの事業者さん、アプリ開発者の方々に評価いただいています。
このLINE広告ネットワークですが、もともとはモバイル動画広告配信プラットフォームであるFIVE Ads Networkという、アドネットワークが前身となったサービスです。こちらのFIVE Ads Networkは、2014年に創設されたベンチャーであるファイブ株式会社が開発運用していたサービスです。
社名のファイブは、5秒動画が由来となっています。スマートフォン時代に合わせてCMなどと比べてより短い秒数でもユーザーに興味関心を持ってもらえるような動画の作成や、コンサルティングまで含めてやるということで、創業されたベンチャーです。
既存のCM素材の場合は15秒や30秒といった長尺のものが中心のため、ファイブではモバイルアプリ向けに、より短い秒数の動画を作成し、みなさんの帯域を極力圧迫せずに効果が出るような動画広告を作ろうということで、開発をしていました。
こちらのファイブが順調に成長しまして、2017年12月にLINEが買収しました。これによってLINE傘下になりまして、その後こちらのFIVE Ads NetworkがLINEの広告システムと連携し、LINE Ads Platform for Publishersとして、2019年にリリースされました。こちらが、現在また名前が変わりまして、LINE広告ネットワークと呼ばれています。
ファイブ株式会社自体も、2020年の5月末に、LINEに吸収合併されまして、現在は私たちもLINEのチームの一員として、開発4センターのもと、LINE広告ネットワークの開発に携わっています。
事業の概略はこのくらいにして、LINE広告ネットワークの中身を簡単に紹介しながらAndroidエンジニアがどんなことをしているかについてお話ししたいと思います。
LINE広告ネットワークは、先ほどお話したとおり、もともと独立した広告ネットワークだったので、広告配信に必要なサーバーサイドとSDK、両方とも持っています。私たちのチームは、SDKはもちろん、サーバーサイドについても担当する部署になっています。
だいたいの広告ネットワークは、広告主側のプラットフォームであるDSP(Demand Side Platform)と、アプリなどの媒体向きのSSP(Supply Side Platform)に分かれます。
LINE広告についても同様に、LINE DSPとSSPに分かれています。こちらのLINE DSPと私たちのLINE広告ネットワークがOpenRTBで接続し、広告を配信しているという流れになっています。私たちのSDKは、キャッシュ機能による0秒ロードというものを売りにしていました。キャッシュ管理機能のため、サーバーとFIVE SDK間のプロトコルがOpenRTBなどと比べるとかなり独特なため、そこの変換は、サーバー側で吸収しています。
またLINE DSP以外に、LINE社外のDSPとも接続することで、さまざまな広告の配信が可能となっています。
今紹介したように、私たちのチームではアプリ広告に必要な広告SDK開発はもちろん、配信サーバーやログの集計パイプライン、管理画面といったものをすべて私たちの部署で担当しています。
担当範囲は非常に広いのですが、各々の興味や得意分野によって、ある程度担当の範囲は融通が利かせられているかなと思っています。
今もAndroidの開発メンバーは、Android専任に近い感じでやっています。Android SDK開発だけの参加というかたちでも問題ありません。もちろんAndroid SDKだけでなくサーバーサイドもやってみたいなという方にとっても、やりやすい土壌がそろっているかなと思います。
ここで、私たちの開発しているLINE広告ネットワークSDKの特徴についても簡単に紹介いたします。このSDKは、もともとスマートフォンアプリ向けの動画広告のSDKとして作られていましたが、LINEがファイブを買収した際に、LINEは静止画の広告が多いことから、静止画の配信にも対応し、現在では統合的な広告SDKとなっています。
広告は、リアルタイムで取引がなされる一方で、表示が遅れてしまうとやはり広告効果が非常に落ちるので、最初の数100ミリ秒が重要となってきます。
特にユーザーの認知度や訴求効果については、動画広告によるインパクトが大きいのですが、反面、ただの画像と比べると動画というのはどうしてもサイズが大きいので、表示に時間がかかってしまうという問題があります。
ファイブの時代は、認知度向上を目的としたブランド広告も多く、そういった広告については、あらかじめ動画をキャッシュしておき、同じ素材をある程度の間隔を空けて複数回見せるといったような工夫もしていました。それで、0秒ロードといったものを作っていたわけですが、多数のDSPと接続した今となっては、なかなかキャッシュの活用が難しくなってきています。その問題を解決するために、私たちはPartial Cache Playerという、動画の一部のみをキャッシュする仕組みを独自に開発しています。
Partial Cache Playerについて概略を簡単に説明いたします。この図は2020年のLINE Developer Meetupで、弊チームの市川が発表した際の図となります。こちらはiOSの図ですが、Androidの場合も概略は同じです。
Partial Cache Playerの仕組みは、あらかじめ動画ファイルの先頭の一部のみをダウンロードしておいて、必要になり次第、追加でデータをCDNからダウンロードしてくるという仕様になっています。CDNからどのくらいダウンロードをすればいいかを知るために、SDK自身でMP4ファイルをデコードしまして、再生の進み具合を見ながらダウンロードの調整を行なっています。。より詳しい詳細については本日は触れられないので、こちらのログミーの資料をご覧いただければと思います。
最後に技術スタックについて紹介いたします。と言っても、Android SDKは基本的にJavaで書かれています。Kotlinも利用していますが、こちらはテストコードのみの利用となっています。
本当であれば全部Kotlinで書きたいところですが、もともとAndroid SDK自体が古くから Javaで開発されていることもあり、現在でもJavaで引き続き開発をしています。
また、SDKとして他社のアプリに組み込まれることを考えると、Kotlinランタイムのバージョン互換性の問題が出てきてしまいます。ランタイムのバージョン競合の解消など、SDKの導入で余計な作業が発生してしまうと、広告枠の導入自体が無くなったり導入済みの枠でも外されてしまうなどの事態につながります。Kotlinランタイムは、ある程度互換性が保たれていますので、完全に無法地帯という感じではないのですが、なにぶんさまざまなアプリに組み込んでいただくことを考えると、枯れた技術の採用が安全ということで、SDK開発言語としてはJavaを採用しています。
また依存ライブラリについても、基本的にはAndroid OSに標準で組み込まれているもののみの利用になっています。例えば、動画プレイヤーの、ExoPlayerといったデファクトスタンダードと言っていいようなライブラリも使われておらず、私もファイブに入った時に、ちょっと驚いたという記憶があります(笑)。
このあたりは、ExoPlayerがサポートするAndroidの下限バージョンの問題もありまして、その当時は採用が見送られていたということもあります。最近は古いAndroid についてはサポート対象外とし、そろそろExoPlayer導入した上で、SDK自体のコードをシンプルにしてメンテナンスしやすいような体制を整えていくというところも必要かなとは思っています。
またiOSについても簡単に触れておきますと、Androidと同様、こちらもSwiftはテストコードの利用のみで、SDK本体はObjective-Cで書かれています。
SDKのリリースはJenkinsを利用してビルドしてリリースしているという感じです。開発の進め方はGitHub Enterpriseでプルリクエストを切って相互レビューするというようなフローになっています。
最後に、サーバーサイドについても紹介します。私たちのサーバーはScalaというJavaに関数型言語の特徴を足したような言語を採用しています。
Web フレームワークは、finagleという、Twitterが開発したフレームワークを採用しています。Twitter で使われていることからもわかる通り、高トラフィックに耐え得るフレームワークということでfinagleを採用しています。finagle自体がScalaで開発されているため、サーバーサイドの言語としてはScalaを採用しています。
基本的にこちらのScalaのコード自体は、Better Javaとして使い、Javaの経験しか無い場合でも開発ができるように書くようにしています。SDKだけでなくサーバーサイドの開発にも興味があればいじっていただくこともできるような体制にはなっているかなと思っています。
という感じで、ちょっと駆け足になってしまいましたけれども、私たちのチームで開発しているLINE広告ネットワークについての紹介は以上といたします。ご清聴ありがとうございました。
LINE株式会社
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略
2024.11.13
週3日働いて年収2,000万稼ぐ元印刷屋のおじさん 好きなことだけして楽に稼ぐ3つのパターン
2024.11.11
自分の「本質的な才能」が見つかる一番簡単な質問 他者から「すごい」と思われても意外と気づかないのが才能
2024.11.13
“退職者が出た時の会社の対応”を従業員は見ている 離職防止策の前に見つめ直したい、部下との向き合い方
2024.11.12
自分の人生にプラスに働く「イライラ」は才能 自分の強みや才能につながる“良いイライラ”を見分けるポイント
2023.03.21
民間宇宙開発で高まる「飛行機とロケットの衝突」の危機...どうやって回避する?
2024.11.11
気づいたら借金、倒産して身ぐるみを剥がされる経営者 起業に「立派な動機」を求められる恐ろしさ
2024.11.11
「退職代行」を使われた管理職の本音と葛藤 メディアで話題、利用者が右肩上がり…企業が置かれている現状とは
2024.11.18
20名の会社でGoogleの採用を真似するのはもったいない 人手不足の時代における「脱能力主義」のヒント
2024.11.12
先週まで元気だったのに、突然辞める「びっくり退職」 退職代行サービスの影響も?上司と部下の“すれ違い”が起きる原因
2024.11.14
よってたかってハイリスクのビジネスモデルに仕立て上げるステークホルダー 「社会的理由」が求められる時代の起業戦略