사용자 정의 Action 추가¶
RUM 초기화 후 addAction('<NAME>', '<JSON_OBJECT>') API를 사용하여 수집 이외의 Action 메트릭 데이터를 사용자 정의로 추가할 수 있습니다.
Action 추가¶
파일 다운로드 로컬 방식으로 불러오기
RUM SDK를 사용하여 사용자 정의 Action을 추가하고 필드 충돌을 방지하는 방법¶
window.DATAFLUX_RUM.addAction을 사용하여 사용자 정의 데이터를 추가할 때는 SDK 예약 필드와의 충돌을 피해야 합니다. 충돌이 발생하면 데이터 설정이 무효화됩니다. 다음은 잘못된 예시와 주의사항입니다.
예시 코드 (필드 충돌 포함)
window.DATAFLUX_RUM.addAction('test action', {
view_url: 'a', // SDK 예약 필드 "view_url"과 충돌하여 이 필드가 무효화됩니다.
b: 'b',
c: 'c',
})
개선된 코드 및 설명
SDK 예약 필드와 동일한 이름을 사용하지 않고 사용자 정의 필드명이나 접두사를 사용하여 충돌을 해결할 수 있습니다.
// 충돌을 방지하기 위해 권장되는 사용자 정의 필드 명명 방식
window.DATAFLUX_RUM.addAction('test action', {
custom_view_url: 'a', // 사용자 정의 필드명을 사용하여 SDK와의 충돌 방지
b: 'b',
c: 'c',
})
주의사항
- 필드 명명 원칙:
• SDK 예약 필드(예:
view_url,view_name등 일반적인 필드) 사용을 피하세요. 이러한 필드는 SDK 내부 로직에 사용되어 충돌이 발생할 수 있습니다. • 접두사(예:custom_,user_)를 추가하여 사용자 정의 데이터를 구분할 수 있습니다. - 필드 충돌의 영향: • 필드명이 충돌하면 SDK는 해당 필드의 사용자 정의 값을 무시합니다. • 필요한 데이터가 올바르게 전달되지 않을 경우 필드 명명 충돌 여부를 확인하는 것이 중요합니다.
다음은 예약 필드 목록입니다.
[
"sdk_name",
"sdk_version",
"app_id",
"env",
"service",
"version",
"source",
"userid",
"user_email",
"user_name",
"session_id",
"session_type",
"session_sampling",
"is_signin",
"os",
"os_version",
"os_version_major",
"browser",
"browser_version",
"browser_version_major",
"screen_size",
"network_type",
"device",
"view_id",
"view_referrer",
"view_url",
"view_host",
"view_path",
"view_name",
"view_path_group",
"view_url_query",
"action_id",
"action_ids",
"view_in_foreground",
"display",
"session_has_replay",
"is_login",
"page_states",
"session_sample_rate",
"session_replay_sample_rate",
"drift",
"action_type",
"action_name",
"duration",
"action_error_count",
"action_resource_count",
"action_frustration_types",
"action_long_task_count",
"action_target",
"action_position"
]