ビジュアルトラッキング(Beta)を利用する

🚧

ビジュアルトラッキングは Beta 版の機能です

ビジュアルトラッキング機能 は現在 Beta 版として提供しており、MaterialAppにのみ対応しています。
そのため、今後予告なく仕様変更を伴う機能改善やAPIの破壊的変更が行われる可能性があります。

ペアリングしたデバイスから管理画面に対して送信した操作ログを利用して、イベントの発火条件を定義できます。

定義したイベント発火条件は各デバイスに反映されるため、アプリケーションをリリースすることなく、イベントの発火をコントロールすることが可能になります。

導入手順

  1. karte_visual_trackingパッケージのインストール
    アプリケーションの pubspec.yaml の dependencies にパッケージを記入し、 pub get コマンドでインストールしてください。
dependencies:
  karte_visual_tracking: ^0.5.0
flutter pub get
  1. Karte Gradle Plugin の適用
    Androidでビジュアルトラッキングを有効化するには、Gradle Plugin の設定が必要です。
    ルートプロジェクトの build.gradlebuildscript ブロックに以下の記述を追加してください。
    Karte Gradle Plugin は 2.2.0 以降のバージョンを使用して下さい。
buildscript {
  // ...
  repositories {
    // ...
    mavenCentral()
    // ...
  }
  dependencies {
    classpath "io.karte.android:gradle-plugin:2.5.0"
    //...
  }
}

次にアプリの build.gradle を修正し、apply plugin: 'com.android.application' の下に apply plugin: 'io.karte.android' を追記してください。

apply plugin: 'com.android.application'
apply plugin: 'io.karte.android'

📘

プラグインの対応バージョン

アプリを作成した際のFlutterバージョンによって Android Gradle Plugin(com.android.tools.build:gradle)のバージョンが異なる場合があります。

対応していないバージョンを組み合わせた場合、ビルド時にエラーが起きる可能性があります。

Karte Gradle Plugin が対応している Android Gradle Plugin のバージョン については下記ページを参照してください。

Android Gradle Pluginの動作確認済みバージョン

実装手順

カスタムURLスキームの設定(Android)

ペアリングのために、カスタムURLスキームの指定が必要です。
既にカスタムURLスキームがある(intent-filter 要素にアプリ固有のスキームが指定された Activity が AndroidManifest.xml に存在する)場合は、以下の手順は不要です。

カスタムURLスキームの設定が無い場合、ペアリング用のURLスキームに任意の文字列を指定可能です。
name 属性に "io.karte.android.Tracker.PairingUrlScheme" を指定した meta-data 要素を追加し、値にURLスキームを設定してください。

<application android:label="SampleApp" ...>
    <meta-data android:name="io.karte.android.Tracker.PairingUrlScheme" android:value="sampleapp"/>
    ...
</application>

カスタムURLスキームの設定(iOS)

設定方法については カスタムURLスキームを設定する をご覧ください。

ネイティブSDKの操作ログ収集を無効化する(iOS)

ネイティブSDKのビジュアルトラッキング機能がFlutter framewrok内のイベントを検出する場合があります。
操作ログが重複するため、ネイティブSDKの操作ログ収集を無効化することを推奨します。

操作ログ収集の設定はVisualTrackingConfigurationのプロパティautomaticallyCollectLogsの値が反映されます。
ConfigurationオブジェクトにVisualTrackingConfigurationを追加し、KarteApp.setup(configuration) メソッドに設定してください。

  1. SDKのインポート宣言を追加
import KarteVisualTracking
  1. SDKの初期化コードにVisualTrackingConfigurationを追加
let configuration = Configuration()

let visualTrackingConfiguration = VisualTrackingConfiguration()
visualTrackingConfiguration.automaticallyCollectLogs = false
configuration.libraryConfigurations.append(visualTrackingConfiguration)

KarteApp.setup(appKey: appKey, configuration: configuration)

VisualTrackingWidgetを追加する

操作ログ収集のためにVisualTrackingWidgetをWidgetツリーに追加します。
このWidgetの配下で発生する操作ログを自動的に収集することができます。

  1. SDKのインポート宣言を追加
    MaterialAppをBuildするファイルの先頭にインポート宣言を追加します。
import 'package:karte_visual_tracking/karte_visual_tracking.dart';
  1. VisualTrackingWidgetを追加
    MaterialAppの親にVisualTrackingWidgetを追加します。
Widget build(BuildContext context) {
    return VisualTrackingWidget(
      child: MaterialApp(
      ...
      ),
    );
  }

KarteNavigatorObserverを追加する

操作ログ収集のためMaterialAppのnavigatorObserversパラメータへ、KarteNavigatorObserverを追加します。
これにより名前の付与されたRouteへの画面遷移にて、操作ログを自動的に収集します。

Widget build(BuildContext context) {
    return VisualTrackingWidget(
      child: MaterialApp(
        navigatorObservers: [KarteNavigatorObserver()],
        ...
      ),
    );
  }

動作確認

2点の動作が確認できれば問題なく動作していることが確認できます。

  1. ペアリングの確認
  2. 定義に基づいたイベントの送信が行われているか確認

ペアリングをはじめとした各種操作方法については、サポートサイトの ビジュアルトラッキング をご覧ください。

📘

ペアリングの動作について

ペアリング開始後、SDKはペアリングを維持するために一定間隔で通信を行います。
なおアプリケーションのプロセスが終了した場合は、ペアリングは解除されます。