menu 이용가이드
close
시작하기 chevron_right 인앱이벤트 등록
Android 인앱이벤트 트래킹 설정
Android 플랫폼에서 인앱이벤트를 설정하는 방법에 대한 안내입니다.

사용자의 행동 중 알아보고 싶은 행동을 인앱이벤트로 등록하고 얼마나 달성했는지 확인할 수 있습니다. 많은 고객분들이 사용하는 “회원가입”, “로그인”, “홈화면 조회”, “상품리스트 조회”, “검색결과 조회”, “상품상세페이지 조회”, “장바구니 담기”, “결제”는 기본 인앱이벤트로 별도 매소드가 기본 제공되며, 그 외 원하는 인앱이벤트를 SDK에서 매소드(Method)를 동적으로 호출하면 1회 이상 달성시 대시보드에서 확인할 수 있습니다. 본 기능 이용을 위해 SDK 설치가 필요합니다.

기본 인앱이벤트 트래킹

에어브릿지는 총 8개의 기본 인앱이벤트를 지원하며 SDK 설치 시 별도 매소드 호출만으로 트래킹이 가능합니다. 이벤트에 첨부되는 모든 정보는 선택적(Optional)이므로, 정보를 첨부하지 않아도 이용할 수 있습니다. 그러나 이벤트에 대한 많은 정보는 DSP 연동 등 자세하고 정확한 통계 제공에 도움이 될 수 있으므로 보내시는 것을 권장합니다.

  1. 회원가입
  2. 로그인
  3. 홈화면 조회
  4. 상품리스트 조회
  5. 검색결과 조회
  6. 상품상세페이지 조회
  7. 장바구니 담기
  8. 결제


회원가입

회원가입 인앱이벤트를 트래킹하기 위해서는 사용자가 회원가입 시 SignUpEvent를 보내주세요.

생성자 타입 설명
SignUpEvent - 비어있는 회원가입 이벤트
메서드 타입 설명
setAction String 이벤트 액션
setLabel String 이벤트 라벨
setUserId String 내부용 사용자 아이디
setUserEmail String 내부용 사용자 이메일

코드 예시 :

SignUpEvent event = new SignUpEvent()
        .setUserId("test-user-id")
        .setUserEmail("test-email@foo.com");

AirBridge.getTracker().send(event);

※ 본 메서드를 통해 내부용 사용자 아이디와 사용자 이메일을 넣을 경우, 해당 값을 S3에서 csv 형식의 데이터(externalUserID, externalUserEmail)로 다시 받아 해당 식별자를 가진 사용자가 어떤 유입경로에서 왔는지를 확인하고 데이터를 통합할 수 있습니다. 또한 이 값은 향후 서버대서버 인앱이벤트 전송과 크로스플랫폼 동일 사용자 매칭에도 사용할 수 있습니다.


로그인

로그인 인앱이벤트를 트래킹하기 위해서는 사용자가 로그인 시 SignInEvent를 보내주세요.

생성자 타입 설명
SignInEvent - 비어있는 로그인 이벤트
메서드 타입 설명
setAction String 이벤트 액션
setLabel String 이벤트 라벨
setUserId String 내부용 사용자 아이디
setUserEmail String 내부용 사용자 이메일

코드 예시 :

SignInEvent event = new SignInEvent()
        .setUserId("test-user-id")
        .setUserEmail("test-email@foo.com");

AirBridge.getTracker().send(event);

※ 본 메서드를 통해 내부용 사용자 아이디와 사용자 이메일을 넣을 경우, 해당값을 S3에서 csv 형식의 데이터(externalUserID, externalUserEmail)로 다시 받아 해당 식별자를 가진 사용자가 어떤 유입경로에서 왔는지를 확인하고 데이터를 통합할 수 있습니다. 또한 이 값은 향후 서버대서버 인앱이벤트 전송과 크로스플랫폼 동일 사용자 매칭에도 사용할 수 있습니다.


홈 화면 조회

홈 화면 조회 인앱이벤트를 트래킹하기 위해서는 사용자가 앱 내에서의 홈 화면으로 이동시 HomeViewEvent를 보내주세요.

