# Best Practices

## Recommended setup

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Join analytics with Creatives for ad names</strong></td><td>LinkedIn Ads analytics reports don't include ad names — they only expose creative IDs. Set up a separate data flow for the Creatives entity and use Coupler.io's Join transformation on the creative ID to enrich your analytics with ad names and copy.</td></tr><tr><td><strong>Pick your 18 metrics intentionally</strong></td><td>LinkedIn enforces a hard limit of 18 metrics per analytics request. Decide upfront which metrics matter most for each report. If you need more than 18, create a second data flow with the remaining metrics and join them on the same dimension and date columns.</td></tr><tr><td><strong>Use multi-dimension reports for audience analysis</strong></td><td>If you want to see how a campaign performs across different audience segments simultaneously (e.g., Campaign × Member seniority), use Ad analytics by multiple dimensions instead of running separate single-dimension reports and combining them manually.</td></tr><tr><td><strong>Leave lead gen form filter blank for full exports</strong></td><td>When pulling Sponsored leads, leaving the form selector empty fetches submissions from all forms under the account. Only filter by specific forms if you're building a per-form pipeline report.</td></tr></tbody></table>

## Data refresh and scheduling

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Use Append mode to build history</strong></td><td>LinkedIn Campaign Manager's UI limits how far back you can easily view data. Use Coupler.io's Append import mode with a rolling short date range (e.g., the last 7 days) to incrementally build a long-term historical dataset in your destination.</td></tr><tr><td><strong>Daily splits need tighter date ranges</strong></td><td>Requesting daily granularity over a 90-day window across multiple accounts and 18 metrics is a reliable way to hit timeouts or rate limits. Keep daily-split reports to 30 days or less, and use monthly splits for longer trend analysis.</td></tr></tbody></table>

## Performance optimization

<table data-card-size="large" data-view="cards"><thead><tr><th></th><th></th></tr></thead><tbody><tr><td><strong>Split large accounts into separate data flows</strong></td><td>If you manage many ad accounts with high activity, pulling all of them in a single data flow can cause timeouts. Create one data flow per account (or per region/brand) and use Append to combine the outputs.</td></tr><tr><td><strong>Use totals for dashboard KPI cards</strong></td><td>For high-level KPI cards (total spend, total leads), set Split data by period to "Totals only" — it's faster and lighter than pulling daily data and aggregating in your BI tool.</td></tr></tbody></table>

## Common pitfalls

{% hint style="danger" %}
**Don't mix dimensions that LinkedIn doesn't support together.** Not all dimension combinations are valid in multi-dimension reports. If LinkedIn's API rejects a combination, the data flow will error. Test combinations with a short date range first before setting up a recurring schedule.
{% endhint %}

{% columns %}
{% column %}
**Do**

* Join the Creatives entity to get ad names alongside analytics data
* Test a manual run with a short date range before expanding to 90+ days
* Use the Conversion dimension to isolate performance by conversion event
* Select Reach explicitly if you need frequency or CPM metrics
  {% endcolumn %}

{% column %}
**Don't**

* Rely on the in-app preview to validate data — check the actual destination output
* Select all available metrics by default — choose only what you'll actually use
* Assume LinkedIn API data matches Campaign Manager exactly when comparing daily breakdowns
* Forget to re-authenticate if your LinkedIn password changes or token is revoked
  {% endcolumn %}
  {% endcolumns %}
