Datasets vs monitors
Observer separates "what data is being collected" from "what we're alarming on." A dataset describes the connection: where the numbers come from, which property, which dimensions and metrics, how often to pull, what time zone the schedule runs in. A monitor sits on top of a dataset and says "if this metric crosses this threshold, alert this group."
That separation matters because one dataset typically powers multiple monitors. A single GA4 dataset pulling sessions, purchases, and revenue can feed a low-traffic alarm, a no-purchases alarm, and a revenue-drop alarm without re-pulling the data three times.
Pick a source
On Observer > Datasets, click Add Dataset. The Source dropdown offers GA4 (Google Analytics 4 API) and Adobe Analytics. The fields below the source dropdown change to match the source you pick.
GA4
Enter the GA4 Property ID (the numeric ID from the GA4 admin panel). Optionally enter a Stream ID to filter the dataset to a single web or app stream. Pick the dimensions and metrics to pull. The date dimension is included automatically.
GA4 caps you at 9 dimensions per request, so keep the dataset focused. If you need more dimensions, build multiple datasets rather than one giant one. Splitting also makes the schedules easier to reason about.
Adobe Analytics
Enter the Adobe Report Suite ID and Global Company ID. The first time you set up Adobe on this property, also enter the API credentials: Client ID, Client Secret, and Org ID from your Adobe I/O Console project. Credentials are stored at the property level and reused across every Adobe dataset on that property.
On subsequent Adobe datasets, the credentials panel shows masked existing values. Leave the fields blank to keep them, or enter new values to rotate them.
Schedule
Datasets refresh on a schedule: every 4 hours, every 6 hours, every 12 hours, daily, weekly, or manual. For non-manual schedules, set the hour of day, day of week (for weekly), and time zone.
Daily schedules typically run mid-morning local time so the previous day is fully closed and reported on the source side. Adobe in particular has a longer reporting lag than GA4, so very early-morning Adobe pulls can return partial numbers.
Configuration values (Property ID, Stream ID, Schedule, Adobe IDs) all live in the dataset's Configuration dictionary, not as top-level fields. If you're scripting against the API or comparing dataset shapes, look there.
Save and run
Save the dataset. The first run pulls a backfill window so the monitors have something to compare against. Subsequent scheduled runs pull recent data incrementally and feed any monitors built on the dataset.
Troubleshooting
Dataset stops returning rows
Three usual culprits: expired API credentials (Adobe or GA4 service account), source-side data lag pushing data out of the schedule's window, or a property that was disabled or moved. Check the dataset's last-run status and re-authenticate if needed.
Adobe credentials prompt keeps appearing
Adobe creds are saved on the property the first time. If a different property is selected, you'll be prompted again. Switch back to the original property if those creds should be reused.
Numbers don't match what you see in the source UI
Filters and time zones are the usual culprits. The dataset's stream ID filter narrows the data; the schedule time zone affects the date boundary. Match those to the source-side report you're comparing against.