Cloud and DevOps · 9 min read
Marketing ETL Explained: Pipelines, ELT and Build vs Buy
What marketing ETL means, why advertising data needs more care than ordinary ETL, how ETL differs from ELT, typical sources and destinations, a pipeline checklist, and how to decide between building and buying.
By The Vexio team Published Updated
What is marketing ETL, in plain terms?
Marketing ETL means copying your advertising data out of Google Ads, Meta, Amazon and similar platforms, tidying it so the numbers mean the same thing everywhere, and loading it into a warehouse you control. ETL stands for extract, transform, load. Once spend, clicks, orders and revenue sit in one place, you can compare and join them in SQL or a reporting tool instead of exporting a spreadsheet from each platform.
It exists because every platform reports in its own shape, on its own schedule and with its own attribution rules, and none of them will do the cross-platform joining for you. The rest of this article covers why ad data is harder than ordinary ETL, how ETL differs from ELT, typical sources and destinations, a design checklist, and how to choose between building and buying.
Why does ad data need more care than ordinary ETL?
Moving rows between two databases is a solved problem. Ad data adds problems that come from how the platforms work. The facts below were checked on 2026-10-14.
- Reports are often asynchronous. The Amazon Ads version 3 reporting flow has you request a report, wait for it to be generated, then download it from a link (get started with version 3 reports). Other platforms return rows directly from a query. A pipeline has to support both styles, and Amazon Ads API reporting explained walks through the asynchronous one.
- Numbers change after you load them. Amazon states that sponsored ads conversion data can change for up to 60 days back, and that invalid-click detection monitors traffic for up to 30 days (reporting overview). Google Ads reports conversions on the ad impression date and says they can arrive up to 90 days after the click (data discrepancies). A pipeline that loads each day once and never revisits it drifts away from the platform. The fix is covered in idempotent ad reporting pipelines, backfills and late data.
- Authorization expires. Amazon access tokens are valid for 60 minutes (access tokens), and refresh tokens issued on or after July 30, 2026 expire 365 days from the advertiser’s consent (refresh tokens). Someone has to own renewal and alerting.
- Rate limits are dynamic. Amazon’s reporting limits depend on the size of the report queue in the region, so a backfill that works one day can be throttled the next (rate limiting).
- Definitions differ. Cost, conversions, attributed sales, currency and time zone mean slightly different things in each source. The transform step is where those differences are reconciled and written down.
ETL is read-only data movement. Changing campaigns is a separate job with its own tools, compared for Google in Google Ads Editor vs bulk upload vs API.
ETL vs ELT: which order should the steps run in?
In ETL, data is transformed before it is loaded. In ELT, raw data is loaded first and transformed inside the destination. AWS describes ELT as reversing the order of operations: data goes into the target system before processing, and no intermediate staging area is required because the warehouse can do the mapping (AWS: What is ETL?).
For advertising data the practical answer is a hybrid:
| Stage | What happens | Why |
|---|---|---|
| Extract | Call the API, handle pagination, polling and throttling | Platform-specific code lives here and nowhere else |
| Land raw | Store the response as received, in object storage or a raw table | Transforms can be re-run without calling the API again |
| Light transform before load | Fix types, flatten nested JSON, convert units such as micros to currency, set aside malformed rows | Keeps warehouse tables clean and typed |
| Load | Merge into tables keyed on each report’s natural key | Safe to repeat, no duplicates |
| Model in the warehouse (the ELT part) | Join platforms, apply business definitions, build reporting views | SQL is easy to review, change and version |
SQL modelling tools fit the last row. dbt’s documentation, for example, describes writing SQL select statements that dbt turns into models in your cloud data platform, working alongside whatever does the ingestion (dbt introduction).
Keeping a raw copy matters more for ad data than for most domains, because platforms restate numbers and retain history for a limited time. If you keep only the transformed result, a mistake in your logic cannot be corrected without going back to the source, which may no longer hold the history. Amazon lists a retention period per ad product for its campaign reports, from 60 to 95 days (campaign reports).
Which sources and destinations come up most often?
Sources fall into three groups: ad platforms (campaign, ad group, keyword, search term and placement performance), commerce or retailer data (orders, inventory, sales and traffic) and first-party data (CRM, web analytics, product feeds). Destinations are usually one warehouse plus object storage for raw files.
| Role | Examples |
|---|---|
| Search and social ads | Google Ads, Meta Ads, TikTok Ads |
| Retail media | Amazon Ads, Walmart Connect, Instacart Ads, Criteo Retail Media |
| Programmatic | Display & Video 360 |
| Commerce data | Amazon Selling Partner API (see SP-API vs Ads API) |
| Warehouse | BigQuery, PostgreSQL |
| Raw landing | Amazon S3, Google Cloud Storage or Azure Blob, often as Parquet |
Some platforms offer a first-party route into a warehouse. Google provides a BigQuery Data Transfer Service connector for Google Ads, compared with the alternatives in Google Ads to BigQuery options. For Amazon, the reporting overview describes Amazon Marketing Stream as delivering data to your AWS environment, with no polling or rate limiting (reporting overview). Evaluate these before writing code.
What should a marketing data pipeline get right?
Use this list to review a pipeline you are building or buying. Every item should have an answer.
Identity and keys
- What is the natural key of each report (date, campaign ID, plus any segment such as placement), and is it enforced in the load?
- Are account, profile or customer IDs part of every key, so two accounts can never collide?
Correctness over time
- Is every load idempotent, so a retry or manual re-run cannot create duplicates?
- Is there a rolling re-pull window for recent days, sized to each platform’s restatement behaviour?
- Can you backfill a date range without hand-editing SQL?
- Is there a record of which dates were loaded, when, and by which run?
Operations
- Are retries bounded, with backoff on throttling errors?
- Does anything alert on stale data, not only on failed jobs?
- Are credentials in a secrets manager, with a named owner for token renewal?
- Is raw data kept so transforms can be replayed?
Semantics
- Which time zone and currency apply to each source, and where are they recorded?
- Which attribution window does each conversion column use, and does the column name say so?
Handover
- Can a new engineer follow the documentation, and is there a runbook for the three most likely failures?
Where the pipeline runs (scheduler, secrets, deployment, monitoring) is a cloud and DevOps decision in its own right, covered under cloud and DevOps.
Build vs buy: which route fits your sources?
There are three realistic routes, and they are not exclusive.
| Route | Fits when | Watch for |
|---|---|---|
| First-party transfer (for example the BigQuery Data Transfer Service for Google Ads) | One platform, one warehouse, standard tables are enough | Fixed table layout, limited control over restatement windows and custom logic |
| Managed connector tool | Many common sources, small team, standard reports | Connector coverage for your exact reports, how restated data is handled, pricing model, limited custom report support |
| Custom pipeline | Unusual sources, custom report definitions, strict data residency, tight fit with an existing stack | Ongoing ownership: API version changes, token renewal, monitoring |
Fivetran and Airbyte are two examples of the middle row. Fivetran’s documentation lists a Connector SDK for building custom connectors, and Airbyte describes itself as an open source data replication platform with self-managed and cloud versions (Fivetran documentation, Airbyte documentation). Whether a given tool covers your sources and report types is a question for that vendor’s connector list, not a general rule.
A useful test: list the ten fields you need and the three platforms you need them from. If a first-party transfer or managed connector delivers those fields with the restatement behaviour you need, use it. If not, or if API changes worry you, custom work is easier to justify. Amazon’s reporting overview, for instance, lists version 3 reporting as to be shut off after June 30, 2027, and points to its reporting API v1 and Amazon Marketing Stream Version 2. A custom pipeline also fits when the data is a core asset and you want to control how it evolves. The data engineering services buyer’s guide covers how to compare providers if you hire the work out.
Whichever route you pick, you still own the model layer: the definitions of spend, sales and efficiency metrics your team agrees on. Tools move the data. They do not decide what ACOS or TACoS means for your reporting, and the glossary is a starting point for shared terms.
Where Vexio fits
Vexio delivers advertising data pipelines as custom engagements, not as a packaged platform. That covers scoping the sources and report definitions, building extraction and authorization handling, landing raw data and loading typed tables with idempotent merges, backfills, a ledger of loaded dates, alerting, and handover of code and documentation. The scope is on the advertising data pipelines page. To talk through your sources and where the data should land, request a demo.
Sources
Checked on 2026-10-14.
- Amazon Ads API, Reporting overview: data freshness, Amazon Marketing Stream, version 3 shut-off date.
- Amazon Ads API, Get started with version 3 reports: asynchronous flow.
- Amazon Ads API, Campaign reports: retention per ad product.
- Amazon Ads API, Access tokens and Refresh tokens: token lifetimes.
- Amazon Ads API, Rate limiting: dynamic limits.
- Google Ads Help, Data discrepancies: conversion delay.
- AWS, What is ETL?: ETL and ELT definitions.
- dbt, Introduction; Fivetran documentation; Airbyte documentation: what each tool says it does.