이벤트

이 문서는 Adbrix SDK를 사용하여 사용자의 동작을 분석하기 위해 수행해야 할 작업에 대해 설명합니다. 이를 사용하기 위해서는 SDK 연동이 선행되어야 합니다.

유의사항

커스텀 이벤트 이름 설정 시 유의 사항

  • 문자 타입(string) 이어야 하며, 최소 2자 이상 최대 32자까지 입력할 수 있습니다.

  • 영문 소문자와 숫자, - 그리고 _만 사용 가능합니다.

이벤트 속성 설정 시 유의 사항

  1. 최대 100개까지만 처리 가능

    • 한 번에 100개 이상의 속성을 설정하면 적용되지 않습니다.

  2. Key 값 제한

    • 문자 타입(string) 이어야 하며, 최소 2자 이상 최대 32자까지 입력할 수 있습니다.

    • 영문 소문자와 숫자 그리고 _만 사용 가능합니다.

  3. Value 값 제한

    • 최대 1024바이트까지 입력할 수 있습니다.

    • 값으로 null을 사용할 수 없습니다.

    • 가능한 타입: number, boolean, string.

  4. 표준 이벤트 속성 타입 제한

    • 정해진 타입만 사용할 수 있으며, 임의 변경은 불가능합니다.

  5. 검증 실패 시 적용 불가

    • 조건을 충족하지 않은 속성은 이벤트에 자동으로 제외됩니다.

이벤트 기록

LogEvent 메소드를 사용하여 사용자의 이벤트를 기록합니다. 표준 이벤트는 상수를 제공합니다.

static logEvent(params: {
    eventName: string;
    properties?: Record<string, any> | null;
  }): void;

각각의 매개변수는 다음을 의미합니다.

  • eventName : 이벤트 이름

  • properties : 이벤트 속성

빌더 패턴 사용법 properties와 상품 정보 생성을 위해 편리한 빌더 패턴을 제공합니다. 자세한 사용법은 빌더 패턴 사용법을 참고하세요.

이벤트 기록 예시

// 속성이 없을 경우
Adbrix.logEvent({ eventName: ABEvent.LOGIN });

// 속성이 있을 경우
const properties = ABProperty
    .signChannel(ABSignUpChannel.KAKAO)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.SIGN_UP, 
    properties: properties
});

표준 이벤트 및 속성

표준 이벤트와 표준 이벤트 속성, 상품 속성은 아래와 같습니다.

표준 이벤트

표준 이벤트 이름은 다음과 같이 사전 정의된 정적 상수로 제공됩니다.

상수
이벤트명
표기명

ABEvent.LOGIN

"abx:login"

로그인

ABEvent.LOGOUT

"abx:logout"

로그아웃

ABEvent.SIGN_UP

"abx:sign_up"

회원가입

ABEvent.USE_CREDIT

"abx:use_credit"

크레딧 사용

ABEvent.APP_UPDATE

"abx:app_update"

앱 업데이트

ABEvent.INVITE

"abx:invite"

사용자 초대

ABEvent.PURCHASE

"abx:purchase"

구매

ABEvent.LEVEL_ACHIEVED

"abx:level_achieved"

레벨 달성

ABEvent.TUTORIAL_COMPLETED

"abx:tutorial_completed"

튜토리얼 완료

ABEvent.CHARACTER_CREATED

"abx:character_created"

캐릭터 생성

ABEvent.STAGE_CLEARED

"abx:stage_cleared"

스테이지 완료

ABEvent.REFUND

"abx:refund"

주문 취소하기(환불하기)

ABEvent.ADD_TO_CART

"abx:add_to_cart"

장바구니 담기

ABEvent.ADD_TO_WISHLIST

"abx:add_to_wishlist"

관심 상품(위시리스트) 추가

ABEvent.PRODUCT_VIEW

"abx:product_view"

상품 상세 보기

ABEvent.CATEGORY_VIEW

"abx:category_view"

카테고리(기획전) 진입

ABEvent.REVIEW_ORDER

"abx:review_order"

주문 확인하기

ABEvent.SEARCH

"abx:search"

상품 검색하기

