TCRM 설치 가이드

1단계: Google Cloud Platform (GCP) 설정

경고: Google 소유 GCP 프로젝트는 시행자 (ECP)에서 시행할 수 있습니다. 이 경우 설치에 실패하여 보안 키를 요청합니다. 이 문제를 방지하려면 새 GCP 프로젝트를 만들거나 (ECP가 프로젝트를 찾는 데 약 24시간이 소요됨) 이 문제에 대한 영구적인 해결책을 찾는 동안 시행되지 않는 공개 프로젝트를 사용하세요.

1.1 GCP 프로젝트 선택 또는 만들기

Google Cloud Platform 프로젝트를 만들거나 기존 프로젝트를 사용합니다. 파일을 열고 페이지 상단에 프로젝트 이름이 표시되는지 확인합니다.

2단계: TCRM 설치하기

2.1 TCRM 코드 폴더에 대한 액세스 요청

TCRM이 오픈소스로 제공되어 외부에서 사용할 수 있을 때까지 매번 사용 시 클론 권한이 필요합니다. 이 요청 양식을 제출하여 TCRM 코드 폴더를 클론할 액세스 권한을 얻습니다.

2.2 TCRM 설치하기

  1. 페이지 오른쪽 상단에 있는 Cloud Shell 아이콘을 클릭하여 GCP 명령줄을 엽니다.

  2. 셸에서 다음 명령어를 실행하여 TCRM 코드 폴더를 클론합니다.

      git clone https://github.com/google/TaglessCRM.git
    

  3. 그런 후 다음 명령어를 실행합니다.

      cd TaglessCRM && sh setup.sh --project_id=$GOOGLE_CLOUD_PROJECT
    

참고: 이 명령어는 다음 3단계를 수행합니다.

  1. Python 가상 환경을 만들고 필요한 모든 Python 패키지를 설치합니다.
  2. GCP 프로젝트에서 필요한 Cloud API를 사용 설정합니다.
  3. Cloud Composer 환경을 만들고 TCRM DAG를 배포합니다.

참고: 설치 실행에는 약 2시간이 소요됩니다. 스크립트 실행이 완료될 때까지 기다려 주세요.

3단계: Airflow 구성 및 변수 설정

3.1 BigQuery 연결 설정하기

BigQuery에서 데이터를 읽으려면 서비스 계정을 BigQuery 연결에 연결해야 합니다.

ID → 서비스 계정을 클릭합니다. 그런 다음 tcrm-sa로 시작하는 서비스 계정 옆에 있는 점 3개를 클릭하고 키 만들기 → JSON → 만들기를 선택합니다.

텍스트 편집기에서 다운로드한 키를 열고 안에 있는 JSON을 복사합니다.

Airflow (Composer → Airflow)로 돌아가서 관리자 → 연결을 선택합니다.

연결 bigquery_default 옆의 연필 아이콘을 클릭합니다.

참고: 기본 연결 이름은 bigquery_default입니다. 다른 BigQuery 연결 이름을 사용하는 경우 새 연결 이름으로 monitoring_bq_conn_idbq_conn_id Airflow 변수 (연결이 아니라 변수)를 설정해야 합니다.

팁: Airflow 연결 관리에 대한 자세한 내용은 이 페이지를 참조하세요.

키 파일 JSON 필드에 서비스 계정 JSON을 붙여넣고 저장을 클릭합니다.

3.2 Airflow UI를 사용하여 변수 설정

  1. 화면의 왼쪽 상단에 있는 메뉴를 엽니다. 그런 다음 Composer를 클릭하여 Composer 환경 페이지를 엽니다.

  2. Composer 화면의 목록 왼쪽에서 tcrm-env라는 행을 찾습니다. 해당 행에서 Airflow 링크를 클릭하여 Airflow 콘솔을 엽니다.

  3. Airflow 콘솔의 상단 메뉴 바에서 Admin 옵션을 클릭한 후 드롭다운 메뉴에서 Variables를 선택합니다.

  4. 변수 화면에서 Create를 클릭합니다.

  5. 새 변수를 추가하려면 변수 키 이름과 값을 입력한 후 save를 클릭합니다. 다음 두 단계를 참조하여 각 DAG에 필요한 변수를 확인하세요.

