#FCM #GA #앱수정 없이 FCM데이터 GA연동
원하는 바
우리쪽 서버에서 API로 FCM를 날리고 있는데, 이것을 GA에서는 기본으로 잡고있다. 하지만, 단순히 FCM을 받았는지, 열었는지 등의 여부만 체크하고 있는데 FCM을 보내는 경우가 다양한 만큼 해당 상황에 따라 사용자들의 데이터를 집계하고 싶다.
현 상황 분석
GA에서 잡히는 FCM의 기본적인 것은 총 4개의 이벤트가 있다.
notification_dismiss : 사용자가 FCM(Firebase 클라우드 메시징)에서 보낸 알림을 닫을 때 (단 aos만 집계)
notification_foreground: 앱이 켜져있을 때 알림 온 경우, (현재 ios만 잡는 것으로 추정됩니다.)
notification_receive: 백그라운드에서 알림이 온 경우, (단 aos만 집계)
notification_open: 사용자가 push를 눌렀을 때 잡힙니다.
아무것도 설정하지 않았을 때, notificaiton_open기준 fcm_event_origin 하단의 이미지 처럼 잡힌다.
방안
1. 타입별로 체크하고 싶기 때문에 매개변수 값만 변경하면 될 것이라고 판단하여 변경하는 것을 시도했다.
--> 실패 firebase_event_origin은 기본 매개변수이기 때문에 변경 하지 못함
2. 앱쪽에서 내가 내려주는 데이터를 받고, 그 데이터에 따라 GA로 이벤트 보내는 법
--> 해당의 방법이 가장 깔끔하지만 앱쪽 변경이 필요하여 보류
3. 데이터 업체 측에 문의 결과, label을 이용하면 된다고 답변 받음
--> 추가적으로 더 확인해본 결과, fcmOptions의 label을 사용하면 자동으로 집계가 된다고 함. 확인 결과 데이터가 원하는 대로 나옴
결론
notification을 보낼 때 아래와 같은 형태로 fcmOptions 및 analyticsLabel를 추가해서 보내줬다. 자세히는 들어가지 않겠지만, 임시방편으로는 살만 할 것 같다.
{
"data":{
},
"notification":{
"title":"",
"body":"",
"imageUrl":""
},
"name":"NEW_LIKE_POST",
"fcmOptions":{
"analyticsLabel":"NEW_LIKE_POST"
}
}
보안점
- 현재 notification_foreground 이벤트에 대한 처리가 aos에서 없다. 이것에 대한 추가처리와 각각의 다른 이벤트에 대해 ios/aos를 서로 맞춰야할 것 같다. 다만, 이 부분은 앱쪽에서 작업이 필요할 것 같다.
- 현재로서는 기존에 설정되어있는 이벤트->label->코드 형태로 보여주고 있다. 사전에 미리 해당 코드에 대한 설명이 들어가면 소통은 편하지만... label이라는 이벤트는 바꿀 수 없기 때문에 더 원할 경우 커스터마이징을 해야겠다(당연하겠지만 앱 수정이 필수다)