LoginSignup
4
1

More than 1 year has passed since last update.

Adobe Analytics でAppからWebViewに遷移した際に同一Sessionで計測する方法

Last updated at Posted at 2021-12-22

はじめに

アプリとWebの両方を展開してユーザーへサービスを届ける機会は増えていますが、アプリからWebページへ遷移する際、そこでセッションが途切れてしまうと分析がし難くなってしまいます。

Adobe Experience Platform Mobile SDK では異なる環境への遷移時にセッションが途切れないよう、計測用IDを引き継ぐURLパラメータ付与機能を提供しています。
この記事ではこの機能の実装方法、及び実装した後の引き継ぎ状態の確認方法についてご紹介いたします。

本記事は投稿時点の情報に基づいて掲載しています。とくに Adobe Analytics に関する情報に関しては、その後の機能アップデート等によっては内容が変更となっている場合がありますのでご了承ください。

前提

  • Project Griffon に登録済みであること
  • アプリ、Webの双方に Adobe Analytics を設定済みであること

アプリ計測の確認には Project Griffon を利用します。記事作成現在(2021/12)ベータ版であり導入に際して申請が必要となります。とても便利なツールですので、ぜひご活用ください。 詳しくは以下をご参照ください。 https://aep-sdks.gitbook.io/docs/beta/project-griffon

環境

こちらの記事は以下の環境で実行しています。

Web側

名称 バージョン
Adobe Analytics (Tags Extension) v1.8.7
Experience Cloud ID Service (Tags Extension) v5.2.0

この他、ID引き継ぎの検証にパケットキャプチャソフト(Charles)を使用しています。

モバイル側

名称 バージョン
Xcode Version 13.0
iOS (iOS Simulator) 15.0
ACPCore (iOS SDK) v2.9.4
AEPAssurance (iOS SDK) v1.1.3
ACPAnalytics (iOS SDK) v2.5.1

iOS(Swift)の環境でご紹介していますが、ヘルプの方ではAndroid、React Native、Unityなどの他環境のサンプルもありますので、こちらもご参照ください。

実装

実装には以下の対応を行います。

  1. appendToURL を実装する(モバイル対応)
  2. overwriteCrossDomainMCIDAndAID の設定を行う(Web対応)

1. appendToURL を実装する(モバイル対応)

アプリからのWebへの遷移時には appendToURL を使用し、URLパラメータとしてIDを引き継ぐように実装します。

//`goToWeb`を押した際に`SFSafariViewController`を使ってWebView表示を行うサンプル
@IBAction func goToWeb(_ sender: Any) {
    let url = "https://example.com" // 遷移先URL
    ACPIdentity.append(to:URL(string: url), withCallback: {(appendedURL) in
        // handle the appended url here
        if let appendedURL = appendedURL {
            // APIs which update the UI must be called from main thread
            DispatchQueue.main.async {
                // WebView(SFSafariView)
                self.present(SFSafariViewController(url: appendedURL), animated: true, completion: nil)
            }
        } else {
            // handle error, nil appendedURL
        }
    });
}

(iOSの場合)appendToURL のコールバックとしてURLが渡されるため、WebViewの表示には DispatchQueue.main.async を利用してメインスレッドで呼び出す必要がありますのでご注意ください。

他言語での実装サンプルや詳しい情報はこちらをご参照下さい。
appendToURL / appendVisitorInfoForURL

2. overwriteCrossDomainMCIDAndAID の設定を行う(Web対応)

アプリ側の対応でIDの引き渡しURLの発行は行われますが、Web側でのID受け入れ(上書き)設定も必要です。
Data Collection Tags (旧Launch)でIDサービスのExtension Experience Cloud ID Service を導入し、Variables にoverwriteCrossDomainMCIDAndAID = trueを設定します。
スクリーンショット 2021-12-01 9.47.35.png

Data Collection Tags を使用していない場合、のjavascriptコードで実装が可能です。詳細は以下のヘルプをご参照ください。

セッション同期(ID引き継ぎ)の設定は以上で終わりです。
続いて検証を行なっていきます。

