콘텐츠로 이동

사용자 정의 Action 추가


RUM 초기화 후 addAction('<NAME>', '<JSON_OBJECT>') API를 사용하여 수집 이외의 Action 메트릭 데이터를 사용자 정의로 추가할 수 있습니다.

Action 추가

파일 다운로드 로컬 방식으로 불러오기

const { datafluxRum } = require('./lib/dataflux-rum-miniapp.js')
datafluxRum.addAction('<NAME>', '<JSON_OBJECT>');

// 코드 예시
datafluxRum && datafluxRum.addAction('cart', {
    amount: 42,
    nb_items: 2,
    items: ['socks', 't-shirt'],
});

불러오기

const { datafluxRum } = require('@cloudcare/rum-miniapp')
datafluxRum.addAction('<NAME>', '<JSON_OBJECT>');

// 코드 예시
datafluxRum && datafluxRum.addAction('cart', {
    amount: 42,
    nb_items: 2,
    items: ['socks', 't-shirt'],
});

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',
})

주의사항

  1. 필드 명명 원칙: • SDK 예약 필드(예: view_url, view_name 등 일반적인 필드) 사용을 피하세요. 이러한 필드는 SDK 내부 로직에 사용되어 충돌이 발생할 수 있습니다. • 접두사(예: custom_, user_)를 추가하여 사용자 정의 데이터를 구분할 수 있습니다.
  2. 필드 충돌의 영향: • 필드명이 충돌하면 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"
]

문서 평가

이 페이지가 도움이 되었나요?