3.3 일반 DAG 변수 구성

다음 표에는 모든 DAG에 필요한 일반 변수가 포함되어 있습니다. 이러한 변수에는 기본값이 자동으로 설정되어 있으므로 기본값이 필요에 맞게 변경할 필요가 없습니다. 그러나 Variable Name이 동일한 Airflow 변수를 다른 값으로 설정하면 언제든지 이러한 변수를 변경할 수 있습니다.

다양한 DAG의 구성을 다르게 하기 위해 일부 변수 이름에는 프리픽스로 DAG 이름이 포함됩니다. <DAG Name> 부분을 바꾸고 올바른 DAG 이름을 사용하세요.

예를 들어 tcrm_gcs_to_ga DAG의 일정 변수를 설정하려면 아래 <DAG Name>_schedule 변수에서 변수 이름을 가져와 tcrm_gcs_to_ga_schedule라는 변수를 만듭니다. tcrm_gcs_to_ads_oc DAG를 예약하려면 tcrm_gcs_to_ads_oc_schedule이라는 변수를 만듭니다.

DAG 이름은 DAG 탭의 Airflow UI에서 확인할 수 있습니다.

3.3.1 일반 변수 표
변수 이름 기본값 변수 정보
<DAG_Name>_retries 0 정수. 실패한 경우 Airflow가 DAG를 다시 실행하려고 시도하는 횟수입니다. TCRM에는 자체 재시도 메커니즘이 있으므로 이를 0으로 유지하는 것이 좋습니다. 하지만 다른 정수로 설정하면 오류가 발생하지 않지만 이전에 실패한 이벤트는 다시 전송하려고 시도하지 않습니다.
<DAG_Name>_retry_delay 3 정수. DAG가 다시 실행될 때까지 걸리는 시간(분)입니다.
<DAG_Name>_schedule @once DAG 일정 DAG를 예약하는 방법에 대한 자세한 내용은 3.3.2 DAG 예약 섹션을 참조하세요.
<DAG_Name>_is_retry 1 사용하려면 1, 사용 중지하려면 0. DAG가 이전에 실패한 이벤트를 동일한 출력 소스로 다시 보내도록 시도해야 하는지 여부입니다. 이전의 유사한 실행에서 실패한 이벤트를 전송하기 위한 내부 재시도입니다. 전체 DAG의 Airflow 재시도와 다릅니다. 자세한 내용은 이 사용 가이드의 재시도 메커니즘 섹션을 참조하세요.
<DAG_Name>_is_run 1 사용하려면 1, 사용 중지하려면 0. DAG가 기본 실행을 포함해야 하는지 여부입니다. 사용자가 기본 실행을 건너뛰고 재시도 작업만 실행하려는 경우 이 옵션을 사용 중지할 수 있습니다. 자세한 내용은 이 사용 가이드의 실행 섹션을 참조하세요.
<DAG_Name>_enable_run_report 0 사용하려면 1, 사용 중지하려면 0. DAG가 실행 보고서를 반환하는지 여부를 나타냅니다. 일부 DAG에는 보고서가 없습니다. 자세한 내용은 이 사용 가이드의 보고서 섹션을 참조하세요.
<DAG_Name>_enable_monitoring 1 사용하려면 1, 사용 중지하려면 0. 자세한 내용은 이 사용 가이드의 모니터링 섹션을 참조하세요.
monitoring_dataset tcrm_monitoring_dataset 모니터링 테이블의 데이터 세트 ID입니다.
monitoring_table tcrm_monitoring_table 모니터링 테이블의 테이블 이름입니다.
monitoring_bq_conn_id bigquery_default 모니터링 테이블의 BigQuery 연결 ID입니다. 입력 BQ 연결 ID와 동일하거나 다를 수 있습니다.
3.3.2 DAG 예약

DAG 스케줄러를 설정하려면 예약할 각 DAG의 일정 변수를 만듭니다. 변수 이름은 DAG 이름으로 시작하고 그 뒤에 _schedule가 와야 합니다.

변수 값은 DAG를 예약할 간격이어야 합니다. 예를 들면 다음과 같습니다.

