측정 프로토콜을 사용하여 GA4에 앱 이벤트 전송

1. 소개

최종 업데이트: 2021년 6월 8일

빌드할 항목

이 Codelab에서는 측정 프로토콜을 사용하여 GA4에 외부 이벤트를 전송하는 방법을 알아봅니다.

이 Codelab에서는 Firebase용 Google 애널리틱스가 구현된 앱이 이미 있다고 가정합니다. Firebase용 Google 애널리틱스와 통합하는 방법을 알아보려면 먼저 이 Codelab을 참고하세요. Firebase로 앱을 빌드하는 방법을 알아보려면 Firebase Android Codelab - Build Friendly Chat을 참고하세요.

학습 내용

  • 첫 번째 MP 통화 단계
  • 통화에 필요한 매개변수 이해
  • 테스트 통화 보내기 및 검증
  • Python으로 샘플 스크립트를 빌드하여 호출

필요한 사항

  • Android 또는 iOS 앱
  • 변경할 모든 IDE
  • GA4 계정
  • 선택사항 - Python 개발 환경 (또는 Colab)

2. 필수 필드 수집

GA4에서 API 비밀번호 만들기

GA4로 이동한 다음 관리 >로 이동하여 새 API 비밀번호를 만듭니다. 데이터 스트림 > 스트림 선택 > 측정 프로토콜 > 만들기

6e4afca63054d291.png

c9e9ccd2ffba98eb.png

e714cd969fca4a4d.png

원하는 별칭을 입력하면 통화에서 사용할 수 있는 보안 비밀 값이 표시됩니다.

GA4에 액세스하는 방법을 잘 모르겠다면 Firebase 프로젝트로 이동하여 프로젝트 설정 > 통합 > Google 애널리틱스를 선택하고 '관리'를 클릭하세요. Google 애널리틱스 연결이 표시되어야 하며, 여기에서 바로 이동할 수도 있습니다.

73b4d77a57eddfba.png

app_instance_id 수집

다음 방법 중 하나를 사용하여 app_instance_id를 수집할 수 있습니다.

  1. BigQuery Export 사용
  2. 앱 소스 코드에서 기본적으로 가져오기

이 두 가지 방법은 아래에 자세히 설명되어 있습니다.

  1. BigQuery Export 사용

BigQuery 내보내기 를 사용 설정한 경우 다음 단계를 따르세요.

  • Firebase에 로그인
  • 프로젝트 설정 > 통합 > BigQuery
  • 'BigQuery에서 보기'를 클릭합니다. 데이터 세트 근처

참고: 전환 버튼을 사용 설정한 후 24~48시간이 지나야 데이터 세트를 사용할 수 있습니다.

63d061088b622961.png

  • BigQuery에서는 테이블의 user_pseudo_id를 확인할 수 있습니다. 호출 시 사용할 수 있는 app_instance_id입니다.

4b1b80bdc2884581.png

  1. 앱 소스 코드에서 기본적으로 가져오기

Java를 사용하여 앱을 빌드하는 경우 다음과 같은 방법으로 app_instance_id를 검색할 수 있습니다.

 FirebaseAnalytics.getInstance(this).getAppInstanceId().addOnCompleteListener(new OnCompleteListener<String>() {
        @Override
        public void onComplete(@NonNull Task<String> task) {
            if (task.isSuccessful()) {
                String user_pseudo_id = task.getResult();
            }
        }
    });

Kotlin의 경우 다음을 시도해 볼 수 있습니다.

Thread {
   Firebase.analytics.appInstanceId.addOnSuccessListener { user_pseudo_id ->
       Log.d("Firebase", "user_pseudo_id using appInstanceId is $user_pseudo_id")
       /*
       Store the value to your server or do something with the retrieved id
        */
   }
}.start()

iOS 앱이 있는 경우 Swift에서 다음을 사용할 수 있습니다.

let user_pseudo_id = Analytics.appInstanceID()
print("user_pseudo_id = \(user_pseudo_id)")
/*
Store the value to your server or do something with the retrieved id
*/

다음은 인프라에 따른 추가 링크입니다.

3. 통화 구성

GA4의 이벤트 빌더를 사용하여 샘플 호출을 만들 수 있습니다. (로그인하고 쿠키를 사용하도록 설정해야 합니다.) 전환 버튼이 'firebase'로 설정되어 있는지 확인합니다.

fd78d961f3e48238.png

다음 입력란을 작성해야 합니다.

  • api_secret - GA4에서 이미 생성됨
  • firebase_app_id - 이 ID를 확인하려면 관리 > 데이터 스트림 > 스트림 선택으로 이동하세요. 아래와 같이 표시됩니다.

