Business Manager開発の裏側

中村俊之氏:LINEでBusiness Managerを開発している中村俊之と申します。スライドのタイトルは英語ですが、本日は「次世代マーケティングデータ活用基盤Business Manager開発の裏側」というタイトルで発表いたします。

こちらが本日のアジェンダです。まずBusiness Managerとは何なのか、何ができるのかについてお話しします。このパートでは、Business Manager開発で課題となったBusiness Managerの機能や、Business Managerが登場する以前に存在していた仕組みについても説明します。

次に、Business Managerのシステムアーキテクチャについて説明します。そしてBusiness Managerの開発に際して課題になった点と、その課題に対して我々が採ったアプローチについても共有したいと思います。ではさっそく内容に入っていきます。

Business Managerとは何なのか

Business Managerとは何なのか、ということですが、Business Managerとは、広告主である企業がLINEの各種法人向けプロダクトを横断して、さまざまなデータの有効活用を実現するための基盤システムです。LINE広告やLINE公式アカウントといった、各種法人向けプロダクトのデータを統合し、広告配信などで有効活用できます。

今、LINEの法人向けプロダクトと言いました。LINEといえばLINEアプリなど、コンシューマー向けのアプリのイメージが強いと思いますが、先ほどのスライドにも登場した、いくつかの法人向け向けプロダクトも提供しています。Business Managerの理解を深めるために、それらのプロダクトについても紹介します。

LINEの法人向けプロダクトはLINE公式アカウント、LINE広告、LINEポイントADなどがありますが、このうちBusiness Managerと、最初のリリース時点で接続可能なLINE公式アカウント、LINE広告について紹介します。

LINE公式アカウントは、みなさんも、街のお店で「LINE公式アカウントの友だち募集中」という掲示を目にしたことがあるかもしれません。LINE公式アカウントを通じて、大企業から小さなお店まで、企業がLINEのユーザーとコミュニケーションを取れるサービスです。

そしてLINE広告。これはLINEのユーザーに対して、さまざまなメディアを通じて広告配信するためのプラットフォームです。みなさんも、LINEのアプリ画面に出ている広告を見たことがあるかもしれません。これも、LINE広告のプラットフォームを利用して配信されている広告の1つです。

Business Managerの図に戻りますが、Business Managerでは、今説明したLINE広告やLINE公式アカウントといったサービスのアカウントと接続可能です。アカウントを接続することで、アカウントが持っているデータを統合管理できます。

リリース当初は、この図の2サービスにTalk Head ViewおよびLINE NEWS TOP ADを加えた4サービスのみ対応していますが、接続可能なアカウントは拡大していく予定です。そして接続したアカウントのデータを利用して、広告配信やメッセージ配信に活用できます。さらにプロダクトを横断したデータ分析、レポーティング機能も追加予定で、進化を続けていく予定です。

Business Managerの次世代とは何か

今「進化」と言いましたが、タイトルにもある「Business Managerの次世代とは何か」についても説明します。

実はBusiness Manager以前から、LINE公式アカウントやLINE広告をまたがってデータを活用する仕組みが存在していました。Cross targetingと呼ばれる仕組みで、大企業では複数ブランドでLINE公式アカウントやLINE広告を運用しているケースがありますが、この図のブランドA、ブランドBがある場合に、同じブランド内ではLINE公式アカウントからLINE広告にデータを共有して活用できていました。ただ、同じ企業であっても、システムやルール上の制約によって、ブランドAとブランドBのブランドをまたいだデータ共有はできませんでした。

Business Managerでは、同一企業内であればブランドを越えてアカウント間でのデータ共有が可能になります。この図でいうと、ブランドAのLINE広告データを、ブランドBのLINE広告のアカウントに共有・活用することが可能になります。

今説明したように、既存の仕組みの制約を乗り越えるために開発していく中で、Business Managerのシステムアーキテクチャが決まりました。これにより、開発上で課題がいくつか生じましたが、それはセッションの後半で解説します。

Business Managerの機能

次に、Business Managerの機能について紹介します。Business Managerでは、管理画面からOrganizationといわれるグループを、広告主である企業単位で作成できます。

Organization配下にLINE広告やLINE公式アカウントを接続することで、アカウントが持っているデータをアカウント間で共有・利用できます。

なお、Organizationでのアカウントの接続は、LINE広告やLINE公式アカウントのそれぞれのシステム管理画面から行えます。最初のリリース時点では、アカウント間で利用できる主なデータは2種類です。

