Campaign Manager 전송

Campaign Manager용 BigQuery Data Transfer Service를 사용하면 Campaign Manager 보고서 데이터와 관련한 반복적인 로드 작업을 자동으로 예약하고 관리할 수 있습니다.

지원되는 보고서

현재 Campaign Manager(이전 명칭: DoubleClick Campaign Manager)용 BigQuery Data Transfer Service는 다음과 같은 보고 옵션을 지원합니다.

Campaign Manager 보고서가 bigquery 표 및 뷰로 변환되는 방식은 Campaign Manager 보고서 변환을 참조하세요.

보고 옵션 지원
지원되는 API 버전 2017년 6월 26일
일정

생성 시간을 기준으로 매 8시간

구성할 수 없음

새로고침 기간

지난 2일

구성할 수 없음

최대 백필 기간

최근 60일

Campaign Manager는 최대 60일 동안 데이터 전송 파일을 보관합니다. 60일이 지난 파일은 Campaign Manager에 의해 삭제됩니다.

시작하기 전에

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

    Google Cloud팀은 사용자를 대신하여 Campaign Manager DTv2 파일에 대한 액세스 권한을 생성하거나 부여할 수 없습니다. Campaign Manager DTv2 파일에 액세스하려면 Campaign Manager 지원팀, 대행사, Campaign Manager 리셀러에게 문의하세요.

  • 전송을 만드는 사람에게 다음과 같은 필수 권한이 있는지 확인합니다.
    • Campaign Manager: Cloud Storage에 저장된 Campaign Manager DTv2 파일에 대한 읽기 액세스. Cloud Storage 버킷을 제공한 항목이 액세스를 관리합니다.
    • BigQuery: 전송을 만들기 위한 bigquery.transfers.update 권한과 대상 데이터세트에 관한 bigquery.datasets.update 권한. 사전 정의된 프로젝트 수준 IAM 역할 bigquery.admin에는 bigquery.transfers.updatebigquery.datasets.update 권한이 포함됩니다. BigQuery의 IAM 역할에 대한 자세한 내용은 액세스 제어를 참조하세요.
  • BigQuery 웹 UI를 사용하여 전송을 만들려면 권한 창을 볼 수 있도록 bigquery.cloud.google.com에서 팝업을 허용합니다. 전송이 성공하려면 Campaign Manager 캠페인을 관리하기 위한 BigQuery Data Transfer Service 권한을 허용해야 합니다.
  • 전송 실행 알림은 현재 알파 버전입니다. 전송 알림을 설정하려면 Cloud Pub/Sub의 pubsub.topics.setIamPolicy 권한이 있어야 합니다. 이메일 알림만 설정한다면 Cloud Pub/Sub 권한은 필요 없습니다. 자세한 내용은 BigQuery Data Transfer Service 실행 알림을 참조하세요.

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 찾기

Cloud Storage 웹 UI에서 Google Ad Manager 데이터 전송 Cloud Storage 버킷에 있는 파일을 검사하여 Campaign Manager ID를 가져올 수 있습니다. 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용 BigQuery 데이터 전송을 만들려면 다음 단계를 따르세요.