ABEvent.SHARE

"abx:share"

상품 공유하기

ABEvent.VIEW_HOME

"abx:view_home"

홈(메인) 화면 진입

ABEvent.LIST_VIEW

"abx:list_view"

상품 목록 조회하기

ABEvent.CART_VIEW

"abx:cart_view"

장바구니 조회하기

ABEvent.PAYMENT_INFO_ADDED

"abx:paymentinfo_added"

결제 정보 입력하기

표준 이벤트 속성

표준 이벤트의 속성 명의 경우 다음과 같이 이벤트 속성 명이 사전 정의된 정적 상수로 제공됩니다.

상수
이벤트 속성명
타입
표기명

ABEventProperty.IS_SKIP

"abx:is_skip"

boolean

튜토리얼 skip 여부

ABEventProperty.LEVEL

"abx:level"

number

레벨

ABEventProperty.STAGE

"abx:stage"

string

스테이지 명

ABEventProperty.PREV_VER

"abx:prev_ver"

string

이전 앱 버전

ABEventProperty.CURR_VER

"abx:curr_ver"

string

현재 앱 버전

ABEventProperty.KEYWORD

"abx:keyword"

string

검색 키워드

ABEventProperty.SHARING_CHANNEL

"abx:sharing_channel"

ABSharingChannel

상품 공유 채널

ABEventProperty.SIGN_CHANNEL

"abx:sign_channel"

ABSignUpChannel

회원가입 채널

ABEventProperty.INVITE_CHANNEL

"abx:invite_channel"

ABInviteChannel

사용자 초대 채널

ABEventProperty.ORDER_ID

"abx:order_id"

string

주문 ID

ABEventProperty.DELIVERY_CHARGE

"abx:delivery_charge"

number

배송료 설정

ABEventProperty.PENALTY_CHARGE

"abx:penalty_charge"

number

페널티 가격

ABEventProperty.PAYMENT_METHOD

"abx:payment_method"

ABPaymentMethod

결제 방법

ABEventProperty.ORDER_SALES

"abx:order_sales"

number

주문가(총액)

ABEventProperty.DISCOUNT

"abx:discount"

number

할인 가격

ABEventProperty.CATEGORY1

"abx:category1"

string

카테고리1

ABEventProperty.CATEGORY2

"abx:category2"

string

카테고리2

ABEventProperty.CATEGORY3

"abx:category3"

string

카테고리3

ABEventProperty.CATEGORY4

"abx:category4"

string

카테고리4

ABEventProperty.CATEGORY5

"abx:category5"

string

카테고리5

ABEventProperty.ITEMS

"abx:items"

Array

상품

상품 속성

ABEventProperty.ITEMS 내에 배열로 적재되는 상품에 대한 표준 이벤트 속성에 대한 정보입니다.

상수
이벤트 속성명
타입
설명
필수

ABEventProperty.ITEM_PRODUCT_ID

"abx:product_id"

string

상품 번호(ID)

ABEventProperty.ITEM_PRODUCT_NAME

"abx:product_name"

string

상품 명

ABEventProperty.ITEM_PRICE

"abx:price"

number

상품 단가

ABEventProperty.ITEM_QUANTITY

"abx:quantity"

number

상품 수량

ABEventProperty.ITEM_DISCOUNT

"abx:discount"

number

상품 할인가

ABEventProperty.ITEM_CURRENCY

"abx:currency"

ABCurrency

화폐 단위

ABEventProperty.ITEM_CATEGORY1

"abx:category1"

string

상품 카테고리1

ABEventProperty.ITEM_CATEGORY2

"abx:category2"

string

상품 카테고리2

ABEventProperty.ITEM_CATEGORY3

"abx:category3"

string

상품 카테고리3

ABEventProperty.ITEM_CATEGORY4

"abx:category4"

string

상품 카테고리4

ABEventProperty.ITEM_CATEGORY5

"abx:category5"

string

상품 카테고리5

표준 유저 분석 이벤트 사용 예시

로그인

사용자가 서비스에 회원으로 가입하는 동작을 나타내는 이벤트입니다.

