1. 소개
최종 업데이트: 2021년 12월 22일
빌드할 항목
이 Codelab에서는 GA4F가 이벤트를 추적할 수 있도록 WebView 내 웹페이지의 이벤트를 네이티브 코드로 전달하는 방법을 알아봅니다.
WebView를 사용하여 웹페이지를 호출하는 샘플 하이브리드 Android 앱을 사용합니다.
학습할 내용
- 하이브리드 앱에서 GA4F (Firebase용 Google 애널리틱스)를 초기화하는 방법
- 웹페이지에서 맞춤 이벤트 및 매개변수를 만드는 방법
- WebView 내 웹페이지의 이벤트를 네이티브 코드로 전달하는 방법
- 디버깅 방법
- 이벤트를 가져와서 액션 캠페인에 사용하는 방법
필요한 항목
- Android 스튜디오 3.6 이상
- Firebase 계정
2. 설정
코드 가져오기
Firebase 가이드 문서에서는 이 프로젝트에 필요한 샘플 코드를 GitHub에 제공합니다.
![]()
시작하려면 코드를 가져와 선호하는 개발 환경에서 열어야 합니다. android와 web이라는 두 디렉터리를 사용합니다. 'android' 디렉터리는 Android 앱용이고 'web' 디렉터리는 WebView를 통해 앱에서 호출되는 웹페이지용입니다.
3. Firebase 프로젝트 만들기 및 설정
Firebase를 시작하려면 Firebase 프로젝트를 만들고 설정해야 합니다.
Firebase 프로젝트 만들기
- Firebase에 로그인합니다.
Firebase Console에서 '프로젝트 추가'(또는 '프로젝트 만들기')를 클릭하고 Firebase 프로젝트의 이름을 Webview-test-codelab 또는 원하는 이름으로 지정합니다.
![]()
- 프로젝트 만들기 옵션을 클릭하며 살펴봅니다. 즉, 메시지가 표시되면 Firebase 약관에 동의합니다. 그리고 작업 이벤트를 추적하고 전환을 분석하기 위해 Google 애널리틱스 이벤트가 필요하므로 이 프로젝트에서 Google 애널리틱스를 사용 설정해야 합니다.
![]()
Firebase 프로젝트에 관해 자세히 알아보려면 Firebase 프로젝트 이해를 참고하세요.
4. Android Firebase 구성
Android 구성
- Firebase Console의 왼쪽 탐색 메뉴에서 프로젝트 개요를 선택한 후 '앱에 Firebase를 추가하여 시작하기'에서 Android 버튼을 클릭합니다.
다음 화면과 같은 대화상자가 표시됩니다.
![]()
- 제공해야 할 중요한 값은 다음 단계에 따라 얻을 수 있는 Android 패키지 이름입니다.
- 앱 디렉터리에서
android/app/src/main/AndroidManifest.xml파일을 엽니다. manifest요소에서package속성의 문자열 값을 찾습니다. 이 값이 Android 패키지 이름입니다(예:com.yourcompany.yourproject). 이 값을 복사합니다.- Firebase 대화상자에서 복사한 패키지 이름을
Android package name필드에 붙여넣습니다. - Google 로그인 또는 Firebase 동적 링크(이러한 기능은 이 Codelab에서 다루는 내용이 아님)를 사용할 계획이 아니라면 여기에서 SHA-1 키는 필요하지 않습니다. Google Play에서
in_app_purchase데이터를 가져올 계획이라면 나중에 키를 설정해야 합니다. - 앱 등록을 클릭합니다.
- Firebase에서 계속 진행하여 안내에 따라 구성 파일
google-services.json을 다운로드합니다.
![]()
- 앱 디렉터리로 이동하여 방금 다운로드한
google-services.json파일을android/app디렉터리로 이동합니다. - 다시 Firebase Console에서 나머지 단계를 건너뛰고 Firebase Console의 기본 페이지로 돌아갑니다.
- 마지막으로, Firebase에서 생성한
google-services.json파일을 읽으려면 Google 서비스 Gradle 플러그인이 필요합니다. - IDE 또는 편집기에서
android/app/build.gradle을 연 후 다음 코드 줄을 파일의 마지막 줄로 추가합니다.
apply plugin: 'com.google.gms.google-services'
android/build.gradle을 연 후 다음과 같이buildscript태그 내에 새 종속 항목을 추가합니다.
buildscript {
repositories {
// ...
}
dependencies {
// ...
Classpath 'com.google.gms:google-services:4.3.3'
}
}
- 앱이 여전히 실행 중인 경우 앱을 닫았다가 다시 빌드하여 Gradle이 종속 항목을 설치할 수 있도록 합니다.
Android용 앱 구성을 완료했습니다.
5. 웹에서 애널리틱스 웹 인터페이스를 개발하고 맞춤 이벤트를 로깅합니다.
Google 애널리틱스로 웹뷰의 이벤트를 추적하려면 웹과 Android 앱 모두에 코드를 삽입해야 합니다.
이 파트에서는 웹에 넣어야 하는 코드를 살펴보겠습니다. ![]()
먼저 HTML 파일에서 사용할 JavaScript 파일을 만듭니다. 샘플 코드에서 js 파일의 이름은 index.js입니다. 아래 코드와 같이 Android용 AnalyticsWebInterface와 iOS용 messageHander를 호출하는 'logEvent' 함수를 만들어야 합니다.
![]()
아래와 같이 이벤트를 추적하려는 위치에서 이 함수를 호출합니다.
![]()
Android의 WebView에서 이벤트가 트리거되면 'window.AnalyticsWebInterface'가 호출되고 이벤트가 네이티브 앱에 연결됩니다.
6. 웹 디렉터리를 호스팅하여 웹페이지 URL 가져오기
앱의 WebView 내에서 웹페이지를 호출하려면 웹페이지 URL이 필요합니다. 웹페이지를 호스팅하는 방법은 여러 가지가 있지만 이 Codelab에서는 편의를 위해 Firebase 호스팅 서비스를 사용하는 방법을 안내합니다.
- 터미널에서 웹 디렉터리 (예:
cd web)를 실행하고 다음 명령어를 실행합니다. npm install -g firebase-tools- Firebase CLI가 설치됩니다.firebase loginfirebase init- 설정할 기능을 묻는 메시지가 표시되면 '호스팅'을 선택합니다.
- Android 앱에 대해 설정한 프로젝트를 선택합니다.
- 나머지 모든 프롬프트의 기본값을 수락합니다.
firebase deploy --only hosting- Firebase 호스팅에 배포
![]()
7. Android 앱에서 인터페이스 코드 개발
Google 애널리틱스로 웹뷰의 이벤트를 추적하려면 웹과 Android 모두에 코드를 삽입해야 합니다. 이 부분에서는 Android 앱에 넣어야 하는 코드를 살펴보겠습니다.
'AnalyticsWebInterface' 클래스를 만들기 위해 'AnalyticsWebInterface.java' 파일을 만듭니다. 이 클래스에서는 아래와 같이 웹 js 파일의 logEvent 함수를 연결하도록 @JavascriptInterface를 코딩해야 합니다.
![]()
다음으로 아래와 같이 웹 뷰를 호출하는 활동에 JavaScript 인터페이스를 추가해야 합니다.
![]()
전체 코드를 확인하려면 '설정' 단계에서 다운로드한 샘플 코드를 참고하세요.
8. 이벤트 확인 및 디버깅
이벤트를 디버깅하려면 테스트 기기를 연결하거나 에뮬레이터를 실행한 후 Android 스튜디오 터미널에서 다음 코드를 사용하세요.
> adb shell setprop debug.firebase.analytics.app [앱 패키지 이름]
> adb shell setprop log.tag.FA VERBOSE
> adb shell setprop log.tag.FA-SVC VERBOSE
> adb logcat -v time -s FA FA-SVC
코드가 제대로 작동하면 아래와 같은 로그가 표시됩니다.
![]()
Firebase Console에서 확인하려면 실시간 탭을 사용해도 됩니다. Firebase Console로 이동하여 아래와 같이 실시간 탭을 클릭합니다.
그런 다음 '비교 추가' 기능을 사용하여 Android 플랫폼 이벤트를 필터링합니다.
![]()
코드가 올바르게 구현된 경우 실시간 탭에 Android 앱의 이벤트가 표시됩니다.
![]()
몇 시간 내에 Firebase Console의 이벤트 탭에서 로깅된 이벤트를 확인할 수 있습니다. Firebase Console에 있는 애널리틱스 섹션에서 이벤트 탭을 클릭하면 됩니다. 또한 이벤트를 클릭하여 event1 이벤트 내 값을 확인할 수도 있습니다.
전환으로 표시 스위치를 오른쪽으로 밀어 event1를 전환으로 표시합니다.
![]()
이벤트가 '전환' 탭에 있는 것을 확인할 수 있다면 이벤트를 전환으로 성공적으로 표시한 것입니다. 이제 Google Ads가 Firebase에서 이 이벤트를 가져올 수 있습니다.
![]()
디버깅 목적으로 Firebase DebugView를 사용하세요. 자세한 내용은 디버깅 이벤트를 참고하세요.
9. Google Ads에서 애널리틱스 이벤트 가져오기
Firebase-Flutter 설정이 완료되면 작업 이벤트와 함께 앱 캠페인을 실행할 준비가 된 것입니다. 먼저 Firebase를 Google Ads에 연결합니다. Firebase를 Google Ads에 연결하면 앱 캠페인이 Firebase 이벤트를 가져올 수 있습니다. 이 프로세스를 통해 Google Ads가 잠재고객에 관해 더 자세히 알 수 있게 됨으로써 앱 캠페인을 촉진할 수 있습니다.
- 프로젝트 개요 옆에 있는 버튼을 클릭하여 Firebase 설정으로 이동합니다.
- 통합 탭에 Google Ads 및 연결 버튼이 표시됩니다. 연결을 클릭한 다음 계속을 클릭합니다.
![]()
- Google Ads 계정을 선택합니다.
이제 Firebase 부분이 완료되었습니다.
Google Ads로 이동합니다.
- 로그인한 후 도구 및 설정 > 측정 > 전환으로 이동하여 맞춤 이벤트를 전환으로 가져옵니다.
- + 버튼을 클릭하여 새 전환 액션을 추가합니다.
![]()
- Google 애널리틱스 4 속성 (Firebase)을 선택하고 계속을 클릭합니다.
![]()
- 전환으로 표시된 모든 애널리틱스 이벤트를 확인할 수 있습니다. 앞서 구현한
event1이벤트를 찾습니다.
![]()
- 작업을 선택하고 가져오기를 클릭한 다음 계속을 클릭합니다.
![]()
event1를 전환 액션으로 설정한 후 event1 이벤트를 5회 넘게 실행할 가능성이 있는 사용자를 타겟팅할 수 있는 액션 캠페인을 실행할 수 있습니다.
10. 가져온 이벤트로 앱 액션 캠페인 실행
- 현재 계정의 캠페인 탭으로 이동하고 + 버튼을 클릭하여 새 캠페인을 시작합니다. [새 캠페인]을 클릭한 다음 계속을 클릭합니다.
- 앱 설치 옵션과 함께 앱 프로모션 캠페인을 실행합니다.
![]()
- 앱 이름, 패키지 이름 또는 게시자를 입력하여 앱을 찾습니다.
- 입찰 섹션의 드롭다운 메뉴에서 인앱 액션을 선택합니다.
- 제공된 목록에서 맞춤 이벤트를 찾습니다. 타겟 전환당비용을 설정하고 추가 옵션을 작성합니다.
![]()
- 캠페인 설정을 완료합니다.
11. 축하합니다
축하합니다. Firebase와 Google Ads를 성공적으로 통합했습니다. 이를 통해 Firebase에서 가져온 이벤트로 캠페인 실적을 향상시킬 수 있습니다.
학습한 내용
- 하이브리드 앱에서 GA4F (Firebase용 Google 애널리틱스)를 초기화하는 방법
- 웹페이지에서 맞춤 이벤트 및 매개변수를 만드는 방법
- WebView 내 웹페이지의 이벤트를 네이티브 코드로 전달하는 방법
- 디버깅 방법
- 이벤트를 가져와서 액션 캠페인에 사용하는 방법