![Page 1: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/1.jpg)
App Center Analytics を使い倒そう~静的コード生成を活用した Xamarin における AOP 活用~
AD62
![Page 2: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/2.jpg)
About Me
http://www.nuits.jp
https://blog.nuits.jp
@nuits_jp
![Page 3: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/3.jpg)
Today’s Goal
![Page 4: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/4.jpg)
Today’s Goal
![Page 5: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/5.jpg)
App Center Analytics概要
![Page 6: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/6.jpg)
App Center
Test
Build
Distribute
Craches
Analytics
Push Notifications
![Page 7: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/7.jpg)
App Center Analytics 概要
No. 機能分類 説明
1 Overview アプリケーション利用者の利用状況の確認
2 Custom Events カスタムイベント情報の収集と確認
3 Log Flow Analytics SDKの登録情報のリアルタイム監視
デバッグなどに利用
4 Export to Azure Microsoft AzureのApplication Insightsへ、データをエク
スポートして分析可能
![Page 8: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/8.jpg)
App Center Analytics 概要
![Page 9: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/9.jpg)
App Center Analytics 概要
![Page 10: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/10.jpg)
App Center Analytics 概要
No. 機能 項目 説明
1 Active Users Monthly 月別のアクティブユーザー数
2 Weekly 週別のアクティブユーザー数
3 Daily 日別のアクティブユーザー数
4 Engagement Daily sessions per user 1ユーザーの1日の平均セッション数
5 Total sessions 期間内の総セッション数
6 Average sessions per day 一日の平均セッション数
7 Session duration セッション別接続時間
8 Average session length 平均セッション時間
9 Devices and OS Device model distribution 機器別の利用者数・比率
10 OS distribution OSバージョン別の利用者数・比率
11 Countries and Languages Countries 国別の利用者数・比率
12 Languages 言語別の利用者数・比率
13 Active Users per Version Active Users per Version アプリバージョン別利用者数
14 Latest Version アプリケーションの最終バージョン
15 Adoption 最終バージョンの移行率
![Page 11: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/11.jpg)
App Center Analytics 概要
![Page 12: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/12.jpg)
App Center Analytics 概要
![Page 13: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/13.jpg)
App Center Analytics 概要
No. 機能 項目 説明
1 Event Page Count イベント発生数
2 Trend 前回期間からのカウントの変更トレンド
3 Users イベントを発生させたユーザー数
4 User change 前回期間からのユーザー数変更トレンド
5 Per user ユーザーごとの平均発行数
6 Detail event view Users イベントを発行させたユーザー数の推移
7 Count イベント発行数の推移
8 Count per user ユーザーごとのイベント発行数の推移
9 Count per session セッションごとのイベント発行数の推移
10 Properties カスタムしたログプロパティ
![Page 14: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/14.jpg)
App Center Analytics 概要
![Page 15: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/15.jpg)
App Center Analytics 概要
No. 機能分類 説明
1 Overview アプリケーション利用者の利用状況の確認
2 Custom Events カスタムイベント情報の収集と確認
3 Log Flow Analytics SDKの登録情報のリアルタイム監視
デバッグなどに利用
4 Export to Azure Microsoft AzureのApplication Insightsへ、データをエク
スポートして分析可能
![Page 16: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/16.jpg)
Analyticsを使う3つのステップ
![Page 17: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/17.jpg)
Analyticsを使う3つのステップ
AppCenter.Start("{Your App Secret}", typeof(Analytics));
Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {{ "Category", "Music" },{ "FileName", "favorite.avi"}
});
![Page 18: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/18.jpg)
「どこで」「どう」トラッキングしますか?
![Page 19: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/19.jpg)
「どこで」トラッキングするか? MVVM編
Binding &
Command
Call
Notification
![Page 20: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/20.jpg)
「どう」トラッキングするか?
Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {{ "Category", "Music" },{ "FileName", "favorite.avi"}
});
![Page 21: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/21.jpg)
汚染された結果
![Page 22: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/22.jpg)
「どう」トラッキングするか?
AOPが最適!
![Page 23: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/23.jpg)
AOPとは
![Page 24: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/24.jpg)
AOPイメージ
![Page 25: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/25.jpg)
つまり
![Page 26: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/26.jpg)
Xamarin で AOP するには問題が…
静的コード生成を活用することで可能
![Page 27: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/27.jpg)
静的コード生成とは
コンパイルJIT
or
AOT
![Page 28: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/28.jpg)
⇒ トラッキングコードを埋め込まなくてよい
⇒機械的に埋め込む為、個別テストは不要
⇒影響箇所が集約され変更が容易に
AOPにより多くの問題が解消される
![Page 29: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/29.jpg)
静的コード生成前とコード生成後
public string Message {set {
_message = value;}
public string Message {set {
Analytics.TrackEvent("Sample.MainPageViewModel#Message", new Dictionary<string, string> {{ "Value", value }});
_message = value;}
![Page 30: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/30.jpg)
コード生成前のC#コードとバイトコード
public string Message {set {
_message = value;}
IL_0000: ldarg.0IL_0001: ldarg.1IL_0002: stfld string Sample.MainPageViewModel::_messageIL_0007: ret
![Page 31: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/31.jpg)
バイトコード&それを生成するC#コード
IL_0000: ldarg.0IL_0001: ldarg.1IL_0002: stfld string Sample.MainPageViewModel::_messageIL_0007: ret
var body = getMethodDefinition.Body;body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_0));body.Instructions.Add(Instruction.Create(OpCodes.Ldarg_1));var fieldDefinition = typeDefinition.Fields.Single(x => x.Name == "_message");body.Instructions.Add(Instruction.Create(OpCodes.Stfld, fieldDefinition));body.Instructions.Add(Instruction.Create(OpCodes.Ret));
![Page 32: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/32.jpg)
生成するC#コードとバイトコード
Analytics.TrackEvent("Sample.MainPageViewModel#Message", new Dictionary<string, string> {{ "Value", value }});
IL_0000: ldstr "Sample.MainPageViewModel#Message"IL_0005: newobj instance void class
[mscorlib]System.Collections.Generic.Dictionary`2<string, string>::.ctor()IL_000a: dupIL_000b: ldstr "Value"IL_0010: ldarg.1IL_0011: callvirt instance void class
[mscorlib]System.Collections.Generic.Dictionary`2<string, string>::Add(!0, !1)IL_0016: call void
[Microsoft.AppCenter.Analytics]Microsoft.AppCenter.Analytics.Analytics::TrackEvent(string, class [mscorlib]System.Collections.Generic.IDictionary`2<string, string>)
![Page 33: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/33.jpg)
コード生成の課題
適切な用法用量をまもる事が肝心
![Page 34: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/34.jpg)
静的コード生成に利用するライブラリ
No. ライブラリ 説明
1 Mono.Cecil バイトコードを編集する機能を提供するライブラリ
2 Fody Mono.Cecilを利用し、コード生成プラグインを作成し、ビルド
時にコード生成を実行するフレームワーク
![Page 35: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/35.jpg)
サンプルコード
https://github.com/nuitsjp/ReactiveTracker.Fody
https://github.com/nuitsjp/BlueMonkey-and-AppCenter
https://qiita.com/Nuits/items/3bd43f41a19d61510ef0
![Page 36: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/36.jpg)
まとめ
![Page 37: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/37.jpg)
まとめ
![Page 38: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/38.jpg)
Any Questions?
![Page 39: App Center Analytics を使い倒そうApp Center Analytics 概要 No. 機能 項目 説明 1 Event Page Count イベント発生数 2 Trend 前回期間からのカウントの変更トレンド](https://reader036.vdocuments.mx/reader036/viewer/2022062505/5ed15ab8b06c4265975b16c4/html5/thumbnails/39.jpg)
© 2018 Atsushi Nakamura All rights reserved.
本コンテンツの著作権、および本コンテンツ中に出てくる商標権、団体名、ロゴ、製品、サービスなどはそれぞれ、各権利保有者に帰属します。
本情報の内容 (添付文書、リンク先などを含む) は、de:code 2018 開催日 (2018年5月22~23日) 時点のものであり、予告なく変更される場合があります