検証

検証には Project Griffon とパケットキャプチャソフトを利用し、以下の手順で確認します。

  1. アプリで計測されているIDの確認
  2. Web遷移後のIDの確認

1. アプリで計測されているIDの確認

アプリの計測値の確認は Project Griffon へ接続し、確認します。

Project Griffon への接続

早速 Project Griffon のセッションを作成し、デバイスに接続していきます。
セッション名とベースURL(アプリのURIスキーム)を入力して接続用URLを発行します。今回はエミュレータを使うため、QRコードではなくURLリンクを使っていきます。
スクリーンショット 2021-12-04 11.58.34.png

エミュレータのSafariで発行されたリンクを開き、先の画面のPINコードを入力して接続します。アプリが起動し、接続ができるとアプリの右上にAdobeのロゴと接続中を示す緑の丸が表示されます。
ezgif.com-gif-maker.gif

計測結果の確認

接続ができたので、続いて Project Griffon の画面で記録されたIDを確認していきます。

左部のメニューから Analytics Events を選択しAdobe Analytics 向けに送信されたイベントを確認します。中央部には送信された順にイベントが並びます(例ではHomeを表示したTrack Stateのみが表示されています)。イベントを選択すると右部に Adobe Analytics に送信された情報が確認できます。こちらをスクロールしていくとmcvisIdがあります。こちらが引き継ぎに使用されるIDです。
スクリーンショット 2021-12-04 12.37.17.png
今回のID18630127801028916326742402013009832152が確認できました。

2. Web遷移後のIDの確認

アプリ側でのIDは確認できたので、続いてWebに遷移した後のIDを確認します。
パケットキャプチャソフトで Adobe Analytics へのリクエストを確認していきます。パケットキャプチャソフトを立ち上げ、アプリでWebに遷移します。
ezgif-7-88e2c498ac5f.gif
キャプチャ結果にb/ssでフィルターをかけAdobe Analytics へのリクエストを確認します。Query Stringmidには引き継がれたIDが記録されていますgには遷移先のURLが記録されていることが確認できます。
スクリーンショット 2021-12-04 16.43.53.png
アプリ側のID18630127801028916326742402013009832152が引き継がれ、同じであることが確認できました。

引き継ぎURLについて

発行されたID引き継ぎ時のURLにはadobe_mcパラメータが付与され、引き継ぎに必要な情報が格納されています。

[イメージ]
https://example.com/?adobe_mc=TS%3D1638603809%7CMCMID%3D18630127801028916326742402013009832152%7CMCORGID%3DXXXXXXXXXXXXXXXXXXXXXXXX%40AdobeOrg

adobe_mcパラメータには以下の項目が含まれます。

名称 バージョン
MCMID Experience Cloud ID (ECID)
MCORGID Experience Cloud Org ID (組織ID)
MCAID Analytics Tracking ID (AID) *Adobe AnalyticsのExtensionで指定している場合のみ
TS 引き継ぎURLが発行された時刻を表すタイムスタンプ

URLパラメータのMCMIDからも引き継ぎ対象のIDが確認できます。
また、発行されたURLをコピーしてPCブラウザでアクセスした場合にもIDは引き継がれます。

引き継ぎURLには有効期限が設定されており、発行から数分程度でIDの引き継ぎが実行されなくなります。通常の利用では問題ないと思いますが、検証の際などに発行されたURLを共有される際にはご注意ください。

まとめ

今回はアプリからWebへ遷移する際に Adobe Analytics のセッションを引き継ぐ機能をご紹介しました。
実装に手を入れる必要はありますが、複雑な手順なく対応できます。アプリとWebのセッションが繋がることによりデータ分析が進み、より深い理解からの施策検討もできるようになるかと思います。みなさまの導入にお役立ていただけましたら幸いです。

私が所属するアドビのカスタマーサクセス部門では技術のエキスパートを随時募集しています。私たちの部門や職種のご紹介をしていますので、以下のページもぜひご覧ください。 https://blog.adobe.com/jp/publish/2021/06/21/corp-adobe-life-talent-interview-11.html

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1