Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Adjustを利用したmobile app tracking 公開用資料 at NTT Tech Conference 2023

Kai Otsuki
April 05, 2023

Adjustを利用したmobile app tracking 公開用資料 at NTT Tech Conference 2023

現在、ドコモ初の社員内製で開発しているコンシューマ向けアプリ「マイトレード」をリリースしています。 マイトレードは主に Google Cloud や Go 、Flutter を利用しています。 今回はマイトレードの中でも特に広告流入計測に焦点を当ててお話します。

ユーザーがどのようにアプリに到達したか、それらのユーザがアプリ上でどのような行動を取ったか、また、それらのユーザ全体を通じた行動パターンの比較や相違点を分析することはサービスの成長にとって重要です。 例えば、どの媒体のどの広告からユーザが流入しているのか、それらのユーザがどこまで到達してどこで離脱しているのかを把握することは最も重要なことの 1 つです。 一般的な Web サービスでは、クッキーを利用することや URL にカスタムパラメタ (UTM パラメタなど) を付与することでユーザの行動を計測できます。 しかし、モバイルアプリの流入計測ではアプリストアから実際にインストールを行なってアプリを起動する際にこれらの識別情報引き継ぐことができないなど、計測が非常に困難です。 計測するためには、ユーザがリンクなどをクリックしてアプリストアに遷移するタイミングでユーザー端末の広告 ID 等を保存しておき、アプリ起動後にその端末情報と照合する必要があります。 また、プライバシー設定などでユーザー端末の広告 ID が得られない際には、その他の情報をもとに確率的な手法を使い計測する必要があります。 これら全てを自前で実装し計測することは非常に困難であるため、Adjust 、AppsFlyer 等の流入計測ツールを利用して計測することが一般的です。

マイトレードでは Adjust を使って流入計測をし、導入に際して Flutter アプリへの Adjust SDK の実装及び各広告媒体との連携を設定しました。 また、流入計測したデータを独自に分析できるよう、Adjust から Cloud Functions を利用して BigQuery に保存しています。

本セッションでは上記の経験を元に、モバイルアプリの広告流入測定の仕組み、導入や利用方法、Raw Data Export を利用した計測データの BigQuery への集積方法、集積情報をどのようにマイトレードで活用しているのかについて紹介します。

Kai Otsuki

April 05, 2023
Tweet

Other Decks in Business