웹 UI

  1. BigQuery 웹 UI로 이동합니다.

    BigQuery 웹 UI로 이동

  2. 전송을 클릭합니다.

  3. 전송 추가를 클릭합니다.

  4. 새 전송 페이지에서 다음 안내를 따릅니다.

    • 소스에서 Campaign Manager(이전 명칭: DCM)를 선택합니다.
    • 표시 이름에 전송 이름을 입력합니다(예: My Transfer). 전송 이름은 나중에 수정해야 할 경우에 대비해 전송을 식별할 수 있는 값이면 됩니다.
    • 대상 데이터세트에서 적절한 데이터세트를 선택합니다.
    • Cloud Storage 버킷에 데이터 전송 V2.0 파일이 저장되는 Cloud Storage 버킷 이름을 입력합니다. 버킷 이름에는 gs://가 포함되면 안 됩니다.
    • DoubleClick ID에 적절한 Campaign Manager ID를 입력합니다.
    • (선택 사항) 파일 이름이 이 예시와 같은 표준 이름인 경우 파일 이름 프리픽스 필드를 공란으로 남겨둡니다. Cloud Storage 버킷에 있는 파일의 이름이 이 예시와 같은 커스텀 파일 이름인 경우에만 파일 이름 프리픽스를 입력합니다.

      채널 전송

    • (선택사항) 고급 섹션을 펼치면 전송의 실행 알림을 구성할 수 있습니다. 전송 실행 알림은 현재 알파 버전입니다.

      • Cloud Pub/Sub 주제주제 이름을 입력합니다(예: projects/myproject/topics/mytopic).
      • 전송 실행 실패 시 이메일 알림을 허용하려면 이메일 알림 전송을 선택합니다.
      • 전송 설정 시 사용 중지됨을 선택하지 않습니다. 기존 전송을 사용 중지하려면 전송 작업을 참조하세요.

        Cloud Pub/Sub 주제

  5. 추가를 클릭합니다.

  6. 메시지가 표시되면 허용을 클릭하여 BigQuery Data Transfer Service에 Campaign Manager 보고 데이터에 액세스하고 BigQuery의 데이터를 관리할 권한을 부여합니다. 권한 창을 보려면 bigquery.cloud.google.com에서 팝업을 허용해야 합니다.

    전송 허용

명령줄

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입니다.
  • --target_dataset는 전송 구성 대상 데이터세트입니다.
  • --display_name은 전송 구성 표시 이름입니다. 전송 이름은 나중에 수정해야 할 경우에 전송을 식별할 수 있는 값이면 됩니다.
  • --params에는 JSON 형식으로 생성된 전송 구성의 매개변수가 포함됩니다(예: --params='{"param":"param_value"}'). Campaign Manager의 경우, bucketnetwork_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 리소스의 인스턴스를 제공합니다.

Campaign Manager 전송 설정 문제해결

전송을 설정하는 데 문제가 발생하면 BigQuery Data Transfer Service 전송 설정 문제해결Campaign Manager 전송 문제를 참조하세요.

데이터 쿼리

BigQuery로 전송되는 데이터는 내부 데이터화 시간별로 파티션을 나눈 테이블에 기록됩니다. 자세한 내용은 파티션을 나눈 테이블 소개를 참조하세요.

자동 생성된 뷰를 사용하지 않고 직접 테이블을 쿼리하는 경우에는 쿼리에서 _PARTITIONTIME 유사 열을 사용해야 합니다. 자세한 내용은 파티션 테이블 쿼리를 참조하세요.

Campaign Manager 샘플 쿼리

다음 Campaign Manager 샘플 쿼리를 사용하여 전송된 데이터를 분석할 수 있습니다. 이 쿼리는 Cloud Datalab 또는 Google 데이터 스튜디오와 같은 시각화 도구에서도 사용할 수 있으며, BigQuery로 Campaign Manager 데이터 쿼리를 시작하는 데 유용합니다. 이 보고서로 할 수 있는 작업에 대해 추가 문의 사항이 있는 경우, Campaign Manager 기술 담당자에게 문의하세요.

이 샘플에서는 BigQuery의 표준 SQL 지원을 사용합니다. #standardSQL 태그를 사용하여 표준 SQL 사용 의사를 BigQuery에 알립니다. #standardSQL 프리픽스에 관한 자세한 내용은 쿼리 프리픽스 설정을 참조하세요.

다음 각 쿼리에서 [DATASET]를 해당 데이터세트 이름으로 바꿉니다. [DOUBLECLICK_ID]를 Campaign Manager ID로 바꿉니다.

최신 캠페인

다음 샘플 쿼리는 최신 캠페인을 가져옵니다.

웹 UI

#standardSQL
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
WHERE _DATA_DATE = _LATEST_DATE

명령줄

bq query --use_legacy_sql=false '
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
WHERE _DATA_DATE = _LATEST_DATE'

캠페인별 노출 수 및 고유 사용자 수

다음 샘플 쿼리는 지난 30일 동안의 캠페인별 노출 수와 고유 사용자 수를 분석합니다.

