ga4에서 데이터를 수집하다 보면 ga4상의 데이터를 로컬에서 활용하고 싶다는 생각이 들 수도 있습니다.
그럴때 활용하면 좋은 것은 google anlaytics api가 있지만 사용하는데 있어 제한이 있습니다.
따라서 대안으로 ga4와 연동된 bigqeury를 활용하는 방법을 소개해보겠습니다.
1. 서비스 계정 생성
먼저 api를 발급받고자 하는 프로젝트로 이동해주세요.
그후 IAM 및 관리자 페이지로 이동해서 서비스 계정으로 들어와주세요
그 후 서비스 계정 만들기를 클릭해주세요
클릭한 후에는 서비스 게정이름, 계정 ID, 계정 설명을 입력해주세요
그 다음으로 역할을 Bigqeury 관리자로 설정한 해주세요
꼭 관리자로 해주시는게 좋아요. 다른것으로 설정해서 권한이 낮아지면 api를 사용해도 엑세스가 거부될 수 있습니다
2단계까지 설정하면 이제 완료버튼을 눌러주세요
그럼 이제
이렇게 계정이 생성됩니다.
2. key 생성
이제 생성한 계정을 클릭해서 들어가주세요
그럼
위 사진같은 화면이 뜨고 여기서 새 키 만들기를 클릭해주세요
json으로 키를 만들겠다고 설정한 후 만들기를 해주세요. 참고로 키 파일은 잃어버리시면 안됩니다.
3. 코드적용 (go)
저는 go lang 기준으로 작성하겠습니다.
키를 받아왔기 때문에 이제 api키를 활용해서 로컬 코드에서 활용해보면 됩니다.
먼저
go get cloud.google.com/go/bigquery@v1.24.0
terminal에 위 명령어를 입력해서 다운받아 주세요
그후 projectID와 credentialsFile을 입력해주면 bigquery api를 활용할 수 있게 됩니다.
package main
import (
"context"
"fmt"
"log"
"cloud.google.com/go/bigquery"
"google.golang.org/api/iterator"
"google.golang.org/api/option"
)
func main() {
// 구글 클라우드 프로젝트 ID와 인증 정보 파일 경로를 설정합니다.
projectID := "프로젝트의 id"
credentialsFile := "아까 전에 받은 key 경로"
// 인증 정보를 사용하여 BigQuery 클라이언트를 생성합니다.
ctx := context.Background()
client, err := bigquery.NewClient(ctx, projectID, option.WithCredentialsFile(credentialsFile))
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
// 쿼리를 작성합니다.
query := "SELECT * FROM `project` LIMIT 10"
// 쿼리를 실행하고 결과를 처리합니다.
q := client.Query(query)
it, err := q.Read(ctx)
if err != nil {
log.Fatalf("Query execution error: %v", err)
}
// 결과를 출력합니다.
fmt.Println("Word, Word_Count")
var values []bigquery.Value
for {
var word, wordCount string
err := it.Next(&values)
if err == iterator.Done {
break
}
if err != nil {
log.Fatalf("Error reading result: %v", err)
}
fmt.Printf("%s, %s\n", word, wordCount)
}
}
'기타' 카테고리의 다른 글
팀플에서 백엔드와 프론트엔드 통신하기 (netsh 활용 포트포워딩) (1) | 2023.09.11 |
---|---|
DOM이란? (0) | 2023.08.11 |
React: 시작하기 (0) | 2023.08.11 |
bigquery : 사용자, 세션 식별하기 (0) | 2023.08.08 |
웹페이지에서 분석에 쓸만한 데이터 만들기 : 개발중인 웹서비스를 바탕으로 (0) | 2023.07.27 |