Transcript

  1. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. Adjustを利用した モバイルアプリの 流入計測について NTT DOCOMO Inc. イノベーション統括部 大月 魁 2023/03/24 1
  2. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 導入 2023 自己紹介 部署 © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 2
  3. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 元々は Java を使ってOSSの活動としてブロックチェーンシミュレータ (SimBlock) の開発などをしていました。 イノベーション統括部事業化第二担当に所属。現在は主にGoとGoogle Cloudを 中心に、投資管理アプリ「マイトレード」のバックエンド開発を行なっています。 また、ブロックチェーンデータの取り込み基盤構築に取り組んでいます。 資格・外部発表 • Google Cloud Certified Professional Cloud Architect • CryBlock 2019, “Simblock:A Blockchain Network Simulater” • Aintec 2019, “Effects of Relay Networks on the Bitcoin Network” • IEEE Blockchain 2020, “Quantitatively Analyzing Relay Networks in Bitcoin” • IEEE Access, “Impact of Saving Strategy in Blockchain Conensus” • ソフトウェアデザイン誌 2020年9月号記事執筆 • 2021年度年間最優秀研究賞 IA研究会 About me 3
  4. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. マイトレード ≒ 証券口座特化版家計簿アプリ 証券会社各社のサイトからデータを取得し、様々な数値を計算してグラフやリストなどで表示 5
  5. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. Google Cloud や Go、Flutter を採用 クロスプラットフォームな Flutter、マネージドなクラウドをメインで使っています なるべく少人数の内製で回せるように、効率性やキャッチアップの容易性を最優先しました 6
  6. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. マイトレのメイン機能の実装は別に、流入測定計測ツールを導入して利用して いるので、その導入から実装、その後の活用法について。 目次 1. 背景知識 2. Adjustの導入実装 3. 流入計測データのクラウド/自社サーバへの蓄積 4. マイトレードでのデータ活用について 今日のテーマ 7
  7. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 背景知識 2023 モバイルアプリの流入測定について 仕組み 8
  8. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 流入測定とは [1] App Store Review Guidelines https://developer.apple.com/jp/app-store/app-privacy-details/#user-tracking [2] How mobile app tracking is changing https://www.singular.net/blog/mobile-app-tracking-future/ 広告効果測定や最適化などの目的のために、 どの媒体/どのリンク/どの広告から来たのかを計測すること、 またそのデータを活用してサービス改善などに活かすこと。 9
  9. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. Adjust/Appsflyer インストール+アプリ起動 広告をクリック+アプリストア Webの世界 Webの外の世界 ブラウザで完結する web系の流入測定と異なり、ここで世界が隔絶されてしまうため、 Adjust/Appsflyer等を使わないと、installと広告を紐づけられない 。 10
  10. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 計測の仕組み Adjust servers App store 2. install 3. アプリ起動 Dashboard 広告PF 1. ストアへ 4. SDK 7. 表示 5. 情報送信 6. 突合結果 11
  11. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 決定的手法 Impressionやclickの際にdevice IDや広告IDなどの一意なIDを取得して、これをインストール時に取得した device IDや広告IDと比較して紐づける。当然精度が 100%。基本的にはこっちの手法が使われる。 確率的な手法 iOS14のトラッキング可否ポップアップなどによって広告 IDが取れるケースが30%~40%など非常に下がってし まったため、生まれた代替手法。デバイス ID以外の情報(デバイス名・種類、 OS、OS version、IPアドレス、 User Agent)などの情報を利用して非決定的に突合する手法。 突合の仕方 12
  12. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 計測プラットフォームの必要性 個人でこれらをやるのは難しいのでプラットフォームを使う。 - Device IDなどの情報を集積して判定する。 - 各広告PFとの連携実装 - 突合アルゴリズム - 複数のインプレッションやクリックがあるときどこを正とする? - どの期間までインプレッションやクリックを有効にする - etc… 13
  13. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. アプリへの実装と基本設定 2023 Adjust SDK 広告PFとの連携 © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 14
  14. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 計測の仕組み Adjust servers App store 2. install 3. アプリ起動 Dashboard 広告PF 1. ストアへ 4. SDK 7. 表示 5. 情報送信 6. 突合結果 15
  15. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. SDK 1. アプリの初回起動時に install計測に必要な情報 2. イベント計測情報 - インストールを計測したり、アプリ上のイベントやセッション情報を計測するために SDKを組み込む実装が必要。 - mobile系のSDK - Objective-C: https://github.com/adjust/ios_sdk - Java: https://github.com/adjust/android_sdk - Flutter: https://github.com/adjust/flutter_sdk 計測のために Adjust servers アプリ 16
  16. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. イベントとして何を計測しているか 基本的には広告最適化で利用したいパラメタをイベントとしてポストアップすると良い。 インストール ユーザ登録 課金登録/口座登録 17
  17. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 計測の仕組み Adjust servers App store 2. install 3. アプリ起動 Dashboard 広告PF 1. ストアへ 4. SDK 7. 表示 5. 情報送信 6. 突合結果 18
  18. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. パートナー設定をした広告PFのみインストールの流入測定を行うことができるので、広 告を出したいPFごとに設定が必要。 広告PFとの連携 Adjust servers 広告PF 1. 情報送信 Adjustからパートナー設定済みの広告PFに アプリを起動したすべての端末の広告ID や、タイムスタンプやデバイスIDなどを送信 する。 3. インストール判定結果を受信 インストール判定結果。 どのインストールが、どの広告PFのどの広 告でクリックされたかわかる。 2. インストール判定 広告PFは、送られたデータ(広告ク リックタイミングやデバイス情報等)が 自広告PFの広告が押されたものか を内部判定する。 19
  19. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. PFごとに設定は異なるが、基本的には以下の手順で設定する。 1. 管理画面上で広告PFと連携する a. 広告アカウントのIDを使って連携: Google ads, Line, Apple search ads, Facebook b. 広告アカウントログインして連携 : Twitter 2. 管理画面上の設定をする a. Install conversion b. Session conversion c. 課金転送 d. イベント転送 e. リアトリビューション設定 3. 広告PFページ側で許可設定などをする 4. 管理画面上に数値が反映されるようになる 設定手順 20
  20. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. データはこんな感じで入るようになる 設定前 設定後 [3] Adjust: https://help.adjust.com/tr/article/ad-spend-dashboards 21
  21. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 単体テスト的なことができないので、基本統合テストになる。 網羅性が肝 Adjust基本実装の所管 Dev Prod Sandbox Sandbox 本番 本番 install 各種イベント リンク permission uninstall 各種イベント イベントの条件 広告連携 データ集積 広告PFとの連携 1. Adjust上の計測値と広告 PF上の値が合わない a. 以下の要因で合わなかったりする。 b. 計上日の定義の違い、ラストクリック、アトリビューションウィンドの 違い、タイムゾーン 2. iOSのインストール値や流入値が入ってこない a. skAdnetworkの影響でランダムに 24時間から48時間程度計測が 遅れたりする。 b. iOSから流入がすぐに入って来なくても焦らず。 3. アンインストールが計測されない a. sandbox環境でテストするとアンインストールは残念ながら計測で きない。 b. dev環境用のadjustプロジェクトを作って計測実験するのがおすす め。 22 環境 release mode debug mode debug mode release mode
  22. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 計測データのクラウドへの蓄積 2023 仕組み 構成 © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 23
  23. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 1. データ突合 2. 一定期間過ぎた後にボードからデータが削除されてしまう 3. ユーザごとの細かい分析がしたい => CSVのexportでは不十分 => Bigqueryにデータを貯める必要がある。 データの蓄積 24
  24. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 指定したURLに対してGET構文リクエストの形式でデータを送信する。その際に、指定 したパラメタについてクエリパラメタの形式で取得できる。 指定できるパラメタはこちらから見つかる。 https://partners.adjust.com/placeholders/ https://serverendpoint.com/mobile_attribution?adid={adid}&created_at={created_at}&event_name={event_name} Raw Data Export Adjustが計測したインストール情報をリアルタイムで転送する仕組み 25
  25. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. GETリクエスト形式で生データ送信 システム構成図 主な理由 • いわゆる典型的なevent-drivenなETL • FaaSを使うのが定石。 プラスアルファ • 極力管理コストを下げるために、 managed系を採用。 • 言語はGolang • hardware周りの制約も特になし。 • コスト観点でCloudRunではなくて、Cloud Functionsを採用。 Adjust servers Extract Validation Transformation Load install・events データを格納 可視化 Analyticsのデータなど 他のデータと突合して分 析・可視化など 26
  26. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 集めたデータの使い道 広告最適化 可視化 データ分析 2023 © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 27
  27. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. マイトレードのデータ活用/Adjust活用 広告最適化/分析 データ可視化 データ分析 28
  28. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. マイトレードのデータ活用/Adjust活用 広告最適化/分析 データ可視化 データ分析 29
  29. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. Adjustによる広告最適化 問題点: インストールしてくれるユーザが必ずしも課金に繋がらない。 解決策: Adjustのデータを使い、適切に広告最適化して広告を打つ +適切にターゲットやキーワード 広告媒体を設定する。 Adjustからの情報を元にチューニングを行うことで、適切なターゲットに広告を打ち出すことがで きる。 1. 課金などターゲットにつながるユーザを獲得することで、着実に課金ユーザの数を伸ばして いる。 2. インストール単価の減少による広告費の削減 /費用対効果の向上。 30
  30. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. チューニング 1. Install形広告を打てばインストール数は入ってくる 2. adjust側で連携していると、広告PF側でAdjust計測したイベントを元に、自動で学 習して広告最適化できる 3. そこのプラットフォーム上である程度溜まってくると、ただ投資好きに打つだけでは なくて、よりターゲットに近いユーザに広告を出すようになる。 4. 付随して、キーワード設定やクリエイティブを切る、続けるを判断していくと、学習の サイクルにのせることができる。 a. プラットフォームの多さ b. クリエイティブを色々作ってダメならすぐ削ぎ落とす。 c. 配信面の最適化: 検索面、ディスプレイネットワーク etc d. KPIやキーワード最適化 31
  31. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. マイトレードのデータ活用/Adjust活用 広告最適化/分析 データ可視化 データ分析 32
  32. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 問題点: 1. データ分析者以外でも手軽にデータを見れるようにしたい 2. Adjust外のデータとの突合データが見たい。 解決策: Looker studioを使って可視化 データの可視化 結果 1. データ分析者以外でも大雑把な理解ができる。(マーケティングデータの民主化) a. KPIなどを見る習慣をチーム内で作ることができた。(daily scrum) b. bigqueryとか叩けない、dashboardが分かりにくい場合でも見やすい。 2. ここを見れば必要な情報がわかる!という意味で認知負荷を下げられる。 3. 突合により細かな分析データまで描画できる。 33
  33. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 各人が必要だと思うデータを追加していく。 「# マイトレ_データ分析」というチャンネルを作っていて、ここに見たい内容をポストしたり募ったりして、皆 が見たいデータを増やしている。 どうやって可視化の内容を増やしているの? 34
  34. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. Daily Scrumでの可視化データ利用 35
  35. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. マイトレードのデータ活用/Adjust活用 広告最適化/分析 データ可視化 データ分析 36
  36. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. サマリービューの作成 SQLを軽く書いて一意なIDなどを利用してテーブルをjoinしてサマリービューのようなも のを作成している。 Cloud Scheduler Summary View 37
  37. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. データ分析 各々好きなように分析して分析結果を投稿したりしている。 アプリ側やビジネス系の分析から、サーバコストなどサーバ側の分析まで幅広く。 38
  38. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 終わりに 2023 まとめ 参考文献 © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO Confidential. 39
  39. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. - モバイルアプリにおける流入測定には技術的な難しさがある。 - Adjustなどのツールを利用し、SDK実装をアプリ実装に組み込むことで流入測定を 行うことができる。 - Raw Data Exportなどの機能を使ってサーバにデータを集積できる。 - 蓄積したデータの利用法 - 広告最適化 - 可視化 - データ分析 まとめ 40
  40. © 2023 NTT DOCOMO, INC. All Rights Reserved. NTT DOCOMO

    Confidential. 参考文献 [1] App Store Review Guidelines https://developer.apple.com/jp/app-store/app-privacy-details/#user-tracking [2] How mobile app tracking is changing https://www.singular.net/blog/mobile-app-tracking-future/ [3] FlutterSDK: https://github.com/adjust/flutter_sdk [4] The design do’s and don’ts for getting the user opt-in on iOS 14.5+: https://www.adjust.com/ja/blog/opt-in-design-for-apple-app-tracking-transparency-att-ios14/ [5] Adjust placeholders list: https://partners.adjust.com/placeholders/ [6] Adjust: https://www.adjust.com/ja/ [7] Appsflyer: https://www.appsflyer.com/ja/ [8] Kochava:https://www.kochava.com/ [9] Serverless: https://cloud.google.com/serverless [10] Cloud functions vs CloudRun: https://cloud.google.com/blog/products/serverless/cloud-run-vs-cloud-functions-for-serverless?hl=en 41