BigQuery Tutorial

How to Schedule Your Marketing Data Pipeline to BigQuery

Santiago Cardozo
Marketing Manager at Porter

March 19, 2026

Once your Porter Metrics query is configured, you set a schedule that tells Porter when to run. Every day at that time, Porter extracts fresh data from your marketing platforms and loads it into your BigQuery table automatically.

Here is how to configure your schedule and what to consider when choosing your timing.

Setting Your Schedule in Porter Metrics

In your Porter query configuration, click “Schedule.” You see a text field where you type the time you want your table to refresh. The format is simple: type “every day at 6am” or “every day at 10pm.”

Porter converts your input into a scheduled job. After you click the confirm button, a chip appears next to the schedule field showing your configured schedule, including the timezone. For example: “at 6:00am America/Bogota.”

You set one schedule per query. If you have multiple queries (one for Meta Ads, one for Google Ads, one for a blended table), each query has its own schedule. You stagger them to avoid running all syncs at the same time.

Choosing the Right Time for Your Schedule

The best time to schedule your daily sync depends on when you need fresh data and when your platforms finalize their data.

Most ad platforms finalize the previous day’s data by 3am to 6am in their respective timezones. If you schedule your sync for 6am your local time, you typically get complete data for the previous day.

Avoid scheduling syncs during peak business hours if your team actively queries BigQuery. Running a large data load while analysts are querying the same tables can slow down both the load and the queries.

A common setup for marketing teams: schedule syncs at 5am or 6am local time. By the time your team starts work, the data is already in BigQuery and your dashboards show fresh numbers.

Timezone Configuration

Porter uses your local timezone when you set a schedule. The chip that appears after you confirm the schedule shows the timezone explicitly, such as “America/Bogota” or “America/New_York.”

If you manage clients in multiple timezones, create separate queries for each timezone or schedule all syncs in UTC to keep things consistent.

What Happens When a Scheduled Sync Runs

At the scheduled time, Porter:

Connects to each of your selected marketing platforms using the stored OAuth credentials.

Extracts the data for the date range you configured.

Transforms and normalizes the data.

Loads it into your BigQuery table according to your write mode setting (overwrite, append, or update).

The entire process runs automatically without any action from your team. If the sync fails (for example, if a platform API is temporarily unavailable), Porter retries and logs the error. You see the status of each sync in your Porter dashboard.

Monitoring Your Scheduled Syncs

After your schedule is active, you monitor it in the Porter dashboard. Each query shows its last sync time, its status (success or failed), and the number of rows loaded.

If a sync fails, Porter shows the error message. Common failure reasons include:

Checking your sync status takes 30 seconds. Most marketing teams check it once a day as part of their morning routine before opening dashboards.

Adjusting Your Schedule

You change your schedule at any time by editing the query in Porter. If you want your data refreshed earlier, later, or more frequently, update the schedule field and save. The new schedule takes effect immediately.

For most marketing reporting use cases, a once-daily schedule is sufficient. Hourly schedules are available for teams that need more current data for intraday decision-making.

← Previous Lesson
Next Lesson →

Ready to connect your marketing data to BigQuery?

Porter Metrics makes it easy to sync all your sources — no code required.

Start Free Trial