Adbrix.logEvent({ eventName: ABEvent.LOGIN });

로그아웃

사용자가 앱에서 로그아웃하는 동작을 나타내는 이벤트입니다.

Adbrix.logEvent({ eventName: ABEvent.LOGOUT });

표준 공통 이벤트 사용 예시

회원가입

사용자가 회원으로 가입하는 동작을 나타내는 이벤트입니다.

const properties = ABProperty
    .signChannel(ABSignUpChannel.KAKAO)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.SIGN_UP, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.SIGN_CHANNEL

string

회원가입 채널

앱 업데이트

앱에서 발생한 앱 업데이트 이벤트입니다.

const properties = ABProperty
    .prevVer('1.0.0')
    .currVer('1.0.1')
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.APP_UPDATE, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.PREV_VER

string

이전 앱 버전

ABEventProperty.CURR_VER

string

현재 앱 버전

사용자 초대

앱에서 발생한 앱 초대 이벤트입니다.

const properties = ABProperty
    .inviteChannel(ABInviteChannel.KAKAO)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.INVITE, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.INVITE_CHANNEL

string

초대 채널

크레딧 사용

앱에서 발생한 현금성 화폐 사용 이벤트입니다.

Adbrix.logEvent({ eventName: ABEvent.USE_CREDIT });

구매

사용자가 상품이나 서비스를 구매하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .orderId('상품번호')
    .paymentMethod(ABPaymentMethod.BANK_TRANSFER)
    .orderSales(25500.0)
    .deliveryCharge(3000.0)
    .build();

Adbrix.logEvent({ eventName: ABEvent.PURCHASE, properties: properties });

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

ABEventProperty.ORDER_ID

string

주문 번호(ID)

ABEventProperty.ORDER_SALES

number

주문가(총액)

ABEventProperty.PAYMENT_METHOD

string

결제 방법

ABEventProperty.DELIVERY_CHARGE

number

배송료

ABEventProperty.DISCOUNT

number

상품할인가

표준 커머스 이벤트 사용 예시

홈 화면 진입

사용자가 앱의 홈 화면을 진입하는 동작을 나타내는 이벤트입니다.

Adbrix.logEvent({ eventName: ABEvent.VIEW_HOME });

카테고리 진입

사용자가 카테고리(기획전) 화면으로 진입한 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .category1('식품')
    .category2('과자')
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.CATEGORY_VIEW, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.CATEGORY1

string

상품 카테고리

ABEventProperty.CATEGORY2

string

상품 카테고리

ABEventProperty.CATEGORY3

string

상품 카테고리

ABEventProperty.CATEGORY4

string

상품 카테고리

ABEventProperty.CATEGORY5

string

상품 카테고리

ABEventProperty.ITEMS

Array

상품 상세 보기

사용자가 특정 상품의 상세 정보를 조회하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.PRODUCT_VIEW, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

장바구니 담기

사용자가 상품을 장바구니에 담는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.ADD_TO_CART, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

관심 상품 추가

사용자가 상품을 관심 목록에 추가하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.ADD_TO_WISHLIST, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

주문 확인하기

사용자가 상품을 결제하기 전 최종 확인하는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .orderId('주문번호')
    .deliveryCharge(3000.0)
    .discount(0.0)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.REVIEW_ORDER, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

ABEventProperty.ORDER_ID

string

주문 번호(ID)

ABEventProperty.DELIVERY_CHARGE

number

배송료

ABEventProperty.DISCOUNT

number

상품할인가

주문 취소하기

사용자가 구매한 주문을 취소하고 환불하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .orderId('주문번호')
    .penaltyCharge(0.0)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.REFUND, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

ABEventProperty.ORDER_ID

string

주문 번호(ID)

ABEventProperty.PENALTY_CHARGE

number

페널티 가격

상품 검색하기

사용자가 상품을 검색하여 결과를 확인하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .keyword('삼겹살')
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.SEARCH, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

ABEventProperty.KEYWORD

string

검색 키워드

상품 공유하기

사용자가 상품을 공유하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .sharingChannel(ABSharingChannel.FACEBOOK)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.SHARE, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

