Docs

Integrations

Connect your ad platforms and analytics tools, and fix the occasional hiccup.

How connecting works

Most integrations use OAuth, the same secure standard you see when an app asks to "Continue with Google". You click Connect, authorize on the provider's own screen, and CrunchJunkie receives a scoped, revocable access token — never your password. A few self-hosted analytics tools (Matomo and Piwik PRO) work a little differently: instead of an OAuth redirect, you paste your own instance URL plus a read-only API token. Either way, the credential is encrypted at rest, grants read-only access, and can be revoked from the provider at any time. After connecting, you choose which accounts, properties, or sites to import. The first sync runs immediately; from then on, data refreshes automatically once a day. The Integrations page shows the health of every connection, so you always know your data is current.

Google Ads and GA4

For Google Ads, click Connect on the Google Ads card and authorize with the Google account that has access to the relevant ad accounts. If you manage clients through an MCC, you'll be able to select individual accounts under it — import only the ones you report on. GA4 works the same way: authorize with Google and pick the specific properties you need. Both integrations require that the Google user you authorize with has at least read access to the accounts or properties. If an account doesn't appear in the selection list, it's almost always a permissions issue on the Google side rather than a CrunchJunkie one.

Meta and LinkedIn

Meta Ads connects through Facebook Login. Authorize with a user who has a role on the relevant Business Manager and ad accounts, then select the ad accounts to import. Because Meta periodically requires re-authorization, CrunchJunkie watches token validity and warns you before a connection lapses. LinkedIn Ads follows the same OAuth flow. Authorize with an account that has access to the Campaign Manager ad accounts you report on, and select them during setup. As with every integration, you grant read access only — CrunchJunkie never makes changes to your campaigns.

Facebook & Instagram (organic)

Separate from Meta Ads, the Facebook & Instagram connector pulls ORGANIC Page and Instagram metrics — how your posts, reach and audience are doing, not your paid campaigns. Click Connect on the Facebook & Instagram card in Data → Integrations, authorize through Facebook Login for Business with a user who has a role on the Page, tick the Page (and its linked Instagram Business account) in the consent step, and assign it to a client. It's a distinct connection from the Meta Ads one, so you can revoke either without touching the other, and it grants read-only access. Instagram data is the rich half: views, reach, interactions, likes, comments, shares, saves and follower count, plus your recent media. Because Instagram caps an insights query at 30 days, reach and accounts-engaged are reported as the most recent 30-day window and labelled "(30d)" so they're never mistaken for a range total. Facebook Page data covers page views, reach, post engagement, follows, new follows and video views, the current follower total, and your recent posts with their likes, comments and shares. Page-level metrics are date-windowed, so a Page that hasn't posted recently shows little over a recent range — pick a date range that covers real posting activity to see the numbers fill in. Any metric an account doesn't serve shows an em dash, never a fabricated zero. Two honest notes. First, organic metrics carry no ad spend, so this connector is deliberately left out of cross-channel spend blends and "All channels" totals — mixing organic reach into paid spend would distort both. Second, reading the text and engagement of individual Facebook Page posts (the "Top Facebook posts" table) requires Meta's Advanced Access for the pages_read_engagement permission, which goes through Meta App Review; Instagram, Facebook Page insights and the follower total all work without it.

Microsoft Ads, TikTok, and Search Console

Microsoft Ads (Bing), TikTok Ads, and Google Search Console each connect with a single OAuth click on their card in the Integrations page. For Microsoft Ads and TikTok, authorize with a user who has access to the ad accounts and choose which to import. Search Console connects via Google and lets you pick the verified properties whose organic search data you want in reports. All three refresh daily alongside your other sources, and all three appear in the same connection-health view so you can manage your entire stack from one screen.

Amazon Ads

Amazon Ads connects over OAuth (Login with Amazon) and pulls read-only Sponsored Products reporting. Because Amazon's API is region-split, you pick the advertiser's marketplace region when you connect. To connect: 1. Make sure the client you're reporting for exists under Clients (you'll assign the connection to it). 2. Open Data → Integrations and click Connect on the Amazon Ads card. 3. Choose the advertiser's marketplace region — Europe (EU), North America (NA), or Far East (FE). This must match where the ad account is based. 4. Sign in with Login with Amazon using an Amazon user that has access to the advertiser's account, and approve the read-only access. 5. Pick the exact ad profile (advertiser account) to import, and assign it to the client. The first sync starts immediately; data then refreshes daily. To report on a client's account, the client either adds your Amazon user (with Viewer/Reporting access) in their Amazon Ads console, or authorizes the connection themselves during step 4. Available data covers Sponsored Products across campaigns, ad groups, keywords/targeting, customer search terms, and advertised vs purchased products — with metrics including Impressions, Clicks, Spend, CTR, Avg. CPC, CPM, Orders, Sales, Units, ACOS and ROAS. Amazon's reports are generated asynchronously, so the first load of a breakdown can take a few moments. Not yet included: Sponsored Brands, Sponsored Display, and Amazon DSP (streaming/OTT video, including Twitch) — DSP requires a separate Amazon approval beyond standard API access. And one note if you ever see a "bad scope" error on connect: that means the Login-with-Amazon profile isn't associated with approved Amazon Ads API access yet — it's an Amazon account-setup state, not a CrunchJunkie issue.