생성자 타입 설명
HomeViewEvent - 홈 뷰 이벤트

코드 예시 :

HomeViewEvent event = new HomeViewEvent();
AirBridge.getTracker().send(event);


상품 리스트 조회

상품 리스트 조회 인앱이벤트를 트래킹하기 위해서 사용자가 상품 리스트를 조회할 경우 ProductListViewEvent를 보내주세요.

생성자 타입 설명
ProductListViewEvent - 비어있는 상품 리스트 조회 이벤트
ProductListViewEvent String, List<Product> 리스트 아이디와 상품 리스트가 포함되어있는 상품 리스트 조회 이벤트
ProductListViewEvent String, Product 리스트 아이디와 단일 상품이 포함되어있는 상품 리스트 조회 이벤트
메서드 타입 설명
setListId String 상품 리스트 아이디
addProduct Product 상품 리스트에 추가

코드 예시 :

// 상품 정보 추가
Product product1 = new Product();
product1.setProductId("product_id_100600");
product1.setName("Apple MacBook Pro");
product1.setPrice(2160000);
product1.setPositionInList(1);

Product product2 = new Product();
product2.setProductId("product_id_100800");
product2.setName("Samsung Notebook5");
product2.setPrice(1420000);
product2.setPositionInList(2);

// 상품 리스트 추가
List<Product> products = Arrays.asList(product1, product2);
ProductListViewEvent event = new ProductListViewEvent("list_id_200400", products);

AirBridge.getTracker().send(event);

사용자가 리스트를 스크롤해 새로운 정보를 로드할 경우, 해당 이벤트를 별도로 발생시켜서 추가적으로 로드된 상품 정보를 보내주시는 것을 권장합니다.

※ 이벤트로 전송되는 상품 순서가 실제 사용자에게 리스트상에 보여지는 순서와 일치하지 않을 경우, Product 클래스의 setPositionInList 메서드를 통해 각 상품에 실제 순서 정보를 보내주시는 것을 권장합니다. 이는 상품 노출 순위 정보 가공에 사용됩니다.

※ Product 클래스에 대한 상세 내용은 아래 설명을 참고해주세요.


검색결과 조회

검색결과 조회 인앱이벤트를 트래킹하기 위해서는 사용자가 상품을 검색할 경우 SearchResultViewEvent를 보내주세요.

생성자 타입 설명
SearchResultViewEvent - 검색결과 이벤트
SearchResultViewEvent String, List<Product> 검색 쿼리와 상품 검색 결과 리스트가 포함된 검색결과 이벤트
SearchResultViewEvent String, Product 검색 쿼리와 단일 상품 검색 결과가 포함된 검색결과 이벤트
메서드 타입 설명
setQuery String 해당 검색의 검색어 (쿼리) 정보 추가
addProduct Product 검색 결과에 상품 추가

코드 예시 :

SearchResultViewEvent event = new SearchResultViewEvent ("24inch monitor", products);

AirBridge.getTracker().send(event);

※ Product 클래스에 대한 상세 내용은 아래 설명을 참고해주세요.


상품 상세페이지 조회

상품 상세페이지 조회 인앱이벤트를 트래킹하기 위해서는 사용자가 상품의 상세정보를 조회할 경우 ProductDetailsViewEvent를 보내주세요.

생성자 타입 설명
ProductDetailsViewEvent - 상품 상세페이지 조회 이벤트
ProductDetailsViewEvent List <Product> 여러 상품에 대한 상품 상세페이지 조회 이벤트
ProductDetailsViewEvent Product 단일 상품에 대한 상품 상세페이지 조회 이벤트

코드 예시 :

ProductDetailsViewEvent event = new ProductDetailsViewEvent(product);
AirBridge.getTracker().send(event);

※ Product 클래스에 대한 상세 내용은 아래 설명을 참고해주세요.


장바구니 담기

장바구니 담기 인앱이벤트를 트래킹하기 위해서는 사용자가 장바구니에 상품을 담았을 때 AddedToCartEvent를 보내주세요.

