How to Connect LinkedIn Ads to Databricks
Step-by-step guide to importing LinkedIn Ads data into Databricks using OWOX. Join with Google, Facebook, and Reddit Ads for cross-channel B2B analytics.

LinkedIn Ads is the primary paid channel for B2B companies – demand gen campaigns, ABM plays, lead gen forms, Sponsored Content aimed at decision-makers by job title, seniority, and company size. But the data you get out of LinkedIn Campaign Manager stays locked inside LinkedIn's reporting interface, disconnected from the rest of your marketing stack.
For B2B teams that already run Google Ads, Facebook Ads, Reddit Ads, and other paid channels alongside LinkedIn, the real question isn't just "how much did LinkedIn spend?" – it's "how does LinkedIn influence pipeline compared to every other channel?" Answering that requires the raw data in your data warehouse, not in LinkedIn's UI.
This guide shows you how to connect LinkedIn Ads to Databricks in about 15 minutes using OWOX – an open-source connector platform that handles OAuth, schema mapping, and incremental loads automatically. No custom scripts, no token management, no maintenance.
What you'll need before you start
Before jumping into setup, make sure all prerequisites are in place. Missing one of these mid-flow will stall the process.
Databricks workspace access
You need an active Databricks workspace with permissions to create tables and run queries. Gather these three values before you start:
- Workspace URL – the full URL of your Databricks deployment (e.g., https://dbc-abc123.cloud.databricks.com)
- SQL Warehouse HTTP path – found under SQL Warehouses → your warehouse → Connection Details
- Personal Access Token (PAT) – generate one from User Settings → Developer → Access Tokens
If you're on a Databricks trial, everything works the same way. Just make sure your SQL Warehouse is running when you configure the connection.

LinkedIn Ads account
You need a LinkedIn Campaign Manager account with active campaigns or historical data. The account should have at least Campaign Manager or Account Manager access level.
OWOX account
Sign up at app.owox.com if you don't have one yet. The free tier includes connectors and enough data volume to get started.
Step 1: Configure Databricks as your storage in OWOX
The first step is telling OWOX where to write data. You'll register your Databricks workspace as a storage destination so that every connector you set up later writes to the same place.
Log into your OWOX account and navigate to Storages.

Click Add Storage and select Databricks from the list of supported warehouses.

Enter your Databricks connection details
Fill in the three values you gathered in the prerequisites:

Click Test Connection to verify everything works. If the test passes, hit Save. OWOX will now use this Databricks workspace as the destination for all connectors you configure.
Troubleshooting tip: If the connection test fails, check that your SQL Warehouse is in a Running state. Databricks auto-suspends idle warehouses, and a stopped warehouse will reject connection attempts.
Step 2: Create a new data mart with the LinkedIn Ads connector
Now that Databricks is connected as your storage, you can set up the actual LinkedIn Ads pipeline. In OWOX, every data pipeline lives inside a Data Mart – a logical container that defines what data to pull, from where, and on what schedule.
Navigate to the Data Marts section and click Create Data Mart.

Select the LinkedIn Ads connector
From the connector library, select LinkedIn Ads. OWOX supports dozens of data sources – advertising platforms, CRMs, analytics tools – but for this guide, we're focusing on LinkedIn Ads.

Authorize with LinkedIn OAuth
Click Connect LinkedIn Account. A standard LinkedIn OAuth window will appear – sign in with your LinkedIn account that has access to Campaign Manager and grant OWOX the requested permissions.

This is the entire authentication step. OWOX handles token refresh automatically, so you won't need to re-authorize unless you revoke access. For detailed credential setup, refer to the LinkedIn Ads connector documentation.
Choose your LinkedIn Ads account
After authorization, enter the ID of the ad account you want to pull data from.
If you manage multiple accounts through LinkedIn Campaign Manager – common in agencies or multi-brand B2B companies – you can separate them with comas. Or create a single data mart per client / account.
Step 3: Choose your API endpoints and fields
This is where you decide exactly what LinkedIn data flows into Databricks. OWOX exposes the LinkedIn Marketing API surface – you pick the resources and fields that matter for your B2B reporting.
Select endpoints
Each endpoint corresponds to a LinkedIn Marketing API resource and creates a separate table in your Databricks catalog.

Common endpoint selections for B2B marketing analytics:
- Ad Analytics – performance metrics (impressions, clicks, spend, conversions, leads) broken down by date and dimension
- Campaigns – campaign-level settings, objectives (brand awareness, lead generation, website visits, engagement), budget, status, and targeting criteria
- Campaign Groups – high-level groupings that organize campaigns by business objective or product line
- Creatives – individual ad creative details, format type (Sponsored Content, Message Ads, Text Ads, Dynamic Ads), and status
- Lead Gen Forms – form submissions from LinkedIn Lead Gen Forms, including field-level data
For B2B teams, Lead Gen Forms is especially valuable – it pulls the actual lead submissions from LinkedIn directly into Databricks where you can join them with your CRM data to track downstream conversion.
Select fields within each endpoint
Choose which fields (columns) to import. OWOX selects the most commonly used fields by default, but you can customize this to keep your Databricks tables lean or add deeper dimensions.

LinkedIn's API includes B2B-specific dimensions you won't find on consumer ad platforms – company name targeting, job function, seniority level, industry targeting, and Matched Audiences (account lists, retargeting). Make sure to include targeting dimensions if you plan to analyze performance by audience segment.
Pro tip: Start with the defaults and iterate. LinkedIn's Marketing API has many fields per endpoint – importing everything creates wide, sparse tables. Focus on the metrics and dimensions you'll actually query.
Step 4: Configure the destination and schedule
With endpoints and fields selected, tell OWOX where to write the data in Databricks and how often to refresh it.
Set the Databricks destination
Choose the catalog, schema (database), and table prefix for your LinkedIn Ads data. Since you already configured Databricks as your storage in Step 1, these options will be available in the dropdown.

A clean naming convention keeps things organized – especially when you're pulling data from multiple ad platforms into the same Databricks catalog:
- Schema: linkedin_ads or marketing_raw
- Table prefix: li_ – so your tables become li_campaigns, li_ad_analytics, li_creatives, etc.
When you're also importing Google Ads (ga_), Facebook Ads (fb_), and Reddit Ads (rd_) into the same catalog, consistent prefixes make cross-channel queries straightforward.
Step 5: Publish and run your first import
Everything is configured. Time to launch.
Publish the data mart
Click Publish to activate your data mart. This saves all settings and makes the pipeline ready to run.

After publishing, your data mart will Run right away to start the first data import of the last 7 days. OWOX will pull historical data from the LinkedIn Marketing API and write it into your Databricks tables.
The initial import duration depends on your data volume:
- Small accounts (< 10 campaigns) – a few minutes
- Medium accounts (50–100 campaigns) – 10–30 minutes
- Large accounts (hundreds of campaigns across multiple products) – up to a few hours
You can monitor progress on the data mart page. OWOX shows import status, row counts, and any errors in real time.
Set the refresh schedule
OWOX supports daily, hourly, and custom cron schedules. For most LinkedIn Ads reporting, daily is the right choice – LinkedIn's conversion tracking can attribute conversions up to 90 days after a click or view (depending on your attribution window), so daily refreshes with the lookback window keep your data accurate.

Step 6: Verify your data in Databricks
Once the import completes, head to your Databricks workspace and confirm the data landed correctly.
Run a quick validation query
Open a SQL Editor or notebook in Databricks and run a basic check:
1-- Check that tables were created
2SHOW TABLES IN your_catalog.linkedin_ads;
3
4-- Preview campaign performance
5SELECT
6 campaign_name,
7 objective_type,
8 impressions,
9 clicks,
10 spend,
11 conversions,
12 date_range_start
13FROM your_catalog.linkedin_ads.li_ad_analytics
14WHERE date_range_start >= CURRENT_DATE - INTERVAL 7 DAYS
15ORDER BY spend DESC
16LIMIT 20;
If you see your campaign names, metrics, and recent dates – you're set. The data is now in your Databricks Lakehouse and ready for analysis.
Run a cross-channel comparison
Here's where it gets interesting for B2B teams. If you've also connected Google Ads and Facebook Ads to the same Databricks catalog, you can immediately run cross-channel queries:
1-- Cross-channel spend comparison (last 30 days)
2
3SELECT
4 'LinkedIn Ads' AS channel,
5 SUM(spend) AS total_spend,
6 SUM(conversions) AS total_conversions
7FROM your_catalog.linkedin_ads.li_ad_analytics
8WHERE date_range_start >= CURRENT_DATE - INTERVAL 30 DAYS
9
10UNION ALL
11
12SELECT
13 'Google Ads' AS channel,
14 SUM(cost_micros / 1000000) AS total_spend,
15 SUM(conversions) AS total_conversions
16FROM your_catalog.google_ads.ga_campaign_performance
17WHERE segments_date >= CURRENT_DATE - INTERVAL 30 DAYS
18
19UNION ALL
20
21SELECT
22 'Facebook Ads' AS channel,
23 SUM(spend) AS total_spend,
24 SUM(actions_lead) AS total_conversions
25FROM your_catalog.facebook_ads.fb_ad_insights
26WHERE date_start >= CURRENT_DATE - INTERVAL 30 DAYS
27
28ORDER BY total_spend DESC;
This is the kind of analysis that's impossible when each channel lives in its own silo – and it's the core reason B2B teams centralize ad data in Databricks.
Why B2B teams need LinkedIn Ads data in Databricks
LinkedIn is often the highest-CPL channel in a B2B marketing stack – but also the one that delivers the most qualified pipeline. The problem is proving it. Here's why centralizing LinkedIn data in Databricks changes the equation.
LinkedIn Campaign Manager doesn't show pipeline influence
LinkedIn gives you impressions, clicks, and lead form submissions – but it can't tell you which of those leads became SQLs, entered pipeline, or closed as revenue. You can't correlate a Sponsored Content campaign targeting VP-level buyers with the deals that closed three months later, because LinkedIn doesn't have access to your CRM data.
The moment you need to answer "what's LinkedIn's true contribution to pipeline?" or "which targeting segments drive the highest deal value?" – you need the raw data in your data warehouse, joined with your CRM and product usage tables.
B2B attribution requires long lookback windows and multi-touch models
B2B sales cycles run 60–180 days. A buyer who clicks a LinkedIn Sponsored Content post in January might not sign a contract until June. LinkedIn's built-in reporting shows a 90-day attribution window at best – and it can't account for the Google Ads search clicks, Facebook retargeting impressions, and Reddit community engagement that happened in between.
In Databricks, you can build a multi-touch attribution model that spans all your paid channels, assigns fractional credit across touchpoints, and maps the entire journey from first ad impression to closed-won deal. That's how you prove (or disprove) that LinkedIn's high CPL is justified by downstream revenue.
Every B2B marketing team runs multi-channel – the data should live together
If you're running LinkedIn Ads, you're almost certainly also running Google Ads (search capture), Facebook Ads (retargeting), and possibly Reddit Ads (community-driven demand) or TikTok Ads (brand awareness). Each platform has its own reporting dashboard, its own metrics definitions, and its own attribution model.
When all your ad data lands in the same Databricks Lakehouse, you get a single, governed view of blended CAC, channel-level ROAS, and pipeline contribution – queryable with standard SQL and accessible to every analyst on the team. No more reconciling spreadsheet exports from five different ad platforms.
How OWOX Data Marts enable self-service analytics on LinkedIn Ads data
Raw LinkedIn Ads data in Databricks is powerful – but raw API tables with campaign IDs and metric codes aren't something a demand gen manager or CMO can work with directly. This is exactly the gap OWOX Data Marts fill.
What are OWOX Data Marts?
A Data Mart is a reusable, SQL-defined analytical dataset that sits on top of your Databricks tables. Analysts write the SQL logic once – defining metrics, joins, filters, and business rules – and publish it as a clean, governed dataset. Business users then pull reports from that data mart into Google Sheets, Looker Studio, or any BI tool without touching SQL or waiting on the data team.
Think of it as a contract between analysts and business users: the analyst guarantees the logic is correct and the data is fresh; the business user gets self-service access to explore it freely.
Practical examples for B2B marketing teams
Once your LinkedIn data lands in Databricks alongside other ad sources, you can build data marts like:
- Cross-channel pipeline influence report – joins LinkedIn, Google, Facebook, and Reddit ad data with CRM opportunity stages. Shows which channels touched deals at each pipeline stage. Refreshed daily, available in Google Sheets for the CMO's Monday review
- Blended CAC by channel and segment – a single data mart that calculates cost-per-acquisition across all paid channels, broken down by target account segment, deal size tier, or product line. No more manual spreadsheet reconciliation
- ABM campaign tracker – tracks performance of LinkedIn Matched Audiences campaigns against target account lists from your CRM. Shows engagement rates, pipeline influence, and cost-per-engaged-account across your ABM tiers
- Lead Gen Form quality scorer – joins LinkedIn Lead Gen Form submissions with CRM conversion data to score which form variations, targeting combinations, and content offers produce the highest SQL-to-close rate – not just the most form fills
Each of these data marts auto-refreshes on the schedule you set, and business users can slice the data through familiar tools. No more "can you pull this for me?" tickets in your analytics backlog.
Multi-touch attribution across your entire B2B stack
The highest-value use case for B2B teams: a cross-channel attribution data mart that combines LinkedIn Ads with Google Ads, Facebook Ads, Reddit Ads, website analytics, and CRM data. Build custom attribution models (linear, time-decay, position-based) that span the full 90–180 day B2B buying cycle – and finally answer whether LinkedIn's premium CPL delivers premium pipeline value.
Sign up for OWOX to start building data marts on top of your Databricks tables.
The open-source advantage
OWOX connectors are fully open-source. The LinkedIn Ads connector code is available on GitHub under an open license.
This matters in practice. If you need a LinkedIn Marketing API field that isn't exposed in the UI, a custom breakdown dimension, or a new endpoint – you can fork the repository, add it, and submit a pull request. Contributor guides are in the repo.
For enterprise teams, this means:
- Audit the code – see exactly what API calls are made and how data is transformed
- Extend functionality – add new endpoints, custom breakdowns, or post-processing logic
- Self-host if needed – run connectors in your own infrastructure with the Self-Managed Edition (though the Cloud Edition handles everything for most teams)
This fork-and-extend model is especially valuable for data teams in regulated industries or those with strict data governance requirements.
Troubleshooting common issues
Even with a straightforward setup, a few things can go wrong. Here are the most common issues and fixes.
Connection test fails
Problem: OWOX can't reach your Databricks workspace.
Check:
- Is your SQL Warehouse running? Databricks auto-suspends idle warehouses
- Is the workspace URL correct, including the full https:// prefix?
- Is your Personal Access Token still valid? Tokens can expire based on your org's policies
- Are there network restrictions (IP allowlists, private endpoints) blocking external access?
LinkedIn OAuth authorization fails
Problem: The LinkedIn OAuth flow doesn't complete or returns an error.
Check:
- Are you signing in with a LinkedIn account that has Campaign Manager or Account Manager access to the ad account?
- Has your LinkedIn account been restricted? Check LinkedIn for notifications
- Try in an incognito window – browser extensions or cached sessions sometimes interfere
- Make sure third-party cookies aren't blocked, as LinkedIn's OAuth flow relies on them
Missing data or empty tables
Problem: Tables exist in Databricks but contain no rows.
Check:
- Does the ad account have data for the selected date range? New accounts may have no historical data
- Did you select the correct ad account? Companies with multiple Campaign Manager accounts should double-check
- Check the data mart run logs in OWOX for error details – they'll show which API calls failed and why
- LinkedIn's Marketing API has rate limits – large accounts may need multiple runs to complete the initial backfill
Lead Gen Form data not appearing
Problem: Campaign and analytics data imports correctly, but Lead Gen Forms table is empty.
Check:
- Did you select the Lead Gen Forms endpoint during connector setup?
- Does your LinkedIn account have Lead Gen Forms active on any campaigns?
- Lead Gen Form access requires specific LinkedIn permissions – make sure the authorizing user has the right access level in Campaign Manager
Conclusion
Connecting LinkedIn Ads to Databricks with OWOX takes about 15 minutes – standard OAuth, endpoint selection, and you're done. No custom scripts, no token rotation, no ongoing maintenance.
But the real value for B2B teams isn't just having LinkedIn data in Databricks – it's having LinkedIn data next to your Google Ads, Facebook Ads, Reddit Ads, and CRM data. That's when you can build the cross-channel attribution models and pipeline influence reports that justify LinkedIn's premium CPL.
And because the connectors are open-source, your data team keeps full control. Audit the code, extend it when needed, and build analytics pipelines on top of reliable, governed data.
Ready to get your LinkedIn Ads data into Databricks? Sign up for OWOX and follow the steps above – you'll be querying campaign data in your Lakehouse in minutes.
Frequently asked questions
Yes. OWOX provides an open-source connector that handles OAuth authentication, API pagination, and schema mapping automatically. You configure the connection through a guided setup — no custom scripts, cron jobs, or middleware required. The connector runs on a schedule you define and lands data directly in your Databricks catalog.
The OWOX connector imports campaign performance metrics (impressions, clicks, spend, conversions), audience demographics, Lead Gen Form submissions, and creative-level breakdowns. You get both aggregate campaign stats and granular ad-level data, which you can join with CRM records or other ad platform tables already in your lakehouse.
Once LinkedIn Ads data lands in Databricks, you can write SQL queries that UNION ALL or JOIN it with tables from Google Ads, Facebook Ads, Reddit Ads, or any other source connector. Align on shared dimensions like date, campaign name, or UTM parameters to build a unified cross-channel view of spend, impressions, and conversions.
The connector itself is open-source and free. You can inspect the code, modify it, and self-host it at no licensing cost. OWOX also offers a managed Cloud Edition that handles scheduling, monitoring, and error recovery if you prefer not to maintain the infrastructure yourself.
You control the sync schedule — hourly, daily, or on a custom cron. Most B2B teams run daily syncs since LinkedIn Ads reporting has a natural 24–48 hour attribution window. The connector also supports a Reimport Lookback Window that re-fetches recent days to capture late-arriving conversions and attribution updates.



Finally, a tool that doesn't ask business users to learn a new dashboarding UI. Our marketing team already knows Sheets. OWOX just delivers the right data.
Joinable data marts concept was the thing that sold us. We can now use the semantic layer without building one.
Self-hosted the OSS version on Digital Ocean. Zero vendor lock-in. Contributed a Shopify connector back in week two.