Reddit Ads

Reddit Ads connects over OAuth and pulls read-only campaign reporting. Click Connect on the Reddit Ads card in Data → Integrations, authorize with a Reddit user who has access to the advertiser's Ads account, then pick the ad account to import and assign it to a client. The credential is stored encrypted, grants read-only access, and can be revoked from Reddit at any time; data refreshes daily like every other source. Available metrics cover everything Reddit's reporting API serves: delivery (Impressions, Clicks, Spend, CTR, Avg. CPC, eCPM, Reach, Frequency), conversions overall (Conversions, Conversion rate, ROAS, Conversion value) and per pixel event — Purchases with value, items, cost per purchase and purchase ROAS, Sign-ups, Pixel leads, Add to cart, Page visits, Content views, Searches and Key conversions — app-install campaigns (installs, cost per install, app revenue and ROAS) and video depth (views, 3s/5s/10s, 25/50/75/95/100%, viewable impressions, expanded plays and completion rate, including a video engagement funnel widget) — broken down over time or by campaign, ad group, ad, community, placement, geo, device, gender, interest or keyword. One honest detail: not every account reports every conversion field, so CrunchJunkie asks the API itself on first fetch and any metric your account doesn't serve shows an em dash rather than a made-up zero. When you draft a report with AI, a connected Reddit account contributes a key-metrics scorecard and a spend-and-conversions-over-time chart automatically, and blends into cross-channel comparisons alongside your other paid sources.

ChatGPT Ads