@once를 삽입하여 DAG를 한 번만 실행하거나 @daily 또는 @weekly를 삽입하여 DAG가 적절하게 실행되도록 설정합니다. 사용 가능한 모든 예약 옵션을 알아보려면 이 가이드를 참조하세요.

이는 선택적 변수입니다. 일정 변수가 설정되지 않은 경우 모든 DAG의 기본 일정은 @once입니다.

3.4 특정 DAG 변수 구성

다음 섹션에는 각 DAG를 실행하는 데 필요한 변수가 나와 있습니다. 사용하려는 DAG의 변수만 설정하면 됩니다.

3.4.1 tcrm_bq_to_ga DAG

tcrm_bq_to_ga DAG를 실행하려면 다음 변수를 설정합니다.

  • bq_dataset_id: 데이터가 포함된 BigQuery 데이터 세트의 이름입니다. 예: my_dataset
  • bq_table_id: 데이터가 포함된 BigQuery 테이블의 이름입니다. 예를 들면 my_table입니다.
  • ga_tracking_id: Google 애널리틱스 추적 ID입니다. 예: UA-123456789-1

3.4.2 tcrm_gcs_to_ga DAG

tcrm_gcs_to_ga DAG를 실행하려면 다음 변수를 설정합니다.

  • gcs_bucket_name: Cloud Storage 버킷 이름입니다. 예: my_bucket
  • gcs_bucket_prefix: 버킷 내부의 데이터 폴더 경로입니다. 예를 들면 folder/sub_folder입니다.
  • gcs_content_type(선택사항): Cloud Storage 콘텐츠 유형입니다. JSON 또는 CSV입니다.
  • ga_tracking_id: Google 애널리틱스 추적 ID입니다. 예: UA-123456789-1

3.4.3 tcrm_bq_to_ads_oc DAG

tcrm_bq_to_ads_oc DAG를 실행하려면 다음 변수를 설정합니다.

  • bq_dataset_id: 데이터가 포함된 BigQuery 데이터 세트의 이름입니다. 예: my_dataset
  • bq_table_id: 데이터가 포함된 BigQuery 테이블의 이름입니다. 예를 들면 my_table입니다.
  • ads_credentials: Google Ads API의 인증 정보입니다. 자세한 내용은 3.5.1 Google Ads 인증을 위한 ads_credentials YAML 문자열 만들기를 참조하세요.
3.4.4 tcrm_gcs_to_ads_oc DAG

tcrm_gcs_to_ads_oc DAG를 실행하려면 다음 변수를 설정합니다.

  • gcs_bucket_name: Cloud Storage 버킷 이름입니다. 예: my_bucket
  • gcs_bucket_prefix: 버킷 내부의 데이터 폴더 경로입니다. 예를 들면 folder/sub_folder입니다.
  • gcs_content_type(선택사항): Cloud Storage 콘텐츠 유형입니다. JSON 또는 CSV입니다.
  • ads_credentials: Google Ads API의 인증 정보입니다. 자세한 내용은 3.5.1 Google Ads 인증을 위한 ads_credentials YAML 문자열 만들기를 참조하세요.

3.5 Google 플랫폼에 대한 인증

3.5.1 Google Ads 인증을 위한 ads_credentials YAML 문자열 만들기

Google Ads에서 자신을 인증하려면 YAML 형식의 문자열을 만들고 Airflow 매개변수로 저장해야 합니다. 이 매개변수는 TCRM이 TCRM과 Google Ads 간의 인증에 사용합니다. 문자열 형식은 다음과 같습니다.

developer_token: abcd
client_id: test.apps.googleusercontent.com
client_secret: secret
refresh_token: 1//token
login_customer_id: 1234567890
use_proto_plus: True

login_customer_id는 Google Ads에 로그인한 후 이메일 오른쪽 상단에 있습니다. 고객 ID는 자동화하려는 Google Ads 계정이 포함된 MCC 계정 ID여야 합니다.

developer_token은 Google Ads MCC 계정에 로그인한 후 API 센터에 있습니다.

client_idclient_secret은 GCP Console의 API 및 서비스 페이지에서 만들 수 있습니다.

