> AI agents: this is one page from PostHog's docs. Full index of Markdown docs for LLMs: https://posthog.com/llms.txt # Linking Taboola as a source Canonical URL: https://posthog.com/docs/data-pipelines/sources/taboola > **Cloud region:** This page uses US Cloud hosts. For an EU Cloud project, use `https://eu.posthog.com` instead of `https://app.posthog.com` (app host for links). ## On this page - [Adding a data source](#adding-a-data-source) - [Available tables](#available-tables) - [Sync behavior](#sync-behavior) - [Authentication](#authentication) - [Configuration](#configuration) - [Supported tables](#supported-tables) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_9608fcca70) ![](https://res.cloudinary.com/dmukukwp6/image/upload/texture_tan_dark_a92b0e022d) 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. `npx @posthog/wizard warehouse` ![PostHog Wizard hedgehog](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png) ![](https://res.cloudinary.com/dmukukwp6/image/upload/wizard_3f8bb7a240.png)Let AI connect your sources for you The Taboola connector syncs your advertising data from the Taboola Backstage API into PostHog, including campaigns, campaign items, conversion rules, and performance reports. ## Adding a data source **Credentials must be requested from Taboola** Backstage API credentials (client ID and secret) are issued by your Taboola account manager – they can't be self-served. Contact your Taboola account manager to obtain API access before continuing. 1. In PostHog, go to the [Data pipeline page](https://app.posthog.com/data-management/sources) and select the **Sources** tab. 2. Click **\+ New source** and select Taboola by clicking the **Link** button. 3. Enter your Taboola credentials: - **Client ID** – Your Taboola API client ID - **Client secret** – Your Taboola API client secret - **Account ID** – Your alphabetic Taboola account identifier (also called the account name, visible in Taboola Ads) 4. Click **Next** and select the tables you want to sync. 5. Set the sync method and frequency, then click **Import**. The data warehouse then starts syncing your Taboola data. You can see details and progress in the [data pipeline sources tab](https://app.posthog.com/data-management/sources). ## Available tables | Table | Description | Sync method | | --- | --- | --- | | `campaigns` | All campaigns in your Taboola account | Full refresh | | `campaign_items` | Content items within each campaign | Full refresh | | `conversion_rules` | Universal pixel conversion rules | Full refresh | | `campaign_summary_by_day` | Daily campaign performance metrics (impressions, clicks, conversions) | Incremental | | `top_campaign_content` | Top 1,000 performing content items over the last 30 days | Full refresh | **Incremental** tables sync only new or updated records on each run. **Full refresh** tables reload all data on each sync. ## Sync behavior ### Entity tables The `campaigns`, `conversion_rules`, and `campaign_items` tables use full refresh because the Taboola API doesn't provide updated-since filtering. Every sync re-downloads the full result set. The `campaign_items` table fans out across campaigns, fetching items for each campaign individually. If a sync is interrupted, it resumes from the next campaign rather than restarting from the beginning. ### Report tables The `campaign_summary_by_day` table is a date-windowed report walked in 30-day chunks. It supports incremental sync using the `date` field, with a **30-day restatement lookback** – recent ad metrics can restate as conversions settle, so PostHog re-pulls the trailing 30 days and merges on `date` and `campaign` to keep data accurate. The first sync backfills 365 days of history. If a report sync is interrupted, it resumes from the next unfetched window rather than restarting. ### Snapshot tables The `top_campaign_content` table returns the top 1,000 items aggregated over the trailing 30 days. Rows carry no date, so this table always syncs as a full refresh snapshot. ## Authentication Taboola uses OAuth2 client credentials authentication. Tokens are short-lived; PostHog automatically refreshes them during syncs. If a token expires mid-sync, PostHog re-authenticates once and continues. ## Configuration | Option | Type | Required | | --- | --- | --- | | `Client ID` | text | Yes | | `Client secret` | password | Yes | | `Account ID` | text | Yes | ## Supported tables | Table | Description | Sync method | Incremental field | Primary key | | --- | --- | --- | --- | --- | | `campaigns` | An advertising campaign in your Taboola account, with its budget, schedule, and targeting. | Full refresh | — | — | | `campaign_items` | A single promoted item (ad creative) within a Taboola campaign. | Full refresh | — | — | | `conversion_rules` | A conversion rule defined on your Taboola universal pixel for tracking advertiser conversions. | Full refresh | — | — | | `campaign_summary_by_day` | Daily performance metrics broken down per campaign and date. | Incremental, Full refresh | date | — | | `top_campaign_content` | Aggregate performance of the top-performing campaign items over the requested window. | Full refresh | — | — |