Adobe Analytics 検証方法について - モバイルアプリ編

Adobe Analytics を活用する中で、変数の追加・編集を実施したいが、検証方法がわからずなかなか実施できないと思われている方も多いのではないでしょうか。
今回はそのようなお悩みを解決すべく、その第二弾として、モバイルアプリの検証方法をご紹介します。

Webの検証方法はこちら

https://qiita.com/hideyamane/items/27c1e15328345e13c08c

## 0. はじめに
### 検証全体の流れ
モバイルアプリ検証の流れはWebと同じく、計測データをアドビサーバーに送信する際（本エントリー「検証その1」の個所）、計測データが処理・格納された際（本エントリー「検証その2」の個所） の個所で実施します。

### 検証可能なOS
本方法で検証可能なOSは下記となります。

+ iOS … すべて
+ Android … Android 6.x 以前

:::note
Android 7.x （Android N） 以降で本内容を実施するには、別途 SSL 証明書が信頼できるものであることを、実装を通して宣言する必要があります。詳しくは下記 Charles の公式サイト「Android」の箇所よりご確認ください。
:::


https://www.charlesproxy.com/documentation/using-charles/ssl-certificates/

##1. 事前準備
###1-1. イメージリクエストをキャプチャするツールの用意とセットアップ
モバイルアプリの検証もWebと同じく、アドビサーバーに送信するイメージリクエストをキャプチャし実施します。今回はいくつかあるツールのうち、**Charles** を利用して検証していきます。尚、検証にはCharlesのセットアップが必要となりますので、以下を参考にセットアップしておきます。

https://qiita.com/usagimaru/items/d340e87da98e62f99b60

###1-2. コンテキストデータを処理ルール(Processing Rule)に登録
アプリ上の行動データは、本エントリーでも活用していますが、propやeVarではなく「コンテキストデータ」としてアドビサーバーに送信します。ちなみに、この送信されたコンテキストデータはそのままではレポートに利用できず、Adobe Analytics 内の「処理ルール」機能を活用する必要があります。
尚、本エントリーではこれら機能の使い方については触れないため、以下よりご確認いただけますと幸いです。

https://experienceleague.adobe.com/docs/analytics/implementation/vars/page-vars/contextdata.html?lang=ja

https://experienceleague.adobe.com/docs/analytics/admin/admin-tools/processing-rules/processing-rules.html?lang=ja-JP

##2. 検証その1 〜レポートにデータが入る前の検証〜
ではWebと同じく早速検証してみます。

+ iOS用アプリ 「Bus Booking」 内チェックボックス「No Stops」の箇所を検証
+ 開発環境用に、「lumadev」というレポートスイートを事前に準備
+ チェックボックス箇所には、コンテキストデータ「eVar_nostopcheck」に、チェックが入ったら「On」、はずしたら「Off」と値が入るように実装
 
###2-1.セットアップ済みの Charles と、アプリを起動

1. Charlesを起動します。
![001.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1329688/8917639d-f7cb-7b93-9de8-885d731ac114.jpeg)

2.　①アプリを起動し、②検証箇所を操作します。
![013.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1329688/441dc662-b34d-e294-ca1c-0dccf5b449ef.jpeg)

###２-２. Charles を利用して通信を確認する
1. Charles 検索窓に「b/ss」と入力し、イメージリクエストのみを絞り込んでおき
![002.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1329688/5e15c5ce-9f8e-2fa7-7013-37fa752c6e7d.jpeg)

2. ①出力されたイメージリクエストを選択し ②Contentsタブを選択、③検証箇所の確認
![014.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1329688/634aa239-6816-630e-84c2-f9ef35642a7b.jpeg)

③から、期待する動作となっていることが確認できました。

### 2-3. 意図するデータが出力されない場合
実装が誤っている可能性がありますので、修正しこの手順を繰り返します。

##3. 検証その2 〜レポートにデータが入った後の検証〜
検証その1に問題がない場合、Webと同様、Adobe Analytics のレポートを見て最終確認をします。

![006.jpg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/1329688/9ccb2305-5123-d2b8-ddd2-316ea3ac8815.jpeg)

今回は上記のようにレポート上でも表示されているため、ただしく実装されることが確認できました。

### 3-1. 意図するデータが出力されない場合
####「処理ルール」の設定が異なる
「処理ルール」画面を確認し、誤った設定をしていないかご確認ください。

## 4. 実装を本番環境に移行し、検証その1,2 を再度実施
検証その2で意図する変数に値が含まれていることを確認できたら、実装内容を本番環境に移行し、改めて検証その1、２を実施します。
これらを通して問題ないようであれば、検証作業は終了となります。

## 5. まとめ
以上 モバイルアプリの検証方法を紹介させていただきました。Webの検証に比べると事前準備が多く発生してしまいますが、Web同様、想定以上に簡単と思われた方も多いのではないでしょうか。

尚、今回利用したアプリ「BusBooking」アプリは、SDK実装トレーニング用に弊社から配布しているデモアプリです。
以下からダウンロードいただけますので、実装・検証テスト用にご活用くださいませ。

https://github.com/Adobe-Marketing-Cloud/busbooking-mobileapps

また、アプリにも「Project Griffon」と呼ばれる弊社提供のデバッグツールが存在します。本ツールでは Android N 以降も活用いただけます。近日、この Project Griffon を利用したデバッグ方法についてご紹介できればと思います。

https://aep-sdks.gitbook.io/docs/beta/project-griffon

以上2回にわたり検証方法について述べさせていただきました。改めて、この記事をきっかけに、Adobe Analytics を使いこなしていただけますと幸いです。