あらゆる人と、metapsが交わる場所

はじめました! Links Tech Blog Vol.01

f:id:meetaps:20190712200119p:plain

メタップスリンクスエンジニアチームです。

チームにおける課題や取り組みなどを紹介していくためにTechブログ始めました。
これから色々な事例を少しずつですが紹介していくのでよろしくお願いします!
事例の中で今回紹介したい内容がベースになって読み進めるようなものも想定しているので、出来るだけシンプルに書いていこうと思います。

概要

メタップスリンクスが運用するサービスであるMetaps Analytics(以降:MA)のシステム構成について紹介させて頂きます。 MAはスマホアプリのマーケティングにおけるユーザー行動分析を行い、広告効果測定やプッシュ通知などを一手に引き受けるサービスです。 スマホアプリを運用する為には欠かせないですね!
説明は簡単に以上としまして、より詳しい説明はこちらをご覧ください。

サイト中にMetaps Bridge(以降:MB)とありますが、こちらのシステム構成のベースはMAと同じなので、今回はMAについての紹介とさせてください。 MBは既存のトラッキングツールを既に導入してしまった方にもオススメのサービスとなっているので詳しくお聞きになりたい方はぜひお問い合わせください!

前提条件

  • MAの利用者としまして、スマホアプリを運用するマーケッター及びスマホアプリのユーザが挙げられます。
  • MAのシステムではAWSが使われています。
  • 弊社提供のSDKをスマホアプリに搭載し、分析したい行動を予めイベントとして設定・実装する必要があります。 将来的にもっともーっと敷居を低くしたいと目論んでいます( ̄+ー ̄)

論より構成図

f:id:meetaps:20190730144721p:plain
以下システムの構成図というか、概念図ですかね、大枠を捉えて頂ければ十分です。

解説

スマホアプリユーザーの行動が分析されるまで

f:id:meetaps:20190730155044p:plain

スマホアプリユーザーが取った行動をMAのシステムに送信するために行動に応じたAPI通信が行われます。 この通信を行なっているのがスマホアプリに搭載したSDKです。 MAのシステムで受信した通信はElastic Load Balancer(以降:ELB)から複数台に負荷分散されたAPIサーバー(Elastic Compute Cloud 以降:EC2)へと送信されます。

AutoScaleについて

f:id:meetaps:20190730144836p:plain

このAPIサーバーとして活躍するEC2にはAutoScaleという機能を使っています。 アクセスが増えて許容量が超えて接続出来ないなどの障害にならないように、一定の閾値を設けて自動でEC2が増える仕組みとなってます。

大量のデータを格納するには?

f:id:meetaps:20190730155117p:plain

分析を行うにはMAのシステムで受信した通信から得られる情報を集約する必要があります。 そこでデータベースを使うわけですが、大量のアクセスの度に都度登録するのでは速度やデータベースの許容接続数を超えてしまう懸念があります。 そのため、受け取った情報を一旦はログに溜め込み一定周期でデータベースまで同期するような仕組み利用しています。 現在利用しているデータベースはRedshiftと呼ばれ、大量のデータから瞬く間に分析に必要なデータを抽出してくれる優れものです。

そして分析へ・・・?

f:id:meetaps:20190730145650p:plain

データの格納が出来たら、抽出して分析を行います。その処理を担っているのがBatchサーバー(EC2)です!たくさん仕事をしてもらおうと盛り盛りのスペックな感じです。Batchサーバーによる分析する処理を経て、画面やレポートを出力できる前準備が出来てきます。

メディア掲載の広告やクリエイティブなどクリックした場合

f:id:meetaps:20190730145515p:plain

トラッキングツールを経て広告クリック、インストールを行ったという情報が集約するようになっています。

マーケッターが可視化された情報を閲覧するには?

f:id:meetaps:20190730145318p:plain

ブラウザを通じMAのダッシュボード機能のURLにアクセスします。 ELBから複数台に分散されたWebサーバー(EC2)へと通知されます。 Webサーバーから分析結果を表示加工されたデータを格納している各種データベース(RDS/Aurora)へ問い合わせを行い、結果を画面出力します。

システムについて

図示した以外にも様々な技術を活用しておりますが、MAの概念としては以上の解説で十分であるため、割愛させて頂きます。 現在のサービスの形になるまで数年間運用をしてきたわけですが、当然ながらより良い代替機能が出現したり、開発言語やフレームワーク・ライブラリなどを追いかけて行く必要があります。 今後のブログでは広く利用されるようなシーンや新しく出てきた技術の検証などをMAシステムを念頭に置いて展開していこうと考えております。 システムのどの部分の改修の話題なのか、その時々で振り返る先となれれば幸いです。 

PS

構成図の作図にはcloudcraftを利用しています。 様々なエクスポート形式が利用でき、3Dで作図したものを2Dに置き換えることもできます。 その場合はdraw.ioのプロジェクトとして出力され、細かなズレなど調整できます。

 

メタップスリンクスのエンジニアでは様々な技術検証・研究を行い和気藹々・切磋琢磨に技術研鑽を行える環境で日々過ごしております! そんな我々にご興味のある方は是非ご連絡ください。(お問い合わせ