측정 프로토콜을 사용하여 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. 앱 소스 코드에서 기본적으로 가져오기

자바를 사용하여 앱을 빌드한 경우 다음과 같은 명령어를 사용하여 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 - 확인하려면 관리 > 데이터 스트림 > 스트림 선택으로 이동하면 됩니다 . 아래와 같이 표시됩니다.

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 중 원하는 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에서 수집된 기기 ID 또는 IDFA와 연결된 데이터만 표시합니다. 이 API는 아직 알파 버전이며 여기 에 나열된 제한사항을 완료하려면 정식 출시 전에 해결해야 합니다.

학습한 내용

  • MP 호출을 위해 올바른 변수를 수집하는 방법
  • 테스트 이벤트를 전송하고 검증하는 방법
  • MP 호출을 보내는 스크립트를 빌드하는 방법