menu
Is this helpful?

# 첫 이벤트 체크

이 장에서는 TE의 특별한 데이터 구조와 동작에 대해 소개합니다. 첫 이벤트 체크는 데이터 필터링 특성으로, 이벤트 데이터에 고유한 식별 ID를 추가하고 TE가 데이터를 수신하면, 그 ID가 이전에 나타났는지 여부를 비교합니다. ID가 확인된 데이터는 저장되지 않고, ID가 확인되지 않은 데이터는 저장됩니다. 그 ID를 기록함으로써, ID가 처음으로 확인된 이벤트가 저장되었음을 보장합니다.

WARNING

첫 이벤트 체크의 성능 오버헤드가 크기 때문에, 모든 이벤트에 체크를 추가하는 것은 권장되지 않습니다. 매번 TE 스태프에게 문의해 주세요.

# 데이터 구성

첫 이벤트 체크 기능을 사용하기 위해서는 미리 데이터의 조정이 필요합니다.

  • ID 필드#first_check_id는 문자열이어야 합니다. 이 필드는 첫 이벤트를 검증하기 위한 ID이며, 처음에 표시된 데이터는 저장되고, 그 후에는 저장되지 않습니다. 다른 이벤트의 #first_check_id은 서로 독립적이기 때문에, 각 이벤트의 첫 번째 검사는 서로 간섭합니다.

다음은 #first_check_id#first_check_id의 위치에서 주목할 수 있는 데이터 샘플입니다

{
  "#account_id": "ABCDEFG-123-abc",
  "#distinct_id": "F53A58ED-E5DA-4F18-B082-7E1228746E88",
  "#type": "track",
  "#ip": "192.168.171.111",
  "#uuid": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
  "#time": "2017-12-18 14:37:28.527",
  "#first_check_id": "123456",
  "#event_name": "test",
  "properties": {
    "argString": "abc",
    "argNum": 123,
    "argBool": true
  }
}

위 데이터의 #first_check_id가 '123456'이고, 이벤트 'test'의 앞에 이미 #first_check_id가 '123456'인 다른 데이터가 저장되어 있다면, 해당 데이터는 저장할 수 없으며, 앞서 저장되어 있지 않다면, 해당 데이터는 저장할 수 있습니다.

# 데이터 처리 로직

TE는 이벤트마다 ID 테이블을 유지하며, 다른 이벤트 간에 ID 테이블은 서로 독립적입니다.

#first_check_id 이벤트 데이터를 수신하면, 해당 이벤트의 ID 테이블에서 그 데이터의 #first_check_id, 쿼리 결과에 따라 다른 처리를 수행합니다.

  1. ID 테이블에 존재하는 #first_check_id는 데이터 검증을 거쳐 바로 입고되며, ID 테이블에는 #first_check_id이 있습니다.
  2. ID 테이블에 #first_check_id가 가치가 있다인 경우, 해당 데이터는 직접 삭제됩니다

같은 이벤트가 #first_check_id데이터를 가지고 있습니다와 그 필드를 가지지 않은 데이터 양쪽을 업로드한 경우, 그 필드를 가지지 않은 데이터는 첫 이벤트 체크의 처리를 받지 않고, 일반적인 데이터와 일치합니다.

TIP

위의 중요한 로직에 더해, 두 가지 주의사항이 있습니다.

  1. 성능을 보장하기 위해, 시스템은 타이밍 배치 처리 방식으로 판단하며, 디폴트 구간은 1시간이므로, 처음으로 이벤트 체크를 사용한 이벤트 데이터에는 디폴트 1시간의 쿼리 딜레이

"#first_check_id" 처리 후에는 데이터베이스에 기록되지 않습니다. 기록이 필요한 경우는, 이벤트 속성 레코드

# 최적화 솔루션

# 디바이스 추가

디바이스의 새로운 데이터는 스타트 이벤트 체크에 최적이며, 애플리케이션이 시작될 때마다, 디바이스ID를 ##first_check_id로 하는 "새로운 디바이스" 이벤트를 리포팅할 수 있으며, 스타트 이벤트 체크의 논리에 따르면, 디바이스ID가 처음으로 나타난 "새로운 디바이스" 이벤트만이 기록되고, 그 후에 나타난 데이터는 버려집니다. 따라서, 저장된 이벤트는, 디바이스ID마다 처음으로 발생하는 이벤트이며, 디바이스의 새로운 로직에 준수합니다.

다음은 첫 이벤트 체크를 사용한 디바이스의 새로운 이벤트의 예입니다.

{
  "#distinct_id": "F53A58ED-E5DA-4F18-B082-7E1228746E88",
  "#type": "track",
  "#ip": "192.168.171.111",
  "#time": "2017-12-18 14:37:28.527",
  "#first_check_id": "device_id_123456",
  "#event_name": "new_device",
  "properties": {
    "device_id": "device_id_123456"
  }
}

이 이벤트는 애플리케이션이 시작될 때마다 보고되며, 디바이스ID를 #first_check_id로서 #first_check_id할 수 있습니다. 더하여, '디바이스 모델'이나 '소스 채널' 등의 다른 속성을 추가하여 분석 시의 차원을 늘릴 수도 있습니다. TE의 클라이언트 SDK 또는 서비스 측 SDK에서는, 해당 SDK의 접근 가이드를 확인할 수 있습니다. 가이드의 '갱신 가능 이벤트'와 '재작성 가능 이벤트' 장에서는, 자세한 인터페이스 호출 방법입니다.