イベントの送信を監視することは可能ですか?

TrackerDelegate インターフェースを実装したインスタンスを Tracker クラスに渡しておくことで、イベントの送信前にフックを仕掛けることが可能です。

フックを仕掛けることで、SDKからKARTEに送信されるすべてのイベントを受け取ることが可能です。
本機能を利用することで、受け取ったイベントを他のシステムに送信することなどが可能になります。

🚧

実装上の注意点

TrackerDelegate は標準イベントに任意のフィールドを付加するために用意されたものです。
そのため intercept メソッドの戻り値には、引数として受け取った値をそのまま渡すようにしてください。

イベントを受け取るための実装例

class TrackerDelegateImpl: TrackerDelegate {
  func intercept(_ event: Event) -> Event {
    // 他システムにイベントを送信する処理を実装する
    // イベント名は event.eventName、 カスタムフィールドは event.valuesから参照することが可能です
    
    // 引数はそのまま返す
    return event
  }
}
class TrackerDelegateImpl : TrackerDelegate {
  override fun intercept(event: Event): Event {
    // 他システムにイベントを送信する処理を実装する
    // イベント名は event.eventName、 カスタムフィールドは event.valuesから参照することが可能です
     
    // 引数はそのまま返す
    return event
  }
}
var trackerDelegate = TrackerDelegateImpl()

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
  // 委譲先のインスタンスをセットする
  Tracker.setDelegate(trackerDelegate)
  KarteApp.setup()
}
class YourApplication : Application() {
  override fun onCreate() {
    super.onCreate()
      
    // 委譲先のインスタンスをセットする
    Tracker.setDelegate(TrackerDelegateImpl())
    KarteApp.setup(this)
  }
}