갱신 토큰은 다음을 실행하여 생성할 수 있습니다.

  • Python 스크립트를 다운로드합니다.

  • 터미널에서 필수 매개변수와 함께 Python 스크립트를 실행합니다. python generate_refresh_token.py --client_id INSERT_CLIENT_ID --client_secret INSERT_CLIENT_SECRET

  • 링크를 클릭합니다.

  • Google Ads 데이터 수정 권한이 있는 이메일 계정을 선택하고 허용을 클릭합니다.

  • 코드를 복사하여 코드 다음에 터미널에 붙여넣습니다. 갱신 토큰은 아래에 나와 있습니다.

4단계: 전송할 데이터 준비하기

4.1 Google 애널리틱스 (GA)용 데이터 준비하기

참고: 자세한 내용은 측정 프로토콜 API를 참고하세요.

GA로 데이터를 전송하려면 다음 3가지 옵션 중에서 선택할 수 있습니다.

  1. BigQuery에서 SQL 테이블 형식으로 tcrm_bq_to_ga DAG를 사용합니다.

  2. JSON 형식의 tcrm_gcp_to_ga DAG를 사용하여 Google Cloud Storage에서

{"cid": "12345.67890", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "300" }
{"cid": "12345.67891", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "301" }
{"cid": "12345.67892", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "302" }
{"cid": "12345.67893", "t":"event", "ec": "video", "ea": "play", "el": "holiday", "ev": "303" }
  1. CSV 형식의 tcrm_gcp_to_ga DAG를 사용하여 Google Cloud Storage에서
cid,t,ec,ea,el,ev
12345.67890,event,video,play,holiday,300
12345.67891,event,video,play,holiday,301
12345.67892,event,video,play,holiday,302
12345.67893,event,video,play,holiday,303

경고: Google 애널리틱스가 TCRM에서 전송된 데이터를 수락하도록 하려면 GA의 봇 필터링을 구성해야 합니다. 이렇게 하려면 Google 애널리틱스 UI에서 Admin -> View Settings -> Bot Filtering로 이동한 다음 '알려진 봇 및 스파이더에서 발생한 모든 조회 제외'를 선택 해제합니다.

4.2 Google Ads 오프라인 전환을 위한 데이터 준비하기

Google Ads로 데이터를 전송하려면 다음 3가지 옵션 중에서 선택할 수 있습니다.

  1. BigQuery에서 SQL 테이블 형식으로 tcrm_bq_to_ads_oc DAG를 사용합니다.

  2. JSON 형식의 tcrm_gcs_to_ads_oc DAG를 사용하여 Google Cloud Storage에서

{"conversionName": "my_conversion_1", "conversionTime":"20191030 122301 Asia/Calcutta", "conversionValue": "0.47", "googleClickId": "gclid1"}
{"conversionName": "my_conversion_1", "conversionTime":"20191030 122401 Asia/Calcutta", "conversionValue": "0.37", "googleClickId": "gclid2"}
{"conversionName": "my_conversion_2", "conversionTime":"20191030 122501 Asia/Calcutta", "conversionValue": "0.41", "googleClickId": "gclid3"}
{"conversionName": "my_conversion_2", "conversionTime":"20191030 122601 Asia/Calcutta", "conversionValue": "0.17", "googleClickId": "gclid4"}
  1. CSV 형식의 tcrm_gcp_to_ads_oc DAG를 사용하여 Google Cloud Storage에서
conversionName,conversionTime,conversionValue,googleClickId
my_conversion_1,20191030 122301 Asia/Calcutta,0.47,gclid1
my_conversion_1,20191030 122401 Asia/Calcutta,0.37,gclid2
my_conversion_2,20191030 122501 Asia/Calcutta,0.41,gclid3
my_conversion_2,20191030 122601 Asia/Calcutta,0.17,gclid4

5단계: TCRM 실행

Airflow 콘솔의 상단 메뉴 바에서 DAGs 옵션을 클릭합니다. 왼쪽 목록에서 실행할 DAG를 찾습니다. 그런 다음 목록의 오른쪽에 있는 Play 버튼을 클릭하여 실행합니다.