1つ目がLINE Tagと呼ばれるJavaScriptのスニペットで、これはWebサイトに埋め込んでコンバージョン計測などができるものです。もう1つがオーディエンスデータで、これはどのユーザーに対して広告配信できるか、というようなデータです。今Business Managerで接続可能なアカウントや共有可能なデータのタイプはこれだけですが、今後も対応するタイプは増えていく予定です。

次に、企業に安心してBusiness Managerを利用していただくための認証機能があります。先ほどOrganizationを作成してアカウントを接続できると説明しましたが、それだけではアカウント間でのオーディエンスデータは共有可能にはなりません。

LINEのオペレーターが、Organizationとアカウントを同じ会社が運用しているかなどを、内部のツールで審査します。そして承認されたOrganizationとアカウント間でのみ、オーディエンスデータの共有が可能になります。

また、Organization内でどのアカウントにどのデータを共有するか、といった権限設定も可能です。Organization配下で、すべてのアカウントに全種類のデータを共有するといったワイルドカードのような設定だったり、特定のオーディエンスデータだけを特定のアカウントに共有する、といった権限の設定も可能です。このへんはセッション後半でも触れますが、技術的に課題があるポイントでした。

最後に、Organization自身がLINE Tagやオーディエンスデータを作成できる機能もあります。もちろんOrganization自身が作ったこれらのデータも、他のアカウントに共有可能です。

Business Managerの仕組み

さて、ここまではBusiness Managerの仕様の話をしてきました。複数のサービスのアカウントやデータが、種類が存在してシステム開発するうえで、複雑になりそうなポイントがいくつかあるなと感じたかもしれません。ここから、徐々に課題を技術的にどう解決したかという話題に入っていきます。

ただその前に、少し最初のスライドを振り返りたいと思います。実はBusiness Managerはそれ単体で必要な機能を実現しているわけではありません。既存の仕組みに、データ共有の権限管理の仕組みを加えることで動いています。

Cross targetingという既存の仕組みがあると説明しましたが、これを実現しているのがLINE DMPです。LINE DMPとは、LINEの社内向けに広告データを収集・加工・提供するプラットフォームです。

LINEのプラットフォーム上で生まれるデータや企業や管理しているデータを蓄積・加工して、それらをLINE広告やLINE公式アカウントなど、B2B向けのサービスに提供する機能を担っています。

LINE DMPのより詳しい内容については、2020年のLINE DEVELOPER DAY 2020で発表されたセッションが非常に参考になります。スライドの下のほうにURLを記載しているので、興味ある方はぜひご覧ください。

Business Managerの説明に戻ります。Business Managerのできる前は、LINE DMPとLINEの他のサービスが連携しながら、オーディエンスデータを提供してきました。この仕組みの上にBusiness Managerの権限管理の機能を追加することで、アカウントを超えたデータ共有を実現しています。

既存の仕組みとBusiness Managerでデータ連携するパターンは、大きく分けると2つあります。1つはREST APIのパターンです。これまでもLINE公式アカウントやLINE広告といった他のシステムから、LINE DMPが管理しているオーディエンスデータを利用する時には、LINE DMPのAPIを利用していました。それに加えて、DMP内部でBusiness ManagerのAPIを呼び出して、権限チェックするようになっています。

そしてもう1つのデータ連携パターンは、Kafkaを通じたメッセージングです。Business Managerのユーザーがアカウント間の共有権限設定を変更すると、MySQLにその変更が保存されます。そしてその変更をバッチが読み取り、データの共有が変更された、ということをKafkaを通じてLINE DMPへ通知します。ここはいろいろと検討しないといけない難しい箇所だったので、後ほど説明します。

Business Managerで利用されている技術

少し抽象的な話が多かったので、次にBusiness Managerで利用されている具体的な技術についても紹介します。プログラミング言語としてはKotlinを使っています。この後でも触れますが、Kotlinの機能をフル活用しながら開発をしています。フレームワークとしては、Spring Bootを利用しています。

また、ミドルウェアは、メインストレージとしてはMySQL、キャッシュやロック用としてRedis、先ほどのスライドでも出ましたが、各サービスへデータ変更を通知する用途や、あと一部データを別サービスから同期するためにKafkaを利用しています。

そしてインフラは、社内プライベートクラウドであるVerdaを利用しています。初期開発の期間が短かったことやデータを扱うシステムの重要性を考慮して、私が所属している部署でも、実績のある技術を主に採用しています。

後半へつづく