최초 이벤트 검증
이 장에서는 AE 시스템의 특수 데이터 구조인 최초 이벤트 검증의 사용 방법을 소개합니다. 최초 이벤트 검증은 데이터 필터링 기능으로, 이벤트 데이터에 고유 식별 ID를 추가하면 시스템이 데이터를 받을 때 해당 ID가 이전에 나타난 적이 있는지 비교합니다. ID가 이미 나타난 데이터는 적재할 수 없고, 나타난 적이 없는 데이터는 적재되며 해당 ID가 기록됩니다. 이를 통해 해당 ID가 처음 나타난 이벤트만 적재되도록 보장합니다.
최초 이벤트 검증은 성능 부담이 크므로 모든 이벤트에 이 검증을 추가하는 것은 권장하지 않으며, ThinkingAI 담당자의 도움을 받아 사용하는 것을 권장합니다
1. 데이터 구조
최초 이벤트 검증 기능을 사용하려면 데이터를 다음과 같이 조정해야 합니다:
- ID 필드
#first_check_id를 추가합니다. 타입은 반드시 문자열이어야 하며, 이 필드는 최초 이벤트를 검증하는 식별 ID입니다. 해당 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"인 다른 데이터가 이미 적재되어 있다면 이 데이터는 적재할 수 없고, 이전에 적재된 적이 없다면 이 데이터는 적재할 수 있습니다
2. 데이터 처리 로직
AE 시스템은 이벤트마다 ID 테이블을 하나씩 관리하며, 이벤트 간 ID 테이블은 서로 독립적입니다.
시스템이 #first_check_id가 포함된 이벤트 데이터를 받으면 해당 이벤트의 ID 테이블에서 이 데이터의 #first_check_id를 찾고, 조회 결과에 따라 다르게 처리합니다:
- ID 테이블에 해당
#first_check_id가 없으면 이 데이터는 검증을 통과하여 바로 적재되며, ID 테이블에 해당#first_check_id가 기록됩니다 - ID 테이블에 해당
#first_check_id가 있으면 이 데이터는 바로 폐기됩니다
같은 이벤트에 #first_check_id가 포함된 데이터와 이 필드가 없는 데이터를 모두 업로드한 경우, 이 필드가 없는 데이터는 최초 이벤트 검증 처리를 거치지 않고 일반 데이터와 동일하게 처리됩니다
위의 핵심 로직 외에 주의할 점이 두 가지 있습니다:
1. 성능을 보장하기 위해 시스템은 정기 배치 처리 방식으로 판단하며, 기본 간격은 1시간입니다. 따라서 최초 이벤트 검증을 사용하는 이벤트 데이터는 기본적으로 1시간의 조회 지연이 발생합니다
2. "#first_check_id"는 처리 후 데이터베이스에 기록되지 않습니다. 기록이 필요하면 이벤트 속성을 하나 사용하여 기록하십시오
3. 모범 사례
신규 디바이스
신규 디바이스 데이터는 최초 이벤트 검증을 사용하기에 매우 적합합니다. 애플리케이션이 시작될 때마다 디바이스 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로 사용합니다. 이 밖에도 디바이스 모델, 유입 채널 등 다른 속성을 추가하여 분석 시 차원을 늘릴 수 있습니다. AE 클라이언트 SDK 또는 서버 SDK의 경우 해당 SDK의 연동 가이드를 참고하십시오. 가이드의 "최초 이벤트" 섹션에서 자세한 인터페이스 호출 방법을 제공합니다