19801c8e5cb29222.png

  • app_instance_id - 이 값을 이미 가져왔습니다.
  • user_id는 필수가 아닙니다. 지금은 비워두셔도 됩니다.
  • 카테고리 - 드롭다운에서 '맞춤'으로 변경하고 원하는 이벤트 이름을 입력합니다(자동 수집 이벤트는 사용하지 않음). 여기서는 'test_from_codelab'을 사용합니다.

54cce53df64d697.png

원하는 경우 아래 버튼을 클릭하여 이벤트 매개변수 또는 사용자 속성을 제공할 수도 있습니다.

16a8f531a3894021.png

모든 항목을 입력하면 다음과 같이 '이벤트 확인' 버튼이 표시됩니다.

475801f25c3caf26.png

이 단계에 도달하면 주황색으로 강조 표시된 'VALIDATE EVENT'(이벤트 확인) 버튼을 클릭합니다. 이벤트가 유효하다는 메시지가 아래에 표시되고 'GA로 전송' 버튼이 표시됩니다. 이 시점에서 이벤트가 잘못된 것으로 표시되면 도구에서 문제가 있는 정확한 필드를 알려주므로 문제를 해결한 후 다시 시도할 수 있습니다.

23e4e6800705b4aa.png

이제 버튼을 클릭하면 테스트 이벤트가 GA4로 전송됩니다.

4. GA4에서 이벤트 유효성 검사

이벤트를 전송한 후 GA4 계정으로 이동하여 '실시간'을 확인할 수 있습니다. 이벤트가 표시됩니다.

994b51ca46bb1973.png

이벤트가 실시간 보기에서 실제 이벤트 보고 탭으로 반영되기까지 약 24시간이 걸릴 수 있으므로 일반 이벤트 보고에 즉시 표시되지 않더라도 걱정하지 마세요.

문제나 불일치가 발생하는 경우 여기에서 측정 프로토콜의 알려진 제한사항을 확인하는 것이 좋습니다.

5. Python 스크립트 빌드

이제 테스트를 마쳤으므로 API 호출과 이벤트 페이로드를 검토하여 Python(또는 원하는 언어)으로 이 호출을 실행할 수 있는 유사한 아키텍처를 빌드할 수 있습니다. 그런 다음 원하는 빈도로 이를 예약하고 운영할 수 있습니다. 이 경우 Python을 지원하는 IDE를 사용하거나 기기에 설치할 필요 없이 Google Colab 노트북을 사용하면 됩니다.

GA4 이벤트 빌더를 다시 보면 엔드포인트가 다음과 같습니다.

POST /mp/collect?firebase_app_id=XXXX&api_secret=XXXX 
HTTP/1.1
Host: www.google-analytics.com

이벤트 페이로드는 아래와 같습니다.

{
  "app_instance_id": XXXX,
  "non_personalized_ads": false,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}

다음과 같이 사용하여 Python으로 변환할 수 있습니다.

import requests
import json
url = "https://www.google-analytics.com/mp/collect?firebase_app_id=XXXX&api_secret=XXXX"
payload = {
  "app_instance_id": XXXX,
  "non_personalized_ads": False,
  "events": [
    {
      "name": "test_from_codelab",
      "params": {
        "test_param": "test_123"
      }
    }
  ]
}
r = requests.post(url,data=json.dumps(payload),verify=True)
print(r.status_code)

올바른 값으로 이를 실행하면 이벤트가 GA4에 실시간으로 반영되는 것을 확인할 수 있습니다.

6. 축하합니다

수고하셨습니다. GA4에서 측정 프로토콜을 성공적으로 사용하셨습니다. 이제 강력한 솔루션 아키텍처를 구축하여 보다 의미 있는 데이터를 Google 애널리틱스로 전송하고 마케팅 및 비즈니스 분석을 개선할 수 있습니다. 이 기능을 최대한 활용하려면 Google Ads에 연결하고 이러한 이벤트를 전환으로 가져오는 것이 좋습니다. 자세한 안내는 이 Codelab의 6단계를 참고하세요. 전환 추적을 위해 Google Ads에서는 지난 60일 동안 Firebase SDK에서 수집된 IDFA 또는 기기 ID와 연결된 데이터만 표시합니다. 아직 알파 API이므로 여기에 나열된 제한사항을 검토하고 전체 출시 전에 해결해야 합니다.

학습한 내용

  • MP 호출을 실행하는 데 필요한 적절한 변수를 수집하는 방법
  • 테스트 이벤트를 전송하고 검증하는 방법
  • MP 호출을 전송하는 스크립트를 빌드하는 방법