Skill Tracer
Skills › Knowledge Work Plugins › ad-manager › data_sources.md

data_sources.md

100 lines · small-business/skills/ad-manager/reference/data_sources.md at 2574e29

Open on GitHub

Most marks come from matching words in the file, so treat them as pointers.

1# Data Sources
2
3Where the numbers come from, how to get them without a connector, and how to reconcile the two stories they tell.
4
5---
6

Data Sources

Where the numbers come from, how to get them without a connector, and how to reconcile the two stories they tell.


Raw lines 1 to 6
7## Connectors
8
9| Source | Status | What to pull |
10|---|---|---|
11| Canva | Available | Creative asset generation from a written brief |
12| TikTok Ads | The native connected path (TikTok MCP) | Spend, impressions, clicks, results, cost per result — at campaign, ad group, and ad level |
13| Google Ads | No native connector — reached through a Zapier connection built with `build-connector`, offered once when the owner runs ads there | Whatever the connected Zapier actions expose. CSV export still works when no connection exists |
14| HubSpot | Optional but high value | Leads by source, deals closed by source — the truth check on platform claims |
15| QuickBooks, Shopify, Square | Optional | Revenue actually collected in the period |
17**Check before assuming.** If a TikTok call or a Zapier action fails, do not retry in a loop and do not stall. Say the path is not available, switch to the export path, and keep going. Never call a platform with no native connector directly — it runs through a built Zapier connection or a CSV.
19---

Connectors

SourceStatusWhat to pull
CanvaAvailableCreative asset generation from a written brief
TikTok AdsThe native connected path (TikTok MCP)Spend, impressions, clicks, results, cost per result — at campaign, ad group, and ad level
Google AdsNo native connector — reached through a Zapier connection built with build-connector, offered once when the owner runs ads thereWhatever the connected Zapier actions expose. CSV export still works when no connection exists
HubSpotOptional but high valueLeads by source, deals closed by source — the truth check on platform claims
QuickBooks, Shopify, SquareOptionalRevenue actually collected in the period

Check before assuming. If a TikTok call or a Zapier action fails, do not retry in a loop and do not stall. Say the path is not available, switch to the export path, and keep going. Never call a platform with no native connector directly — it runs through a built Zapier connection or a CSV.


Raw lines 7 to 20
Uses an outside tool MCP :12
Names a skill build-connector :13
21## The CSV export path
23This is the common path. Treat it as the default, not the fallback.

The CSV export path

This is the common path. Treat it as the default, not the fallback.

Raw lines 21 to 24
25### What to ask for, in the owner's words
27- **Google Ads:** "In Google Ads, go to Campaigns, set the date range to last 30 days, click the download icon, choose CSV."
28- **TikTok:** "Ads Manager, Campaign tab, Export, last 30 days."
30Ask for 90 days too when the question is about trend rather than this month. Say why: "30 days tells us where we are, 90 tells us which way it's moving."

What to ask for, in the owner's words

  • Google Ads: "In Google Ads, go to Campaigns, set the date range to last 30 days, click the download icon, choose CSV."
  • TikTok: "Ads Manager, Campaign tab, Export, last 30 days."

Ask for 90 days too when the question is about trend rather than this month. Say why: "30 days tells us where we are, 90 tells us which way it's moving."

Raw lines 25 to 31
32### Reading the file
34Header names differ by platform and by export settings. Map, do not assume.
36| What you need | Common column names |
37|---|---|
38| Spend | `Amount spent (USD)`, `Cost`, `Total spent` |
39| Impressions | `Impressions`, `Impr.` |
40| Clicks | `Clicks (all)`, `Link clicks`, `Clicks` |
41| Results | `Results`, `Conversions`, `Leads`, `Purchases` |
42| Cost per result | `Cost per result`, `Cost / conv.` — or compute it |
43| Reach and frequency | `Reach`, `Frequency` |
44| Date range | Usually in a header row above the table, not a column |
46**Two traps in real exports.** First, `Results` can mean different things per campaign — one row's result is a lead form, another's is a page view. Check the `Result type` column if it exists; if it does not, say the results are not comparable across campaigns rather than summing them. Second, currency symbols and thousands separators arrive as text. Strip them before arithmetic.
48If a column you need is absent, name it: "This export has spend and clicks but no conversion column, so I can tell you what traffic cost and nothing about what it produced." Then offer the export setting that would include it.
50---

Reading the file