생성자 타입 설명
AddedToCartEvent - 장바구니 담기 이벤트
AddedToCartEvent String, List<Product> 장바구니 아이디와 여러 상품이 포함된 장바구니 담기 이벤트
AddedToCartEvent String, Product 장바구니 아이디와 단일 상품이 포함된 장바구니 이벤트
메서드 타입 설명
setCartId (DSP 연동용) String 장바구니 고유 ID
addProduct (DSP 연동용) Product 장바구니 물품
setCurrency (기여도분석용) String 장바구니에 담긴 금액의 통화 단위. ISO 4217 standard에 따른 통화 정보 (ex. KRW)
setTotalValue (기여도분석용) int 장바구니에 담긴 총 금액

‘기여도분석용’으로 사용 시 코드 예시 :
(단순한 ROI 계산 용도로 사용할 수 있습니다.)

AddedToCartEvent event = new AddedToCartEvent()
       .setCurrency("KRW")
       .setTotalValue(10000);

AirBridge.getTracker().send(event);

‘DSP 연동용’으로 사용 시 코드 예시 :
(이커머스 플랫폼이 데이터를 DSP에 연동하고자 할 경우 사용할 수 있습니다.)

AddedToCartEvent event = new AddedToCartEvent()
       .setCartId("cart_id_51243")
       .addProduct(product)

AirBridge.getTracker().send(event);

※ Product 클래스에 대한 상세 내용은 아래 설명을 참고해주세요.


결제

결제 인앱이벤트를 트래킹하기 위해서는 사용자가 결제를 진행할 경우 PurchaseEvent를 보내주세요.

생성자 타입 설명
PurchaseEvent - 결제 이벤트
PurchaseEvent List<Product> 여러 상품에 대한 결제 이벤트
PurchaseEvent Product 단일 상품에 대한 결제 이벤트
메서드 타입 설명
addProduct (DSP 연동용) Product 결제한 상품 정보.
setInAppPurchase (범용) Boolean 인앱결제 여부.
setTotalValue (기여도분석용) int 총 결제 금액.
setTransactionId (기여도분석용) String 거래의 고유 ID.
setCurrency (기여도분석용) String 결제한 금액의 통화 단위. ISO 4217 standard에 따른 통화 정보 (ex. KRW)

‘기여도분석용’으로 사용 시 코드 예시 :
(단순한 ROI 계산 용도로 사용할 수 있습니다.)

PurchaseEvent event = new PurchaseEvent(product)
       .setInAppPurchased(false)
       .setCurrency("KRW")
       .setTotalValue(10000);


AirBridge.getTracker().send(event);

‘DSP 연동용’으로 사용 시 코드 예시 :
(이커머스 플랫폼이 데이터를 DSP에 연동하고자 할 경우 사용할 수 있습니다.)

// 상품 정보 추가
Product product1 = new Product();
product1.setProductId("product_id_100600");
product1.setName("Apple MacBook Pro");
product1.setPrice(2160000);
product1.setPositionInList(1);

Product product2 = new Product();
product2.setProductId("product_id_100800");
product2.setName("Samsung Notebook5");
product2.setPrice(1420000);
product2.setPositionInList(2);

// 상품 리스트 추가
List<Product> products = Arrays.asList(product1, product2);
PurchaseEvent event = new PurchaseEvent(products)
        .setTransactionId("transact-purchase-01")
        .setInAppPurchase(true);

AirBridge.getTracker().send(event);

※ Product 클래스에 대한 상세 내용은 아래 설명을 참고해주세요.


Product 클래스

상품 정보에 대한 모델 클래스입니다. 상품리스트 조회, 검색결과 조회, 상품상세페이지 조회, 장바구니 담기, 결제 인앱이벤트에 상품 정보를 첨부할 때 사용됩니다.

