측정 프로토콜을 사용하여 GA4에 앱 이벤트 보내기

1. 소개

최종 업데이트 날짜: 2021-06-08

무엇을 구축할 것인가

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

이 Codelab에서는 Firebase용 Google Analytics가 포함된 앱이 이미 구현되어 있다고 가정합니다. Firebase용 Google Analytics와 통합하는 방법을 알아보려면 먼저 이 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 Analytics를 확인한 후 '관리'를 클릭하세요. Google Analytics 연결이 표시되어야 하며 거기에서도 직접 탐색할 수 있습니다.

73b4d77a57eddfba.png

app_instance_id 수집

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

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

이 두 가지에 대해서는 아래에서 자세히 설명합니다.

  1. BigQuery 내보내기 사용

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 - 이를 얻으려면 관리 > 데이터 스트림 으로 이동하여 스트림을 선택하면 됩니다. 아래와 같이 표시되어야 합니다.

19801c8e5cb29222.png

  • app_instance_id - 이 값을 이미 검색했습니다.
  • user_id는 필수가 아닙니다. 지금은 비워두셔도 됩니다.
  • 카테고리 - 드롭다운에서 'Custom'으로 변경하고 원하는 이벤트 이름을 입력합니다( 자동 수집 이벤트는 사용하지 마세요). 여기서는 "test_from_codelab"을 사용하고 있습니다.

54cce53df64d697.png

선택적으로 아래 버튼을 클릭하여 이벤트 매개변수 및/또는 사용자 속성을 제공하도록 선택할 수도 있습니다.

16a8f531a3894021.png

모든 항목을 입력한 후에는 "Validate Event(이벤트 확인)" 버튼과 함께 다음과 같은 내용이 표시됩니다.

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"
      }
    }
  ]
}

다음과 같은 것을 사용하여 이것을 파이썬으로 번역할 수 있습니다

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 Analytics로 전송하고 마케팅 및 비즈니스 분석을 개선할 수 있습니다. 이를 최대한 활용하려면 Google Ads에 연결하고 이러한 이벤트를 전환으로 가져오는 것이 좋습니다. 이에 대한 자세한 안내는 이 Codelab 의 6단계를 참조하세요. 전환 추적을 위해 Google Ads에서는 지난 60일 동안 Firebase SDK에서 수집된 IDFA 또는 기기 ID와 연결된 데이터만 표시합니다. 이는 여전히 알파 API라는 점을 명심하고 정식 출시 전에 해결해야 하는 여기에 나열된 제한 사항을 통과해야 합니다.

당신은 배웠습니다

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