Header names differ by platform and by export settings. Map, do not assume.

What you needCommon column names
SpendAmount spent (USD), Cost, Total spent
ImpressionsImpressions, Impr.
ClicksClicks (all), Link clicks, Clicks
ResultsResults, Conversions, Leads, Purchases
Cost per resultCost per result, Cost / conv. — or compute it
Reach and frequencyReach, Frequency
Date rangeUsually in a header row above the table, not a column

Two traps in real exports. First, Results can mean different things per campaign — one row's result is a lead form, another's is a page view. Check the Result type column if it exists; if it does not, say the results are not comparable across campaigns rather than summing them. Second, currency symbols and thousands separators arrive as text. Strip them before arithmetic.

If a column you need is absent, name it: "This export has spend and clicks but no conversion column, so I can tell you what traffic cost and nothing about what it produced." Then offer the export setting that would include it.


Raw lines 32 to 51
52## Reconciling platform numbers against the CRM
54The two will never match. The gap is information, not an error.
56**Why platforms report more:**
58- View-through conversions — someone saw the ad, did not click, bought later
59- Cross-device attribution the CRM cannot see
60- Attribution windows, often 7 days after a click and 1 day after a view
61- Each platform claims the same conversion when a customer touched several ads
63**Why the CRM reports fewer:**
65- The source field is blank on records created by hand
66- Phone calls and walk-ins carry no digital source at all
67- Form fills that never became a CRM record

Reconciling platform numbers against the CRM

The two will never match. The gap is information, not an error.

Why platforms report more:

  • View-through conversions — someone saw the ad, did not click, bought later
  • Cross-device attribution the CRM cannot see
  • Attribution windows, often 7 days after a click and 1 day after a view
  • Each platform claims the same conversion when a customer touched several ads

Why the CRM reports fewer:

  • The source field is blank on records created by hand
  • Phone calls and walk-ins carry no digital source at all
  • Form fills that never became a CRM record
Raw lines 52 to 68
69### The method
711. Pull platform-reported results per campaign
722. Pull CRM leads and closed deals with that source, over the same dates
733. Show both, side by side, labeled by who reported them
744. Give the owner one number to steer by — cost per closed job from the CRM — and label the platform figure as the optimistic bound

The method

  1. Pull platform-reported results per campaign
  2. Pull CRM leads and closed deals with that source, over the same dates
  3. Show both, side by side, labeled by who reported them
  4. Give the owner one number to steer by — cost per closed job from the CRM — and label the platform figure as the optimistic bound
Raw lines 69 to 75
76### Report it like this
78```
79Paid social — Spring Tune-Up
80 Spend USD 1,840
81 Platform says 34 conversions, USD 54 each
82 CRM says 19 leads tagged to it, 6 became jobs
83 Cost per real job USD 307
84 The gap The platform counts people who saw the ad and called
85 later. The CRM only counts what got tagged.
86 Real number is probably between the two,
87 closer to the CRM.
88```
90Never publish one blended figure. Owners forward these numbers to partners and lenders.
92---

Report it like this

Paid social — Spring Tune-Up
  Spend                      USD 1,840
  Platform says              34 conversions, USD 54 each
  CRM says                   19 leads tagged to it, 6 became jobs
  Cost per real job          USD 307
  The gap                    The platform counts people who saw the ad and called
                             later. The CRM only counts what got tagged.
                             Real number is probably between the two,
                             closer to the CRM.

Never publish one blended figure. Owners forward these numbers to partners and lenders.


Raw lines 76 to 93
94## When there is no tracking at all
96Plenty of small accounts run ads with no pixel and no conversion event. Clicks are the only signal.
98Say it plainly: "There's no conversion tracking on this account, so nobody — not me, not the platform — can tell you what these ads produced. We can compare cost per click across campaigns, which tells you which creative got attention, and that is all it tells you."
100Then offer the fix as the first recommendation, ahead of any budget change. Tracking before optimization; otherwise every later recommendation rests on nothing.

When there is no tracking at all

Plenty of small accounts run ads with no pixel and no conversion event. Clicks are the only signal.

Say it plainly: "There's no conversion tracking on this account, so nobody — not me, not the platform — can tell you what these ads produced. We can compare cost per click across campaigns, which tells you which creative got attention, and that is all it tells you."

Then offer the fix as the first recommendation, ahead of any budget change. Tracking before optimization; otherwise every later recommendation rests on nothing.

Raw lines 94 to 100