웹 UI

#standardSQL
# 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[DOUBLECLICK_ID]` WHERE
  _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
GROUP BY Campaign_ID, Date

명령줄

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT Campaign_ID, _DATA_DATE AS Date, count(*) AS count, count(distinct User_ID) AS du
FROM `[DATASET].impression_[DOUBLECLICK_ID]` WHERE
  _DATA_DATE BETWEEN [START_DATE] AND [END_DATE]
GROUP BY Campaign_ID, Date'

캠페인 및 날짜별로 최신 캠페인 정렬

다음 샘플 쿼리는 지난 30일 동안의 최신 캠페인을 캠페인과 날짜별로 정렬하여 분석합니다.

웹 UI

#standardSQL
# 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_[DOUBLECLICK_ID]`
  WHERE _DATA_DATE = _LATEST_DATE
), (
SELECT date AS Date
  FROM `bigquery-public-data.common_us.date_greg`
  WHERE Date BETWEEN [START_DATE] AND [END_DATE]
)
ORDER BY
  Campaign_ID, Date

명령줄

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT Campaign, Campaign_ID, Date FROM (
SELECT Campaign, Campaign_ID FROM `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
  WHERE _DATA_DATE = _LATEST_DATE
), (
SELECT date AS Date
  FROM `bigquery-public-data.common_us.date_greg`
  WHERE Date BETWEEN [START_DATE] AND [END_DATE]
)
ORDER BY
  Campaign_ID, Date'

날짜 범위 내 캠페인별 노출 수 및 고유 사용자 수

다음 샘플 쿼리는 [START_DATE]와 [END_DATE] 사이의 캠페인별 노출 수와 고유 사용자 수를 분석합니다.

웹 UI

#standardSQL
# 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_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = \_LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_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[DOUBLECLICK_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

명령줄

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  imp.count AS imp_count,
  imp.du AS imp_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_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[DOUBLECLICK_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'

캠페인별 노출 수, 클릭 수, 활동 수, 고유 사용자 수

다음 샘플 쿼리는 지난 30일 동안의 캠페인별 노출 수, 클릭 수, 활동 수, 고유 사용자 수를 분석합니다.

웹 UI

#standardSQL
# 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_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_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[DOUBLECLICK_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[DOUBLECLICK_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[DOUBLECLICK_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

명령줄

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
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_[DOUBLECLICK_ID]`
    WHERE
      DATA_DATE = _LATEST_DATE ),
    (
    SELECT
      date AS Date
    FROM
      `bigquery-public-data.common_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[DOUBLECLICK_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[DOUBLECLICK_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[DOUBLECLICK_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'

캠페인 활동

다음 샘플 쿼리는 지난 30일 동안의 캠페인 활동을 분석합니다. 이 쿼리에서 [CAMPAIGN_LIST]를 쿼리 범위 내의 관심 있는 모든 Campaign Manager 캠페인이 나열된 쉼표로 구분된 목록으로 바꿉니다.

웹 UI

#standardSQL
# 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_[DOUBLECLICK_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[DOUBLECLICK_ID]` AS mt_ac
    JOIN (
      SELECT
        Activity_Group,
        Activity_Group_ID
      FROM
        `[DATASET].match_table_activity_types_[DOUBLECLICK_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.common_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_[DOUBLECLICK_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

명령줄

# START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
# END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
bq query --use_legacy_sql=false '
SELECT
  base.*,
  activity.count AS activity_count,
  activity.du AS activity_du
FROM (
  SELECT
    *
  FROM (
    SELECT
      Campaign,
      Campaign_ID
    FROM
      `[DATASET].match_table_campaigns_[DOUBLECLICK_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[DOUBLECLICK_ID]` AS mt_ac
    JOIN (
      SELECT
        Activity_Group,
        Activity_Group_ID
      FROM
        `[DATASET].match_table_activity_types_[DOUBLECLICK_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.common_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_[DOUBLECLICK_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'
이 페이지가 도움이 되었나요? 평가를 부탁드립니다.

다음에 대한 의견 보내기...

도움이 필요하시나요? 지원 페이지를 방문하세요.