Campaign Manager 전송
Campaign Manager 커넥터용 BigQuery Data Transfer Service를 사용하면 Campaign Manager 보고 데이터에 대해 반복되는 로드 작업을 자동으로 예약하고 관리할 수 있습니다.
지원되는 보고서
Campaign Manager용 BigQuery Data Transfer Service(이전의 DoubleClick Campaign Manager)는 다음과 같은 보고 옵션을 지원합니다.
Campaign Manager 보고서가 BigQuery 테이블 및 뷰로 변환되는 방식은 Campaign Manager 보고서 변환을 참조하세요.
보고 옵션 | 지원 |
---|---|
일정 | 생성 시간을 기준으로 매 8시간 구성할 수 없음 |
새로고침 기간 | 지난 2일 구성할 수 없음 |
최대 백필 기간 | 최근 60일 Campaign Manager는 최대 60일 동안 데이터 전송 파일을 보관합니다. 60일이 지난 파일은 Campaign Manager에 의해 삭제됩니다. |
Campaign Manager 전송에서 데이터 수집
Campaign Manager에서 BigQuery로 데이터를 전송할 때는 데이터가 날짜별로 파티션을 나눈 BigQuery 테이블에 로드됩니다. 데이터가 로드되는 테이블 파티션은 데이터 소스의 날짜에 해당합니다. 동일한 날짜에 여러 전송을 예약하면 BigQuery Data Transfer Service가 해당 날짜의 파티션을 최신 데이터로 덮어씁니다. 동일한 일자에 전송이 여러 개 있거나 백필을 실행해도 데이터가 중복되지 않으며 다른 일자의 파티션에 영향을 주지 않습니다.시작하기 전에
Campaign Manager 데이터 전송을 만들기 전에 다음을 수행하세요.
- BigQuery Data Transfer Service 사용 설정에 필요한 모든 작업을 완료했는지 확인합니다.
- Campaign Manager 데이터를 저장할 BigQuery 데이터 세트를 만듭니다.
조직이 Campaign Manager 데이터 전송 v2(Campaign Manager DTv2) 파일에 액세스할 수 있어야 합니다. Campaign Manager 팀은 파일을 Cloud Storage 버킷으로 전달합니다. Campaign Manager DTv2 파일에 액세스하기 위한 다음 단계는 Campaign Manager와 직접 계약했는지 여부에 따라 달라집니다. 두 경우 모두 추가 수수료가 부과될 수 있습니다.
- Campaign Manager와 계약한 경우, Campaign Manager 지원팀에 문의하여 Campaign Manager DTv2 파일을 설정합니다.
- Campaign Manager와 계약을 하지 않은 경우, 대행사나 Campaign Manager 리셀러가 Campaign Manager DTv2 파일에 액세스할 수 있습니다. 이 파일에 액세스하려면 대행사나 리셀러에게 문의하세요.
이 단계를 완료하면 다음과 비슷한 Cloud Storage 버킷 이름을 받습니다.
dcdt_-dcm_account123456
Pub/Sub의 전송 실행 알림을 설정하려면
pubsub.topics.setIamPolicy
권한이 있어야 합니다. 자세한 내용은 BigQuery Data Transfer Service 실행 알림을 참조하세요.
필수 권한
BigQuery: 데이터 전송을 만드는 사람에게 다음과 같은 BigQuery의 권한이 있는지 확인합니다.
- 데이터 전송을 만드는
bigquery.transfers.update
권한 - 대상 데이터 세트에 대한
bigquery.datasets.get
및bigquery.datasets.update
권한
사전 정의된 IAM 역할
bigquery.admin
에는bigquery.transfers.update
,bigquery.datasets.update
,bigquery.datasets.get
권한이 있습니다. BigQuery Data Transfer Service의 IAM 역할에 대한 자세한 내용은 액세스 제어를 확인하세요.- 데이터 전송을 만드는
Campaign Manager: Cloud Storage에 저장된 Campaign Manager DTv2 파일에 대한 읽기 액세스. Cloud Storage 버킷을 제공한 항목이 액세스를 관리합니다.
Campaign Manager 전송 설정
Campaign Manager 데이터 전송을 설정하려면 다음 항목이 필요합니다.
Cloud Storage 버킷: 시작하기 전에 섹션에서 설명한 것처럼 Campaign Manager DTv2 파일의 Cloud Storage 버킷 URI입니다. 버킷 이름은 다음과 같아야 합니다.
dcdt_-dcm_account123456
Campaign Manager ID: Campaign Manager 네트워크, 광고주, 플러드라이트 ID. 네트워크 ID는 계층 구조의 상위 항목입니다.
Campaign Manager ID 찾기
Campaign Manager ID를 검색하기 위해 Cloud Storage Console을 사용하여 Campaign Manager 데이터 전송 Cloud Storage 버킷에 있는 파일을 검사할 수 있습니다. Campaign Manager ID는 제공된 Cloud Storage 버킷에 있는 파일을 일치시키는 데 사용됩니다. ID는 파일 이름에 포함되며 Cloud Storage 버킷 이름에는 포함되지 않습니다.
예:
- 이름이
dcm_account123456_activity_*
인 파일에서 ID는 123456입니다. - 이름이
dcm_floodlight7890_activity_*
인 파일에서 ID는 7890입니다. - 이름이
dcm_advertiser567_activity_*
인 파일에서 ID는 567입니다.
파일 이름 프리픽스 찾기
드물지만 Cloud Storage 버킷에 있는 파일의 이름이 Google Marketing Platform 서비스팀에서 사용자에게 설정한 커스텀 비표준 파일 이름인 경우가 있습니다.
예:
- 이름이
dcm_account123456custom_activity_*
인 파일에서 프리픽스는 dcm_account123456custom(_activity
앞에 있는 모든 문자)입니다.
도움이 필요하면 Campaign Manager 지원팀에 문의하세요.
Campaign Manager용 데이터 전송 만들기
콘솔
Google Cloud 콘솔의 데이터 전송 페이지로 이동합니다.
전송 만들기를 클릭합니다.
전송 만들기 페이지에서 다음을 수행합니다.
소스 유형 섹션에서 소스로 Campaign Manager를 선택합니다.
전송 구성 이름 섹션의 표시 이름에 데이터 전송 이름(예:
My Transfer
)을 입력합니다. 전송 이름은 나중에 수정해야 할 경우를 대비해 전송을 식별할 수 있는 값이면 됩니다.일정 옵션 섹션의 일정에서 기본값(지금 시작)을 유지하거나 설정 시간에 시작을 클릭합니다.
반복에서 전송을 실행하는 빈도 옵션을 선택합니다.
- 매일(기본값)
- 매주
- 매월
- 커스텀
- 주문형
매일 이외의 옵션을 선택하면 추가 옵션이 제공됩니다. 예를 들어 매주를 선택하면 요일을 선택할 수 있는 옵션이 나타납니다.
시작일 및 실행 시간에 데이터 전송을 시작할 날짜 및 시간을 입력합니다. 지금 시작을 선택하면 이 옵션은 사용 중지됩니다.
대상 설정 섹션의 대상 데이터세트에서 데이터를 저장하기 위해 만든 데이터세트를 선택합니다.
데이터 소스 세부정보 섹션에서 다음을 수행합니다.
- Cloud Storage 버킷의 경우 데이터 전송 V2.0 파일을 저장하는 Cloud Storage 버킷의 이름을 입력하거나 찾습니다. 버킷 이름에는
gs://
가 포함되면 안 됩니다. - DoubleClick ID에 적절한 Campaign Manager ID를 입력합니다.
(선택사항) 파일 이름이 이 예시와 같은 표준 이름인 경우 파일 이름 프리픽스 필드를 공란으로 남겨둡니다. Cloud Storage 버킷의 파일에 커스텀 파일 이름이 포함된 경우 파일 이름 프리픽스를 지정합니다.
- Cloud Storage 버킷의 경우 데이터 전송 V2.0 파일을 저장하는 Cloud Storage 버킷의 이름을 입력하거나 찾습니다. 버킷 이름에는
(선택사항) 알림 옵션 섹션에서 다음을 수행합니다.
저장을 클릭합니다.
bq
bq mk
명령어를 입력하고 전송 생성 플래그 --transfer_config
를 지정합니다. 다음 플래그도 필요합니다.
--data_source
--target_dataset
--display_name
--params
bq mk --transfer_config \ --project_id=project_id \ --target_dataset=dataset \ --display_name=name \ --params='parameters' \ --data_source=data_source
각 항목의 의미는 다음과 같습니다.
- project_id는 프로젝트 ID입니다.
- dataset는 데이터 전송 구성의 대상 데이터 세트입니다.
- name은 데이터 전송 구성의 표시 이름입니다. 전송 이름은 나중에 수정해야 할 경우를 대비해 전송을 식별할 수 있는 값이면 됩니다.
- parameters에는 JSON 형식으로 생성된 데이터 전송 구성의 매개변수가 있습니다. 예를 들면
--params='{"param":"param_value"}'
입니다. Campaign Manager의 경우bucket
및network_id
매개변수를 제공해야 합니다.bucket
은 Campaign Manager DTv2 파일이 포함된 Cloud Storage 버킷입니다.network_id
는 네트워크, 플러드라이트 또는 광고주 ID입니다. - data_source는 데이터 소스입니다.
dcm_dt
(Campaign Manager)
또한 --project_id
플래그를 입력하여 특정 프로젝트를 지정할 수도 있습니다. --project_id
를 지정하지 않으면 기본 프로젝트가 사용됩니다.
예를 들어 다음 명령어는 Campaign Manager ID 123456
, Cloud Storage 버킷 dcdt_-dcm_account123456
, 대상 데이터 세트 mydataset
를 사용하여 My Transfer
라는 Campaign Manager 데이터 전송을 만듭니다. file_name_prefix
매개변수는 선택사항이며 커스텀 파일 이름인 경우에만 드물게 사용됩니다.
기본 프로젝트에 데이터 전송이 생성됩니다.
bq mk --transfer_config \
--target_dataset=mydataset \
--display_name='My Transfer' \
--params='{"bucket": "dcdt_-dcm_account123456","network_id": "123456","file_name_prefix":"YYY"}' \
--data_source=dcm_dt
명령어를 실행한 후 다음과 같은 메시지가 수신됩니다.
[URL omitted] Please copy and paste the above URL into your web browser and
follow the instructions to retrieve an authentication code.
안내에 따라 인증 코드를 명령줄에 붙여넣습니다.
API
projects.locations.transferConfigs.create
메서드를 사용하고 TransferConfig
리소스의 인스턴스를 지정합니다.
자바
이 샘플을 사용해 보기 전에 BigQuery 빠른 시작: 클라이언트 라이브러리 사용의 Java 설정 안내를 따르세요. 자세한 내용은 BigQuery Java API 참고 문서를 확인하세요.
BigQuery에 인증하려면 애플리케이션 기본 사용자 인증 정보를 설정합니다. 자세한 내용은 클라이언트 라이브러리의 인증 설정을 참조하세요.
Campaign Manager 전송 설정 문제 해결
데이터 전송을 설정하는 데 문제가 발생하면 전송 구성 문제 해결의 Campaign Manager 전송 문제를 참조하세요.
데이터 쿼리
BigQuery로 전송되는 데이터는 내부 데이터화 시간별로 파티션을 나눈 테이블에 기록됩니다. 자세한 내용은 파티션을 나눈 테이블 소개를 참조하세요.
자동 생성된 뷰를 사용하지 않고 직접 테이블을 쿼리하는 경우에는 쿼리에서 _PARTITIONTIME
유사 열을 사용해야 합니다. 자세한 내용은 파티션을 나눈 테이블 쿼리를 참조하세요.
Campaign Manager 샘플 쿼리
다음 Campaign Manager 샘플 쿼리를 사용하여 전송된 데이터를 분석할 수 있습니다. Looker Studio와 같은 시각화 도구에서 쿼리를 사용할 수도 있습니다. BigQuery로 Campaign Manager 데이터 쿼리를 시작하는 데 유용합니다. 이 보고서로 할 수 있는 작업에 대해 추가 문의 사항이 있는 경우, Campaign Manager 기술 담당자에게 문의하세요.
다음 각 쿼리에서 dataset와 같은 변수를 실제 값으로 바꿉니다.
최신 캠페인
다음 SQL 샘플 쿼리는 최신 캠페인을 가져옵니다.
SELECT Campaign, Campaign_ID FROM `dataset.match_table_campaigns_campaign_manager_id` WHERE _DATA_DATE = _LATEST_DATE
캠페인별 노출 수 및 고유 사용자 수
다음 SQL 샘플 쿼리는 지난 30일 동안의 캠페인별 노출 수와 고유 사용자 수를 분석합니다.
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT Campaign_ID, _DATA_DATE AS Date, COUNT(*) AS count, COUNT(DISTINCT User_ID) AS du FROM `dataset.impression_campaign_manager_id` WHERE _DATA_DATE BETWEEN start_date AND end_date GROUP BY Campaign_ID, Date
캠페인 및 날짜별로 최신 캠페인 정렬
다음 SQL 샘플 쿼리는 지난 30일 동안의 최신 캠페인을 캠페인과 날짜별로 정렬하여 분석합니다.
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT Campaign, Campaign_ID, Date FROM ( SELECT Campaign, Campaign_ID FROM `dataset.match_table_campaigns_campaign_manager_id` WHERE _DATA_DATE = _LATEST_DATE ), ( SELECT date AS Date FROM `bigquery-public-data.utility_us.date_greg` WHERE Date BETWEEN start_date AND end_date ) ORDER BY Campaign_ID, Date
날짜 범위 내 캠페인별 노출 수 및 고유 사용자 수
다음 SQL 샘플 쿼리는 start_date ~ end_date 사이의 캠페인별 노출 수와 개별 사용자 수를 분석합니다.
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT base.*, imp.count AS imp_count, imp.du AS imp_du FROM ( SELECT * FROM ( SELECT Campaign, Campaign_ID FROM `dataset.match_table_campaigns_campaign_manager_id` WHERE _DATA_DATE = _LATEST_DATE ), ( SELECT date AS Date FROM `bigquery-public-data.utility_us.date_greg` WHERE Date BETWEEN start_date AND end_date ) ) AS base LEFT JOIN ( SELECT Campaign_ID, _DATA_DATE AS Date, COUNT(*) AS count, COUNT(DISTINCT User_ID) AS du FROM `dataset.impression_campaign_manager_id` WHERE _DATA_DATE BETWEEN start_date AND end_date GROUP BY Campaign_ID, Date ) AS imp ON base.Campaign_ID = imp.Campaign_ID AND base.Date = imp.Date WHERE base.Campaign_ID = imp.Campaign_ID AND base.Date = imp.Date ORDER BY base.Campaign_ID, base.Date
캠페인별 노출 수, 클릭 수, 활동 수, 고유 사용자 수
다음 SQL 샘플 쿼리는 지난 30일 동안의 캠페인별 노출 수, 클릭 수, 활동 수, 고유 사용자 수를 분석합니다. 이 쿼리에서 campaign_list와 같은 변수를 실제 값으로 바꿉니다. 예를 들어 campaign_list를 쿼리 범위 내의 관심 있는 모든 Campaign Manager 캠페인이 나열된 쉼표로 구분된 목록으로 바꿉니다.
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT base.*, imp.count AS imp_count, imp.du AS imp_du, click.count AS click_count, click.du AS click_du, activity.count AS activity_count, activity.du AS activity_du FROM ( SELECT * FROM ( SELECT Campaign, Campaign_ID FROM `dataset.match_table_campaigns_campaign_manager_id` WHERE _DATA_DATE = _LATEST_DATE ), ( SELECT date AS Date FROM `bigquery-public-data.utility_us.date_greg` WHERE Date BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) ) ) AS base LEFT JOIN ( SELECT Campaign_ID, _DATA_DATE AS Date, COUNT(*) AS count, COUNT(DISTINCT User_ID) AS du FROM `dataset.impression_campaign_manager_id` WHERE _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) GROUP BY Campaign_ID, Date ) AS imp ON base.Campaign_ID = imp.Campaign_ID AND base.Date = imp.Date LEFT JOIN ( SELECT Campaign_ID, _DATA_DATE AS Date, COUNT(*) AS count, COUNT(DISTINCT User_ID) AS du FROM `dataset.click_campaign_manager_id` WHERE _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) GROUP BY Campaign_ID, Date ) AS click ON base.Campaign_ID = click.Campaign_ID AND base.Date = click.Date LEFT JOIN ( SELECT Campaign_ID, _DATA_DATE AS Date, COUNT(*) AS count, COUNT(DISTINCT User_ID) AS du FROM `dataset.activity_campaign_manager_id` WHERE _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) GROUP BY Campaign_ID, Date ) AS activity ON base.Campaign_ID = activity.Campaign_ID AND base.Date = activity.Date WHERE base.Campaign_ID IN campaign_list AND (base.Date = imp.Date OR base.Date = click.Date OR base.Date = activity.Date) ORDER BY base.Campaign_ID, base.Date
캠페인 활동
다음 SQL 샘플 쿼리는 지난 30일 동안의 캠페인 활동을 분석합니다. 이 쿼리에서 campaign_list와 같은 변수를 실제 값으로 바꿉니다. 예를 들어 campaign_list를 쿼리 범위 내의 관심 있는 모든 Campaign Manager 캠페인이 나열된 쉼표로 구분된 목록으로 바꿉니다.
# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) SELECT base.*, activity.count AS activity_count, activity.du AS activity_du FROM ( SELECT * FROM ( SELECT Campaign, Campaign_ID FROM `dataset.match_table_campaigns_campaign_manager_id` WHERE _DATA_DATE = _LATEST_DATE ), ( SELECT mt_at.Activity_Group, mt_ac.Activity, mt_ac.Activity_Type, mt_ac.Activity_Sub_Type, mt_ac.Activity_ID, mt_ac.Activity_Group_ID FROM `dataset.match_table_activity_cats_campaign_manager_id` AS mt_ac JOIN ( SELECT Activity_Group, Activity_Group_ID FROM `dataset.match_table_activity_types_campaign_manager_id` WHERE _DATA_DATE = _LATEST_DATE ) AS mt_at ON mt_at.Activity_Group_ID = mt_ac.Activity_Group_ID WHERE _DATA_DATE = _LATEST_DATE ), ( SELECT date AS Date FROM `bigquery-public-data.utility_us.date_greg` WHERE Date BETWEEN start_date AND end_date ) ) AS base LEFT JOIN ( SELECT Campaign_ID, Activity_ID, _DATA_DATE AS Date, COUNT(*) AS count, COUNT(DISTINCT User_ID) AS du FROM `dataset.activity_campaign_manager_id` WHERE _DATA_DATE BETWEEN DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY) AND DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY) GROUP BY Campaign_ID, Activity_ID, Date ) AS activity ON base.Campaign_ID = activity.Campaign_ID AND base.Activity_ID = activity.Activity_ID AND base.Date = activity.Date WHERE base.Campaign_ID IN campaign_list AND base.Activity_ID = activity.Activity_ID ORDER BY base.Campaign_ID, base.Activity_Group_ID, base.Activity_ID, base.Date