ABEventProperty.SHARING_CHANNEL

string

상품 공유 채널

상품 목록 조회

사용자가 상품 목록을 조회하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.LIST_VIEW, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

장바구니 조회

사용자가 장바구니를 조회하는 동작을 나타내는 이벤트입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(1500.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

const properties = ABProperty
    .items([item])
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.CART_VIEW, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.ITEMS

Array

결제 정보 입력하기

사용자가 결제 정보를 입력한 이벤트입니다.

Adbrix.logEvent({ eventName: ABEvent.PAYMENT_INFO_ADDED });

표준 게임 이벤트 사용 예시

튜토리얼 완료

앱에서 발생한 튜토리얼 완료 이벤트입니다.

const properties = ABProperty
    .isSkip(true)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.TUTORIAL_COMPLETED, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.IS_SKIP

bool

튜토리얼 skip 여부

캐릭터 생성

앱에서 발생한 캐릭터 생성 이벤트입니다.

Adbrix.logEvent({ eventName: ABEvent.CHARACTER_CREATED });

스테이지 완료

앱에서 발생한 스테이지 완료 이벤트입니다.

const properties = ABProperty
    .stage('1-1')
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.STAGE_CLEARED, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.STAGE

string

스테이지 이름

레벨 달성

앱에서 발생한 레벨 달성 이벤트입니다.

const properties = ABProperty
    .level(100)
    .build();

Adbrix.logEvent({ 
    eventName: ABEvent.LEVEL_ACHIEVED, 
    properties: properties
});

표준 이벤트 속성

이름
타입
설명
필수

ABEventProperty.LEVEL

number

사용자 레벨

커스텀 이벤트

사용자가 직접 임의의 이벤트 명칭과 속성을 입력하여 반영하는 이벤트입니다. 표준 이벤트에도 디파이너리 콘솔에서 커스텀 속성을 추가하여 사용할 수 있습니다.

커스텀 속성을 설정하기 위한 다음과 같은 메소드를 제공합니다.

  • customString(key, value)

  • customLong(key, value)

  • customDouble(key, value)

  • customBool(key, value)

속성이 없을 경우

Adbrix.logEvent({ eventName: 'CUSTOM_EVENT_NAME' });

속성이 있을 경우

const properties = ABProperty
    .customBool('is_logined', true)
    .customString('username', 'hello')
    .customLong('visit_count', 1000)
    .build();

Adbrix.logEvent({ 
    eventName: 'custom_event_1', 
    properties: properties
});

빌더 패턴 사용법

해당 라이브러리는 이벤트 속성과 상품 정보를 편리하게 설정할 수 있도록 빌더 패턴을 제공합니다.

ABProperty (속성 빌더)

이벤트의 속성 정보를 설정하는 빌더입니다.

const properties = ABProperty
    .items([item])
    .category1('식품')
    .category2('과자')
    .orderId('ORDER123')
    .paymentMethod(ABPaymentMethod.CARD)
    .build();

ABItem (상품 빌더)

상품 정보를 설정하는 빌더입니다.

const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(5000.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

사용 예시

// 1. 상품 정보 생성
const item = ABItem()
    .productId('상품번호')
    .productName('상품이름')
    .category1('식품')
    .category2('과자')
    .price(5000.0)
    .discount(0.0)
    .quantity(1)
    .currency(ABCurrency.KRW)
    .build();

// 2. 이벤트 속성 생성
const properties = ABProperty
    .items([item])
    .category1('식품')
    .category2('과자')
    .build();

// 3. 이벤트 로깅
Adbrix.logEvent({ 
    eventName: ABEvent.CATEGORY_VIEW, 
    properties: properties
});

커스텀 속성 추가 예시

// 상품에 커스텀 속성 추가
const item = ABItem()
    .productId('PROD001')
    .productName('맛있는 과자')
    .customString('brand', '좋은브랜드')
    .customBool('is_new', true)
    .build();

// 이벤트 속성에 커스텀 속성 추가
const properties = ABProperty
    .items([item])
    .customString('promotion_code', 'SUMMER2024')
    .customLong('user_level', 15)
    .build();

Last updated