아요 개발 일기

[Firebase] Remote Config 와 A/B Testing ( 공지 사항 팝업 ) 본문

iOS/Firebase

[Firebase] Remote Config 와 A/B Testing ( 공지 사항 팝업 )

소진이 2023. 1. 10. 10:44

안녕하세요!

오늘은 공지 사항 팝업을 만들어보겠습니다 :)

 

만약 Firebase에 프로젝트를 연결하지 않으신 분은 

[Firebase] 프로젝트에 연결하기 포스팅을 참고해주세요 :D


평소에 App을 사용하시는 분들은 아래와 같은 서버 작업 공지 혹은 이벤트 팝업창을 한번쯤은 보셨을꺼에요 :D

Firebase를 통해서 해당 팝업창을 띄워보도록 하겠습니다!






 

일단, 저희는 RemoteConfig와 Analytics 를 사용해야하니까 SDK가 필요하겠죠?

Pod 파일에 아래와 같은 명령어를 추가해줍니다.

pod 'Firebase/RemoteConfig'
pod 'Firebase/Analytics'

 


 

Remote Config을 이용해서 코드 수정 없이 공지 사항 수정 및 띄우기

 

ViewController에 FirebaseRemoteConfig를 import 해주고, 

viewDidLoad에 객체 선언, 원격 구성 Fetch할 때 필요한 설정을 해줍니다.

 

 

이때 remoteConfig 객체는 각 키에 대한 기본 값을 설정해주어야하는데,

Property List 형태의 새로운 파일을 생성하여 설정해줍니다.

 

 

 

원격 구성은 Key - Value 형태의 스토리지이기때문에 Type은 Dictionary로 지정하고 아래와 같이 기본 값을 설정해줍니다.

 

 

 

Firebase에 Remote Config 설정하기

 

자 차례로 따라가봅시다! 어렵지 않아요 ㅎㅎ

 

 

 

구성만들기를 누르면 아래와 같은 창이뜹니다.

 

 

매개변수는저희가 아까 작성했던 Plist(Property List) 파일의

key - value 값들을 적어서 만들어주면 됩니다!

 

 

다 추가했다면 변경사항 게시를 꼭 클릭해줘야 적용됩니다 :D

 

 

RemoteConfig 코드 구성

 

이제 코드를 짜보겠습니다! :D

 

 

코드에서 replacingOccurrences 처리를 하는 부분이 있죠?

긴 문장을 처리할때 \n를 사용해서 줄 바꿈을 하는데, 

Firebase에서 \n를 \\n으로 변경해서 적용한다고 합니다.

그래서 replacingOccurrences 함수는 \\n 값을 \n로 잘 인식되도록 변환해주는 역할을 합니다.

 

 

이제 직접 getNotice 함수를 선언해서 팝업창을 띄워볼까요?!

 

아주 잘 띄워지네요!!!

 

 

어플은 다양한 나라에서 사용하는데,

한국말로만 되어있다면 다른 나라 유저들은 알아듣기 힘들겠죠?

Firebase에서는 공지사항에 있는 텍스트를

휴대폰에 적용되어있은 Language에 따라 설정할 수 있는 기능을 제공하고 있습니다!

 

 

바꾸고 싶은 변수 부분에 수정 버튼을 누릅니다.

 

 

새로 추가를 누르면 아래와 같이 나옵니다.

 

 

조건부 값에서 새 조건 만들기를 눌러줍니다.

 

이름과 적용 조건에서 언어를 선택하고 적용하고 싶은 특정 언어를 선택해줍니다.

 

 

이렇게 언어 말고도 다양한 조건을 설정할 수 있으니, 각자 여러가지 적용해보아요!!!

 

 

조건 만들기를 누르면, 위와 같은 창이 뜹니다.

변경하고 싶은 Value 값을 넣어주고 저장하면 끝!

 

 

변경사항을 게시 꼭 눌러줘야 적용됩니다!

 

 

잘 적용되었는지 확인하기 위해서,

simulators에서 Language를 영어로 바꿔줍니다!

 

짠! 잘 적용이 됐죠?!!ㅎㅎㅎ

재밌네용

 


 

A/B Testing

A/B Testing은 상용 App에서 다수의 선택지가 있을때 사용자의 참여율이 더 높은 선택지를 알려주는 Firebase 기능입니다.

예를 들어, 상용 App의 이벤트 참여 문구를 정할 때, 어떤 문구로해야 고객층에서 더 참여를 많이하는지를 알 수 있습니다.

 

Firebase 설정

 

 

A/B Testing에서 실험을 만들어보겠습니다!

 

 

저희는 원격 구성을 사용해볼게요ㅎㅎ

아래와 같은 순서로 실험을 만들어줍니다.

 

 

 

 

저희는 50퍼센트 확률로 다른 문구가 뜨도록 설정할 것이기때문에

위와 같이 설정해줍니다.

 

 

 

사용자에게 보일 두가지 문구를 적어줍니다.

 

 

 

실험 시작을 누르면 Firebase 설정 완성!

 

 

Code 설정

code는 이전에 했던 Remote Config 코드와 유사합니다 :D

 

 

 

코드를 작성한 후, 해당 이벤트 Alert이 잘 뜨는지 확인하려면 공지 팝업을 띄우지 않아야합니다.

즉, isHidden 매개변수의 Default 값을 변경해줍니다.

 

 

잘 뜨네요!!

 


 

확인 버튼이 잘 눌리는지 확인하기

기능이 잘 되는지 확인하기 위해서는 Firebase의 Analytics DebugView를 사용해야합니다.

Analytics DebugView 기능을 사용하기위해서는 프로젝트에 scheme를 추가작업이 필요합니다.

Product -> Scheme -> Edit Scheme 

 

 

아래와 같은 명령어를 추가해주고, 닫아줍니다.

 

-FIRDebugEnabled

 

 

 

promotion_alert가 정상적으로 불려지는 것을 보니,

확인 버튼이 잘 작동 되고있네요! 

 


 

사용자 반에게는 기본 메세지 다른 반에게는 실험 값이 잘 들어가는지 확인

 

먼저, 확인하기 위해서는 실험해볼 기기의 인증 토큰 값을 받아야합니다.

아래코드를 통해서 인증 토큰을 출력해서 복사합시다!

 

 

 

이제 Firebase 설정으로!

아래 이미지를 따라해주세용

 

 

 

 

 

여기에 토큰 값을 넣어주고 변수를 설정해줍니다!

 

 

변수는 기준, Variant A 두가지가 있습니다.

처음에 저희가 두가지 문구를 설정해 두었죠?

만약 기존 문구가 떴었다면 Variant A를 선택해주고, 

Variant A 값이 나왔다면 기준을 선택해줍니다.

 

 

 

  

문구가 잘 적용됐는지 확인됐습니다!

 


 

정말 Firebase로 할 수 있는게 많은 것 같아요 :D

얼른 앱 출시해서 여러가지 기능을 넣고 싶은 욕구가 생기네여!!!

이번 달에 앱 출시를 목표로 가지고 있는데, 더 열심히해야겠습니당! 화이팅!!

 

코드를 보고싶다면 GitHub을 참고해주세요 ㅎㅎ