Linking Singular as a source
Let AI connect your sources for you
Skip the manual setup — run this in your project and the wizard auto-detects your databases and APIs and connects them to PostHog.

Contents
The Singular connector syncs campaign, SKAdNetwork, and ad monetization reports into the PostHog Data Warehouse. Use this data to analyze marketing spend and revenue alongside your product data.
Prerequisites
You need a Singular account and a Reporting API key with access to the dimensions and metrics you want to sync. In Singular, go to Developer Tools > API Keys to find your key. See Singular's Reporting API reference for details.
The SKAdNetwork reports require Singular's attribution tracker. The ad monetization report requires ad monetization reporting configured in Singular. It reads data from monetization networks, rather than ad revenue collected through Singular's SDK.
Adding a data source
- In PostHog, go to the Sources tab of the data pipeline section.
- Click + New source and click Link next to this source.
- Enter your credentials (see Configuration below) and click Next.
- Select the tables you want to sync, choose a sync method and frequency, then click Import.
Once the syncs are complete, you can start querying this data in PostHog.
Select Singular and enter your Singular Reporting API key. Leave the optional report fields empty to sync the default network campaign data: cost, impressions, clicks, and installs by app, source, operating system, country, and campaign.
Sync modes
Report tables support Incremental syncs on the date field and Full refresh. Incremental syncs merge rows by date and report dimensions. By default, they reread the previous seven days to capture changes to recent reports. The default initial history is 30 days. PostHog requests each day's report separately.
The SKAdNetwork reports use the postback date, rather than the estimated install date. Keep this in mind when comparing them with other reports in Singular.
Lookup tables support Full refresh only. They reload the available dimension values and metric definitions on each sync. Singular doesn't support append-only or webhook syncs in PostHog.
See sync methods for more information.
Configuration
| Option | Description |
|---|---|
API keyType: password Required: True | Copy your Reporting API key from Developer Tools > API Keys in Singular. A PostHog API key does not work here. |
DimensionsType: text Required: False | Comma-separated dimension names from the Singular Reporting API. For a custom dimension, use its ID. If you change the dimensions later, run a full resync of the |
MetricsType: text Required: False | Comma-separated metric names from the Singular Reporting API. For a conversion event, use its name from the |
Cohort metricsType: text Required: False | Comma-separated cohort metric names from the |
Cohort periodsType: text Required: False |
The optional fields configure daily_report. The other reports use fixed dimensions and metrics.
- Dimensions: Enter comma-separated dimension names from the Reporting API. For a custom dimension, use its
idfromcustom_dimensions. If you change dimensions after syncing, run a full resync ofdaily_reportbecause dimensions determine how rows match. - Metrics: Enter comma-separated metric names. For conversion events, use the
namefromconversion_metrics, rather than the display name. - Cohort metrics and cohort periods: Fill in both fields or leave both empty. Use comma-separated metric names from
cohort_metricsand periods such as7d,30d.
Each combination of dimensions produces a separate row for each day. More dimensions use more of your Singular daily row quota. The default quota is 3 million rows per day, including rows you fetch again on later syncs.
Supported tables
| Table | Description | Sync method | Incremental field | Primary key |
|---|---|---|---|---|
daily_report | Daily campaign statistics, one row per day and combination of the dimensions you chose. | Incremental, Full refresh | date | — |
skadnetwork_report | Daily SKAdNetwork installs combined with ad network cost, clicks, and impressions, by app, source, country, and campaign. Needs the Singular attribution tracker. | Incremental, Full refresh | date | — |
skadnetwork_raw_report | Daily SKAdNetwork install counts from raw postbacks, by app, network, SKAdNetwork IDs, and conversion value. Needs the Singular attribution tracker. | Incremental, Full refresh | date | — |
ad_monetization_report | Daily ad revenue, requests, fill rate, and impressions from your monetization networks. Needs ad monetization reporting set up in Singular. | Incremental, Full refresh | date | — |
filters | The values each report dimension can take, such as the OS and source codes, with their display names. | Full refresh | — | — |
custom_dimensions | The custom dimensions defined in your Singular account. | Full refresh | — | — |
cohort_metrics | The cohort metrics and events you can add to a report. | Full refresh | — | — |
conversion_metrics | The conversion events you can add to a report as metrics. | Full refresh | — | — |
Troubleshooting
- Singular rejected the API key: Copy the current key from Developer Tools > API Keys in Singular and update the source. A PostHog API key doesn't work here.
- Singular denied access: Ask your Singular admin to grant the API key access to the requested dimensions and metrics, or remove the fields the key can't access.
- Cohort metrics and cohort periods go together: Fill in both fields or clear both, then try again.
- Singular rejected the request: Check the dimensions, metrics, and cohort settings against the Reporting API reference. The error includes Singular's response. If it says no SKAdNetwork data is configured, check the attribution tracker setup before syncing those reports.
- Singular is still rate limiting this API key: The request remained rate limited after retries. If you've used the daily row quota, sync again tomorrow. Remove dimensions or sync less often to reduce row usage.
- Singular could not generate the report: Check Singular's response in the error and include the report ID when contacting Singular support.
- Could not reach Singular to check the API key: Try again in a few minutes.
If your sync is failing or data looks wrong, see the Data warehouse troubleshooting guide. If that doesn't help, contact support – we're happy to help.