생성자 타입 설명
Product - 비어 있는 상품
메서드 타입 설명
setProductId (권장값) String 상품의 고유 ID. 권장값이므로 DSP 연동 시 넣어주시는 것을 권합니다.
setName String 상품 이름
setCurrency String ISO 4217 standard에 따른 통화 정보 (ex. KRW)
※ 이 값은 향후 서비스 다국가 제공 시 구매금액 합산에 이용됩니다.
setPrice int 상품 금액
setQuantity int 구매한 상품의 수량
setPositionInList int 리스트 중 해당 상품의 실제 위치
※ 검색결과 및 상품 리스트에서 노출된 우선순위 정보를 반영할 때 사용됩니다.
getProductId - -
getName - -
getCurrency - -
getPrice - -
getQuantity - -
getPositionInList - -

코드 예시 :

Product product1 = new Product();
product1.setProductId("product_id_100600");
product1.setName("Apple MacBook Pro");
product1.setPrice(2160000);
product1.setCurrency("KRW");
product1.setQuantity(2);
product1.setPositionInList(0);

// Product는 인앱이벤트에 상품 정보를 첨부할 때 사용됩니다.
AirBridge.getTracker().send(new PurchaseEvent(product1));


커스텀 인앱이벤트 추가 및 트래킹

원하는 인앱이벤트를 SDK에서 매소드(Method)를 동적으로 호출하면 1회 이상 달성시 대시보드에서 확인할 수 있습니다.

생성자 타입 설명
GoalEvent String category가 포함되어있는 커스텀 이벤트
GoalEvent String,String category와 action가 포함되어있는 커스텀 이벤트
메서드 타입 설명
setLabel String 이벤트 라벨
setCategory String 이벤트 카테고리
setAction String 이벤트 액션
setValue int 이벤트 값

※ Category, Action, Label에 대한 상세 내용은 아래 설명을 참고해주세요.

코드 예시 :

GoalEvent event = new GoalEvent("category")
        .setAction("action")
        .setLabel("label");
        .setValue(3412)

AirBridge.getTracker().send(event);


Category / Action / Label을 활용한 인앱이벤트 구분

에어브릿지는 기본적으로 Category, Action, Label의 3가지 구분값의 조합으로 인앱이벤트별 통계를 제공합니다. 기본 인앱이벤트의 경우 Category의 값이 미리 고정되어 있으므로 Action, Label의 2가지 구분값을 자유롭게 활용할 수 있으며, 구분값을 조합할 수 있는 기본 인앱이벤트는 “회원가입”, “로그인”, “장바구니 담기”, “결제”의 4개 이벤트입니다. 커스텀 통계 리포트는 Category, Action, Label의 3개 구분값 모두를 활용할 수 있습니다. 실제 활용 예시는 아래와 같습니다.

  1. (기본) Category : 회원가입 (고정) / Action : “서울” / Label : “남자”
  2. (기본) Category : 회원가입 (고정) / Action : “부산” / Label : “여자”
  3. (기본) Category : 결제 (고정) / Action : “할인쿠폰사용” / Label : “카카오페이사용”
  4. (커스텀) Category : “user-subscription-canceled” / Action : “premium” / Label : 미입력

※ 너무 많은 Action과 Label의 경우의 수 조합은 실시간 통계 리포트의 수합을 느리게 할 수 있으므로 모든 인앱이벤트를 합쳐 최대 10,000개 이하의 경우의 수로 조합하여 사용하기를 권장드립니다.


WebView 내에서 인앱이벤트 보내기

WebView를 사용하는 앱의 경우, WebView의 Javascript Interface 기능을 통해 Airbridge SDK를 호출하여 인앱이벤트를 보낼 수 있습니다.

public class MyWebAppInterface {
    Context mContext;

    MyWebAppInterface(Context c) {
        mContext = c;
    }

    /**
     * Sends goal event.
     */
    @JavascriptInterface
    public void goal(int value) {
        // TODO: 원하는 인앱이벤트를 보내주세요.
        GoalEvent event = new GoalEvent("my-category")
                .setAction(my-action);            
                .setValue(value);            
        Airbridge.getTracker().send(event);
    }
}

...
webView.addJavascriptInterface(new MyWebAppInterface(this), "myAndroid");

위와 같이 Javascript Interface를 생성한다면 웹 앱 내에선 다음과 같이 인앱이벤트 메서드를 호출할 수 있습니다.

myAndroid.goal(1234);
검색결과
keyboard_return이전으로