Google Ad Manager 전송

Google Ad Manager용 BigQuery Data Transfer Service를 사용하면 Google Ad Manager(이전 명칭: DoubleClick for Publishers)의 보고 데이터를 반복적으로 로드하는 작업을 자동으로 만들고 관리할 수 있습니다.

지원되는 보고서

현재 Google Ad Manager용 BigQuery Data Transfer Service는 다음과 같은 보고 옵션을 지원합니다.

Google Ad Manager 보고서가 BigQuery 테이블 및 뷰로 변환되는 방식에 대한 자세한 내용은 Google Ad Manager 보고서 변환을 참조하세요.

보고 옵션 지원
지원되는 API 버전 v201908
일정

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

구성할 수 없음

새로고침 기간

지난 2일

구성할 수 없음

최대 백필 기간

최근 60일

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

시작하기 전에

Google Ad Manager 전송을 만들기 전에 다음을 수행하세요.

  • BigQuery Data Transfer Service를 사용하는 데 필요한 모든 작업을 완료했는지 확인합니다.
  • Google Ad Manager 데이터를 저장할 BigQuery 데이터세트를 만듭니다.
  • 조직이 Google Ad Manager 데이터 전송(Google Ad Manager DT) 파일에 액세스할 수 있어야 합니다. Google Ad Manager팀은 파일을 Google Cloud Storage 버킷으로 전달합니다. Google Ad Manager DT 파일에 대한 액세스 권한을 얻으려면 다음을 순서대로 완료하세요. Google Ad Manager팀에서 추가 요금이 청구될 수 있습니다.

    • 데이터 전송 보고서 개요를 검토합니다.
    • 페이지 오른쪽 상단의 Contact Us(문의하기)를 클릭합니다.
    • 보고서를 클릭합니다.
    • 이메일 또는 담당자와의 채팅을 통해 Google Ad Manager 데이터 전송 파일에 대한 액세스를 요청합니다.

    이 단계를 마치고 나면 다음과 같은 Cloud Storage 버킷을 받게 됩니다.

    gdfp-12345678

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

  • Google Ad Manager 네트워크에 대한 API 액세스를 사용 설정하세요.
  • 전송 알림을 설정하려면 Pub/Sub에 대한 pubsub.topics.setIamPolicy 권한이 있어야 합니다. 이메일 알림만 설정한다면 Pub/Sub 권한은 필요 없습니다. 자세한 내용은 BigQuery Data Transfer Service 실행 알림을 참조하세요.
  • 필수 권한

    • BigQuery: 전송을 만드는 사람에게 다음과 같은 BigQuery의 권한이 있는지 확인합니다.

      • 전송을 만들 bigquery.transfers.update 권한
      • 대상 데이터 세트에 대한 bigquery.datasets.getbigquery.datasets.update 권한

      사전 정의된 IAM 역할 bigquery.admin에는 bigquery.transfers.update, bigquery.datasets.update, bigquery.datasets.get 권한이 있습니다. BigQuery Data Transfer Service의 IAM 역할에 대한 자세한 내용은 액세스 제어를 확인하세요.

    • Google Ad Manager: Cloud Storage에 저장된 Google Ad Manager DT 파일에 대한 읽기 액세스. Google Ad Manager DT 파일에 대한 권한은 Google Ad Manager팀이 관리합니다. Google Ad Manager DT 파일 외에도 전송을 만드는 사람은 다양한 데이터 이동 색인(항목, 주문, 광고 단위 등)을 만드는 데 필요한 모든 항목에 대한 읽기 액세스 권한이 있는 Google Ad Manager 네트워크에 추가해야 합니다. Ad Manager의 모든 항목팀에 전송을 인증한 Ad Manager 사용자를 추가하면 이 작업을 가장 쉽게 수행할 수 있습니다.

    Google Ad Manager 전송 설정

    Google Ad Manager용 BigQuery 데이터 전송 설정에는 다음이 필요합니다.

    • Cloud Storage 버킷: Google Ad Manager DT 파일을 위한 Cloud Storage 버킷 URI(시작하기 전에 섹션 설명 참조). 버킷 이름은 다음과 같아야 합니다.

      gdfp-12345678
    • 네트워크 코드: 네트워크에 로그인하면 URL에서 Google Ad Manager 네트워크 코드를 찾을 수 있습니다. 예를 들어 https://admanager.google.com/2032576#delivery URL에서 2032576이 네트워크 코드입니다. 자세한 내용은 Google Ad Manager 시작하기를 참조하세요.

    Google Ad Manager용 BigQuery Data Transfer Service 전송을 만들려면 다음 안내를 따르세요.

    Console

    1. 콘솔에서 BigQuery 페이지로 이동합니다.

      BigQuery 페이지로 이동

    2. 데이터 전송을 클릭합니다.

    3. 전송 만들기를 클릭합니다.

    4. 전송 만들기 페이지에서 다음을 수행합니다.

      • 소스 유형 섹션의 소스Google Ad Manager를 선택합니다.

        전송 소스

      • 전송 구성 이름 섹션의 표시 이름에 전송 이름(예: My Transfer)을 입력합니다. 전송 이름은 나중에 수정해야 할 경우에 대비해 전송을 식별할 수 있는 값이면 됩니다.

        전송 이름

      • 대상 설정 섹션의 대상 데이터 세트에서 데이터를 저장하기 위해 만든 데이터 세트를 선택합니다.

        전송 데이터세트

      • 데이터 소스 세부정보 섹션에서 다음을 수행합니다.

        • Cloud Storage 버킷에 데이터 전송 파일이 저장되는 Cloud Storage 버킷 이름을 입력합니다. 버킷 이름에는 gs://가 포함되면 안 됩니다.
        • 네트워크 코드에 네트워크 코드를 입력합니다.

          Google Ad Manager 소스 세부정보

      • (선택사항) 알림 옵션 섹션에서 다음을 수행합니다.

        • 전환을 클릭해서 이메일 알림을 사용 설정합니다. 이 옵션을 사용 설정하면 전송 실행이 실패할 때 전송 관리자에게 이메일 알림이 발송됩니다.
        • Pub/Sub 주제 선택에서 주제 이름을 선택하거나 주제 만들기를 클릭합니다. 이 옵션은 전송에 대한 Pub/Sub 실행 알림을 구성합니다.
    5. 저장을 클릭합니다.

    bq

    bq mk 명령어를 입력하고 전송 생성 플래그 --transfer_config를 지정합니다. 다음 플래그도 필요합니다.

    • --data_source
    • --target_dataset
    • --display_name
    • --params

    선택적 플래그:

    • --service_account_name - 사용자 계정 대신 Google Ad Manager 전송 인증에 사용할 서비스 계정을 지정합니다.
    bq mk --transfer_config \
    --project_id=project_id \
    --target_dataset=dataset \
    --display_name=name \
    --params='parameters' \
    --data_source=data_source \
    --service_account_name=service_account_name
    

    각 항목의 의미는 다음과 같습니다.

    • project_id는 프로젝트 ID입니다.
    • dataset는 전송 구성 대상 데이터 세트입니다.
    • name은 전송 구성의 표시 이름입니다. 전송 이름은 나중에 수정해야 할 경우에 전송을 식별할 수 있는 값이면 됩니다.
    • parameters에는 JSON 형식으로 생성된 전송 구성의 매개변수가 있습니다. 예를 들면 --params='{"param":"param_value"}'입니다. Google Ad Manager의 경우 bucketnetwork_code 매개변수를 제공해야 합니다. bucket은 Google Ad Manager DT 파일이 포함된 Cloud Storage 버킷입니다. network_code는 네트워크 코드입니다.
    • data_source는 데이터 소스입니다. 예를 들면 dfp_dt(Google Ad Manager)입니다.
    • service_account_name은 Google Ad Manager 전송을 인증하는 데 사용되는 서비스 계정 이름입니다. 서비스 계정은 전송을 만드는 데 사용한 것과 동일한 project_id가 소유해야 하며 위에 나열된 모든 필수 권한이 있어야 합니다.

    또한 --project_id 플래그를 입력하여 특정 프로젝트를 지정할 수도 있습니다. --project_id를 지정하지 않으면 기본 프로젝트가 사용됩니다.

    예를 들어 다음 명령어는 네트워크 코드 12345678, Cloud Storage 버킷 gdfp-12345678, 대상 데이터세트 mydataset를 사용하여 이름이 My Transfer인 Google Ad Manager 전송을 만듭니다. 기본 프로젝트에 전송이 생성됩니다.

    bq mk --transfer_config \
    --target_dataset=mydataset \
    --display_name='My Transfer' \
    --params='{"bucket": "gdfp-12345678","network_code": "12345678"}' \
    --data_source=dfp_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 빠른 시작: 클라이언트 라이브러리 사용의 자바 설정 안내를 따르세요. 자세한 내용은 BigQuery 자바 API 참조 문서를 확인하세요.

    import com.google.api.gax.rpc.ApiException;
    import com.google.cloud.bigquery.datatransfer.v1.CreateTransferConfigRequest;
    import com.google.cloud.bigquery.datatransfer.v1.DataTransferServiceClient;
    import com.google.cloud.bigquery.datatransfer.v1.ProjectName;
    import com.google.cloud.bigquery.datatransfer.v1.TransferConfig;
    import com.google.protobuf.Struct;
    import com.google.protobuf.Value;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.Map;
    
    // Sample to create a ad manager(formerly DFP) transfer config
    public class CreateAdManagerTransfer {
    
      public static void main(String[] args) throws IOException {
        // TODO(developer): Replace these variables before running the sample.
        final String projectId = "MY_PROJECT_ID";
        String datasetId = "MY_DATASET_ID";
        String bucket = "gs://cloud-sample-data";
        // the network_code can only be digits with length 1 to 15
        String networkCode = "12345678";
        Map<String, Value> params = new HashMap<>();
        params.put("bucket", Value.newBuilder().setStringValue(bucket).build());
        params.put("network_code", Value.newBuilder().setStringValue(networkCode).build());
        TransferConfig transferConfig =
            TransferConfig.newBuilder()
                .setDestinationDatasetId(datasetId)
                .setDisplayName("Your Ad Manager Config Name")
                .setDataSourceId("dfp_dt")
                .setParams(Struct.newBuilder().putAllFields(params).build())
                .build();
        createAdManagerTransfer(projectId, transferConfig);
      }
    
      public static void createAdManagerTransfer(String projectId, TransferConfig transferConfig)
          throws IOException {
        try (DataTransferServiceClient client = DataTransferServiceClient.create()) {
          ProjectName parent = ProjectName.of(projectId);
          CreateTransferConfigRequest request =
              CreateTransferConfigRequest.newBuilder()
                  .setParent(parent.toString())
                  .setTransferConfig(transferConfig)
                  .build();
          TransferConfig config = client.createTransferConfig(request);
          System.out.println("Ad manager transfer created successfully :" + config.getName());
        } catch (ApiException ex) {
          System.out.print("Ad manager transfer was not created." + ex.toString());
        }
      }
    }

    Google Ad Manager 전송 설정 문제 해결

    전송을 설정하는 데 문제가 발생하면 전송 구성 문제 해결에서 Google Ad Manager 전송 문제를 참조하세요.

    데이터 쿼리

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

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

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

    다음 각 쿼리에서 dataset와 같은 변수를 실제 값으로 바꿉니다. 예를 들어 network_code는 Google Ad Manager 네트워크 코드로 바꿉니다.

    도시별 노출수와 순 사용자

    다음 SQL 샘플 쿼리는 지난 30일 동안의 도시별 노출수와 순 사용자를 분석합니다.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      City,
      _DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `dataset.NetworkImpressionsnetwork_code`
    WHERE
      _DATA_DATE BETWEEN start_date AND end_date
    GROUP BY City, Date
    

    항목 유형별 노출수와 순 사용자

    다음 SQL 샘플 쿼리는 지난 30일 동안의 항목 유형별 노출수와 순 사용자를 분석합니다.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.LineItemType AS LineItemType,
      DT._DATA_DATE AS Date,
      count(*) AS imps,
      count(distinct UserId) AS uniq_users
    FROM `dataset.NetworkImpressionsnetwork_code` AS DT
    LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN start_date AND end_date
    GROUP BY LineItemType, Date
    ORDER BY Date desc, imps desc
    

    광고 단위별 노출수

    다음 SQL 샘플 쿼리는 지난 30일 동안의 광고 단위별 노출수를 분석합니다.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.AdUnitCode AS AdUnitCode,
      DT.DATA_DATE AS Date,
      count(*) AS imps
    FROM `dataset.NetworkImpressionsnetwork_code` AS DT
    LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT
    ON
      DT.AdUnitId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN start_date AND end_date
    GROUP BY AdUnitCode, Date
    ORDER BY Date desc, imps desc
    

    광고 항목별 노출수

    다음 SQL 샘플 쿼리는 지난 30일 동안의 광고 항목별 노출수를 분석합니다.

    # START_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -31 DAY)
    # END_DATE = DATE_ADD(CURRENT_DATE(), INTERVAL -1 DAY)
    SELECT
      MT.Name AS LineItemName,
      DT._DATA_DATE AS Date,
      count(*) AS imps
    FROM `dataset.NetworkImpressionsnetwork_code` AS DT
    LEFT JOIN `dataset.MatchTableLineItem_network_code` AS MT
    ON
      DT.LineItemId = MT.Id
    WHERE
      DT._DATA_DATE BETWEEN start_date AND end_date
    GROUP BY LineItemName, Date
    ORDER BY Date desc, imps desc