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

1. 소개

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

빌드할 항목

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

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

학습 내용

  • 처음으로 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

여기까지 왔으면 '이벤트 확인'을 클릭합니다. 주황색으로 강조 표시됩니다. 이벤트가 유효하다는 메시지가 아래에 표시되고 '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는 아직 알파 API이므로 정식 출시 전에 해결되어야 하는 제한사항(여기 )을 반드시 따라야 합니다.

학습한 내용

  • MP 호출을 위한 올바른 변수를 수집하는 방법
  • 테스트 이벤트를 전송하고 유효성을 검사하는 방법
  • MP 호출을 전송하는 스크립트를 빌드하는 방법