본문 바로가기

일::개발

Flutter: facebook event SDK 적용 (2)

https://uaremine.tistory.com/58 까지 앱 등록을 마쳤다면 이제 Events Manager 설정을 해보자.

Events manager(https://business.facebook.com/events_manager2) 작업에는 facebook business 관리자 권한이 필요하다.

 

Data sources에서 생성한 앱을 선택하면 몇 가지 탭이 나오는데, 목표는 Overview 나 Test events 탭에 앱의 동작 이벤트가 기록되도록 하는 것이다.

 

일단 Settings 탭에 들어가서 필요한 설정을 하면 되는데, 아마 iOS SDK를 업데이트하라는 메시지가 떠 있을 것이다.

 

Update SDK를 클릭한 후에 Facebook SDK 탭에서 다 했다 라고 체크해야 없어진다. 이 작업이 실제 이벤트 수집에 영향을 주는지는 잘 모르겠다. 일단 나의 경우에는 SDK가 업데이트된 버전이 앱스토어에 릴리즈된 후에야 아래 Release the App 라디오 버튼이 체크되었고, 이 alert가 사라졌다.

 

Events Manager 를 설정하는 부분에서 설명이 부족하고 UI flow가 직관적이지 않아서 뭘 해야하는지 파악하기가 좀 힘들었다.

SDK 업데이트는 아래에 설명한 부분을 진행하면 되니 일단 넘어가자.

 

Settints 탭에 있는 내용을 하나씩 처리해준다. 

Configure App Events for SKAdNetwork 같은 경우는 iOS SDK 업데이트가 확인 되어야 설정을 마칠 수 있었다. 결국 SDK가 적용된 바이너리를 릴리즈해야 설정을 마칠 수 있다는 의미인데, 테스트도 못 하고 릴리즈를 해야하는 상황이라 이게 맞나 싶었지만, 다른 방법이 없어서 일단 그렇게 진행했다.

iOS용 SDK 업데이트가 확인될 때까지 왼쪽 옵션이 활성화되지 않음

 

 

 

 

Facebook SDK 적용

이제 facebook SDK를 flutter 앱에 적용해보자.

 

facebook 문서에 iOS, android 각각 SDK 적용하는 방법이 나와 있지만, flutter 앱에는 어떻게 해야하는지 정리된 것이 없어서 (특히 iOS 14.5+에서) 좀 힘들었다.

https://developers.facebook.com/docs/app-events/getting-started-app-events-android

 

Android - 앱 이벤트 - 문서 - Facebook for Developers

1단계: Facebook 앱 구성하기 앱 대시보드에서 내 앱을 클릭하고 앱이 없다면 새 앱을 만드세요. 설정 > 기본에서 앱 ID, 앱 시크릿 코드 및 기타 앱에 대한 상세 정보가 있는 앱 상세 정보 패널을 확

developers.facebook.com

https://developers.facebook.com/docs/app-events/getting-started-app-events-ios

 

iOS - 앱 이벤트 - 문서 - Facebook for Developers

1단계: Facebook 앱 구성하기 앱 대시보드에서 내 앱을 클릭하고 앱이 없다면 새 앱을 만듭니다. 설정 > 기본에서 앱 ID, 앱 시크릿 코드 및 기타 앱에 대한 상세 정보가 있는 앱 상세 정보 패널을 확

developers.facebook.com

위의 링크에서 3단계에 해당하는 작업인데, 차근차근 기억을 되살려보자.

 

1) SDK 설치

flutter 앱이니 당연히 안드로이드, iOS 각각 SDK를 직접 설치하지 않아도 된다.

facebook_app_events 패키지(https://pub.dev/packages/facebook_app_events)를 이용하자.

 

일단 패키지 설명에 있는 것처럼 안드로이드 설정(strings.xml, AndroidManifest.xml)과 iOS 설정(info.plist)을 해준다.

 

- info.plist의 CFBundleURLSchemes 에 들어가는 APP-ID 는 Facebook 앱 아이디다.

- info.plist의 CFBundleURLSchemes 에는 'fb' 뒤에 APP-ID를 붙여준다. (APP-ID가 1234567890 이라면 'fb1234567890')

- FacebookDisplayName 에는 Facebook 앱 이름을 넣어준다.

<key>CFBundleURLTypes</key>
<array>
    <dict>
        <key>CFBundleURLSchemes</key>
        <array>
            <string>[다른 플랫폼에서 사용하는 키1]</string>
            <string>[다른 플랫폼에서 사용하는 키2]</string>
            <string>fb1208369046367467</string>
        </array>
    </dict>
</array>

 

2) 초기화

앱의 초기화 부분에

final facebookAppEvents = FacebookAppEvents();
await facebookAppEvents.setAutoLogAppEventsEnabled(true);

넣어주면 일단 동작한다. 안드로이드와 iOS 14.5 미만에서는 이벤트가 수집될 것이다.

이벤트 수집의 확인을 위해서는 Events Manager 페이지(https://business.facebook.com/events_manager2)를 보면 된다.

App Installs 이벤트나 Activate app 이벤트가 자동으로 수집되어야 하는데, 확인하기 어렵다면 content view 와 같은 custom event를 수집해보자.

 

facebookAppEvents.logViewContent( id: '${article.value.id}', type: 'news', ); }

이렇게 해 놓으면 id와 함께 수집되는 이벤트를 거의 실시간으로 확인할 수 있어서 확인하기가 편하다.

 

###### 내용 추가 예정