ChatGPT Ads (OpenAI's advertising platform) connects with an account API key rather than OAuth. In OpenAI Ads Manager, open Settings → API Keys and create a key — it's scoped to a single ad account. In CrunchJunkie, open Data → Integrations, click Connect on the ChatGPT Ads card, choose the client, and paste the key. CrunchJunkie verifies it against the account, stores it encrypted, and reads only that account's reporting; data refreshes daily like every other source. Available metrics cover delivery and efficiency — Impressions, Clicks, Spend, CTR, Avg. CPC and CPM — plus Conversions, Cost per conversion and Conversion rate, broken down by campaign, country, device or product, or plotted over time. Two honest details specific to this API: conversions are reported at the campaign level (not per day), so they appear on scorecards and the campaigns table but show an em dash on the daily chart and on the country/device/product breakdowns rather than a made-up zero; and OpenAI's API returns no conversion value, so there is no ROAS — the connector never invents one. Money is shown in the ad account's own currency. When you draft a report with AI, a connected ChatGPT Ads account contributes a key-metrics scorecard and a spend-and-clicks-over-time chart automatically, and blends into cross-channel comparisons alongside your other paid sources (spend, impressions, clicks and conversions).

Matomo

Matomo doesn't use OAuth — every Matomo instance is self-hosted or on Matomo Cloud, so you connect it with your instance URL and a read-only API token (Matomo calls this a "token_auth"). It works with both Matomo Cloud and self-hosted Matomo 4 and 5. First, create the token in Matomo. Sign in as a user who has at least View access to the site you want to report on (using a View-only user keeps the token strictly read-only), then go to the gear icon (Administration) → Personal → Security → Auth tokens → "Create new token". Confirm your password, give the token a description like "CrunchJunkie", and create it. Matomo shows the token only once, so copy it straight away. You can leave "Only allow secure requests" enabled — CrunchJunkie sends the token in the request body, which satisfies that setting. Then connect it in CrunchJunkie. Open Data → Integrations and click Connect on the Matomo card. Paste your instance URL — the address before /index.php, for example https://yourcompany.matomo.cloud — and the token_auth, then click Connect. CrunchJunkie verifies the credentials immediately and lists the sites the token can see. Pick the site you want and assign it to a client. The token is stored encrypted, access is read-only, and data refreshes daily like every other source. To rotate or revoke access later, delete the token in Matomo (Administration → Personal → Security → Auth tokens) and reconnect with a new one. Available metrics include Visits, Unique visitors (approx.), Actions, Actions / visit, Bounce rate, Conversions, Conversion rate, and Revenue — over time or broken down by channel, source, campaign, country/region/city, device, browser, OS, top/entry/exit pages, and goals. One note on accuracy: "Unique visitors (approx.)" is labelled that way on purpose. Matomo can't return a true unique-visitor count across a multi-day range, so for ranges longer than a day CrunchJunkie sums each day's uniques — which slightly overcounts anyone who visited on more than one day. Single-day figures are exact, and every other metric (visits, actions, bounce rate, conversions, revenue) is exact across any range.

Piwik PRO

Piwik PRO also connects with credentials rather than OAuth, using its API client-credentials grant. It works with Piwik PRO Cloud and on-premises instances. First, create an API client in Piwik PRO. As an admin, open Settings → API (Administration) and create a new API credential — Piwik PRO issues a Client ID and Client Secret. These act like a scoped, revocable key for read access to your analytics data. Then connect it in CrunchJunkie. Open Data → Integrations and click Connect on the Piwik PRO card. Paste your instance URL — your Piwik PRO address, for example https://yourorg.piwik.pro — together with the Client ID and Client Secret, then click Connect. CrunchJunkie authenticates immediately, lists the apps (websites) the credential can access, and you pick one and assign it to a client. Credentials are stored encrypted; we mint a short-lived token per request, so nothing long-lived is kept. Available metrics include Sessions, Visitors, Page views, Unique page views, Pages / session, Bounce rate, Goal conversions and Conversion rate — over time or broken down by channel, source, source/medium, campaign, keyword, country/region/city, device, browser, OS and top/entry/exit pages. Reports respect Piwik PRO's "scope" model: session-level breakdowns (channels, geo, devices) and page-level breakdowns (top pages) each use the metrics that belong to that scope, so figures stay consistent. Note Piwik PRO data has roughly a two-hour processing delay, so the current day is usually still filling in.

Google Business Profile

Google Business Profile (formerly Google My Business) brings your local-listing performance into reports — how customers find and act on your Business Profile across Google Search and Maps. It shares the same Google sign-in as GA4, Search Console and Merchant Center, so connecting is one click: on the Google Business card in Data → Integrations, click Connect, authorize with Google, and leave the Business Profile permission ticked on the consent screen (or CrunchJunkie can't read your listing). Access is read-only. Then pick which location to report on and assign it to a client — multi-location and agency accounts list every location you manage. Available metrics: impressions split by surface and device (Google Search vs Maps, desktop vs mobile), and customer actions — calls, website clicks, direction requests, messages, bookings, and food orders/menu clicks for restaurants — trended over time or totalled as KPIs. A Top search keywords table shows the queries people actually typed to find the listing (this is monthly data, and Google buckets low-volume terms as "≥N" rather than an exact count, which we show honestly). Reviews and average rating come in as KPIs too. Two honesty notes: Business Profile performance data lags real time by about two to three days on Google's side, and Reviews / Avg. rating are the current totals for the location, not a sum over the report's date range. Like every source, Google Business Profile flows into Draft with AI, the report builder, shared links and PDF exports, and refreshes daily. It's an organic, local-presence channel with no ad spend, so it is deliberately left out of the paid "All channels" cross-channel totals (adding a spend-less source there would distort CPC and ROAS) — you report on it in its own section, exactly like the Facebook & Instagram organic connector.

More platforms coming soon

The Integrations page also lists platforms we're building next, shown as "Coming soon" so you can see where the roadmap is headed: Pinterest Ads, Snapchat Ads, X (Twitter) Ads, Shopify, Klaviyo, HubSpot, Mailchimp, Criteo, Taboola and Outbrain. These are placeholders that capture demand — they are not live connectors yet, so you can't connect them or pull data from them today, and they don't appear in Draft with AI. If one of these is important to your reporting, let us know and it helps us prioritise. We'll announce each on the changelog as it ships.

"Needs attention" alerts

CrunchJunkie watches your connections so you don't have to. When something needs your input, it surfaces in the Needs attention area on the Integrations page — and it appears there before a report goes out with a gap, not after a client spots one. Two kinds of alert show up here. The first is a reconnect prompt: when a provider expires or revokes a token (often after a password change, a removed permission, or Meta's periodic re-authorization), the affected integration is flagged with a Reconnect banner. One click takes you back through OAuth to restore it, and the daily sync resumes. The second is a bring-your-own-AI-key failure: if you run AI Visibility on your own provider keys and a key stops working — expired, out of quota, or revoked at the provider — that failure is raised in Needs attention too, so a silent scan failure never goes unnoticed. Clear the alert by reconnecting the source or updating the key, and the flag disappears on the next successful sync or scan.

Troubleshooting connections

Most issues come down to one of three causes. First, expired or revoked tokens: if a provider invalidates a token (often after a password change or a permissions update on their side), you'll see a "Reconnect" banner — click it and re-authorize to restore the connection. Second, missing permissions: if an account or property doesn't show up during setup, confirm the user you authorized with has at least read access to it on the provider's platform. Third, a stale sync: if numbers look out of date, check the last-sync time on the Integrations page; you can trigger a manual refresh rather than waiting for the daily cycle. If a connection still won't behave after reconnecting and confirming permissions, contact support at hello@crunchjunkie.io with the workspace name and the affected integration, and a real person will help you sort it out.