npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ken-e/dataform-dv360

v0.0.3

Published

Dataform package for Display & Video 360 data processing

Readme

@ken-e/dataform-dv360

Dataform package for processing Display & Video 360 (DV360) data exported via Instant Reporting to BigQuery.

Prerequisites

Before using this package, you must configure a DV360 Instant Report to export daily to BigQuery. This package reads from the report table — it does not read from the DV360 API BigQuery Connector (entity) tables directly.

Setting up the DV360 Instant Report

  1. Link BigQuery to DV360:

    • In DV360, go to Partner Settings (or Advertiser Settings) > Linked Accounts
    • Click Link New Account > BigQuery Exporter
    • Enter your BigQuery Project ID and Dataset ID
    • Grant the DV360 service account these IAM roles:
      • BigQuery Job User on the project
      • BigQuery Data Editor on the dataset
  2. Create the Instant Report:

    • In DV360, go to Reports > Instant reporting tab
    • Create a new report with these settings:

    Dimensions: | Dimension | Required | |-----------|----------| | Date (UTC) | Yes | | Advertiser | Yes | | Advertiser ID | Yes | | Campaign | Yes | | Campaign ID | Yes | | Insertion Order | Yes | | Insertion Order ID | Yes |

    Metrics: | Metric | Required | |--------|----------| | Impressions | Yes | | Clicks | Yes | | Media Cost (USD) | Yes | | Total Conversions | Yes | | Click-Through Conversions | Yes | | View-Through Conversions | Yes | | Revenue (USD) | Yes | | Post-Click Revenue | Recommended | | Post-View Revenue | Recommended | | Active View: Eligible Impressions | Recommended | | Rich Media Video Plays | Recommended | | Rich Media Video Completions | Recommended |

  3. Run an initial backfill:

    • Set the date range to cover all historical data you need
    • Export once to BigQuery to create the historical table
  4. Schedule daily incremental:

    • Create a second report (or schedule the same one) with a 14-day rolling window
    • Set schedule to Daily
    • Export to BigQuery

Installation

npm install @ken-e/dataform-dv360

Usage

const dv360 = require("@ken-e/dataform-dv360");

dv360({
  startDate: "2024-12-01",
  daysBack: 14,

  sources: [
    {
      database: "my-project",
      reportSchema: "dv360_reporting_dataset",
      reportTable: "my_dv360_report_table",
      advertiser_id: "1234567890",
    },
  ],

  target: {
    database: "my-project",
    stagingSchema: "my_staging",
    outputSchema: "my_output",
  },
});

Output tables

| Table | Description | |-------|-------------| | dv360_campaigns | Campaign-level daily performance (aggregated from insertion orders) | | dv360_insertion_orders | Insertion order-level daily performance |

Configuration

| Field | Required | Default | Description | |-------|----------|---------|-------------| | sources | Yes | — | Array of source definitions | | sources[].database | No | target.database | BigQuery project with DV360 data | | sources[].reportSchema | Yes | — | Dataset containing the DV360 report table | | sources[].reportTable | Yes | — | Name of the DV360 Instant Report table | | sources[].advertiser_id | No | — | DV360 advertiser ID (for documentation) | | target.database | Yes | — | BigQuery project for output | | target.stagingSchema | No | "propeller_dataform_template" | Staging dataset | | target.outputSchema | No | "propeller_dataform_template" | Output dataset | | startDate | No | "2020-01-01" | Earliest date to process | | daysBack | No | 14 | Rolling refresh window (days) |