Skip to main content

Overview

This source syncs entity data and report exports from Campaign Manager 360 using the Campaign Manager 360 API (dfareporting v5). API v4 is sunset; this connector targets v5 only. There are two categories of streams:
  • Entity streams (user_profiles, advertisers, campaigns, reports) — list resources via the DFA Reporting & Trafficking API. Each row includes a stable entity_id, flattened top-level fields, and _raw (full API object as JSON).
  • Report export stream (report_rows) — runs saved Report Builder reports by ID, waits for completion, downloads the CSV file via the API, and emits one record per data row. Columns vary by report definition and are packed into a row_data JSON string.
Authentication uses a Google Cloud service account JSON key. Domain-wide delegation is supported via the optional email field. All streams use full table replication.

Configuration


Sample configs

Entity streams only — user profiles, advertisers, campaigns, reports (no report download):
Report rows — trigger a new run and wait for completion:
Report rows — read the most recently completed file (no new execution triggered):
Campaigns scoped to specific advertisers with domain-wide delegation:

Streams

report_rows and sample data: When loading sample data, only the first report_id is run and at most 25 CSV rows are returned, so the UI preview does not trigger every report or download large files.

How report_rows works

  1. For each report_id, the connector calls reports.run to start a new execution (or, if report_use_latest_file: true, looks up the most recent completed file via reports.files.list).
  2. It polls files.get every report_poll_interval_seconds until the status reaches REPORT_AVAILABLE, FAILED, or CANCELLED, or until report_poll_timeout_seconds is exceeded.
  3. Once available, the file is downloaded in streaming chunks via the files.get_media endpoint and written to a local temp file.
  4. The temp file is parsed as a UTF-8 CSV. Blank rows are skipped. Each data row is emitted as a record.

Prerequisites

  1. Enable Campaign Manager 360 API (dfareporting.googleapis.com) in Google Cloud Console.
  2. Create a service account and download its JSON key. Set path_to_credentials_json_file to the local path.
  3. In Campaign Manager 360, grant the service account access to the account (via Admin → User Profiles). Use domain-wide delegation and set email if your organization requires impersonation.
  4. For report_rows: create and save the report in Campaign Manager’s Report Builder with CSV output format. Copy the numeric report ID from the URL or Report Builder UI and add it to report_ids.

OAuth scopes used