| utm_source | quora |
| utm_medium | cpc |
| utm_campaign | {{campaign.name}} |
| utm_id | {{campaign.id}} |
| utm_term | {{ad.name}} |
| utm_content | {{adset.name}} |
Quora is the largest dedicated question-and-answer platform on the internet, and Quora Ads is the self-serve buying interface that lets you place sponsored content against specific questions, topic feeds, audience segments, or broad inventory. It’s a smaller advertising market than Meta or Reddit by spend, but the targeting model is structurally different in a way that makes it disproportionately useful for one specific job: showing up at the moment a buyer is explicitly researching a category.
The macro syntax matches Meta’s exactly — lowercase double curly braces with dot notation ({{campaign.id}}, {{adset.name}}). A Meta UTM template can be pasted into Quora’s URL parameters field without translating any tokens; you only adjust the source string and the field’s location in the UI. Reddit’s UPPERCASE underscore style ({{CAMPAIGN_ID}}) is the outlier — Reddit templates do not transfer.
This page covers the macro catalog, where the URL parameters field lives, the Quora Pixel and its trade-offs, when Quora actually makes sense as a channel, and the small list of common ways the setup goes wrong.
The recommended UTM template
| Parameter | Value | Why |
|---|---|---|
utm_source | quora | The conventional source string. quora is on GA4’s social source list, so with utm_medium=cpc it classifies as Paid Social by default. |
utm_medium | cpc | Matches GA4’s paid-channel regex. |
utm_campaign | {{campaign.name}} | Human-readable campaign name in reports. Switch to {{campaign.id}} if your team renames frequently. |
utm_id | {{campaign.id}} | Always the numeric ID — rename-safe and powers GA4 cost-data joins. |
utm_term | {{ad.name}} | Creative-level dimension. |
utm_content | {{adset.name}} | Audience differentiation. |
This is the template the mini builder hands users when they pick “Quora Ads.” Standards-only — no custom params — and it survives across every downstream tool that reads utm_*.
Dynamic macros
Quora’s macro list is small — six tokens covering campaign, ad set, and ad, each with an .id and .name variant. A few practical points:
- Lowercase only.
{{Campaign.ID}}outputs literally as{{Campaign.ID}}. Only{{campaign.id}}substitutes. - IDs vs names — same trade-off as everywhere.
{{campaign.name}}returns the current name, breaks on rename.{{campaign.id}}is rename-safe forever. Use the ID forutm_idalways. - No conditional macros. No equivalent of Google Ads’
{ifsearch:}/{ifmobile:}. Splitting by placement or device means splitting the ad. - No placement macro on the public list. Other platforms expose a placement token — Quora doesn’t, at least at this writing. If you need to know whether an impression came from a question feed, a topic feed, or the digest email, you split campaigns rather than templating.
Where to put the URL parameters
Quora’s URL parameters field lives at the ad level, in the ad’s tracking section. There’s no campaign-level or ad-set-level template that cascades down. Same shape as Meta and Reddit.
The full template goes into the field, without a leading ?:
utm_source=quora&utm_medium=cpc&utm_campaign={{campaign.name}}&utm_id={{campaign.id}}&utm_term={{ad.name}}&utm_content={{adset.name}}
Quora appends this to the destination URL, joining with ? or & as appropriate based on whether the destination already has a query string.
qclid: the click identifier
qclid is Quora’s per-click ID — but it does not behave like Google’s gclid or Meta’s fbclid, and the difference matters. It isn’t a universal auto-append that lands on every outbound ad URL for the browser Pixel to read. qclid is tied to Quora’s Conversion API: it’s the click_id Quora uses to match server-side conversions back to the originating click.
Two consequences follow from that:
- It only appears once you’ve set up the Conversion API. Per Quora’s own docs, the landing-page URL includes
qclidonly if a Conversion API access token has been generated for the ad account. During setup and testing you often won’t see it on the URL at all — Quora notes it “operates on the backend.” So there’s nogclid-style guarantee of a click ID on every click. - It’s consumed server-side, not by the Pixel. You (or your CAPI partner) capture
qclidon landing and pass it back to Quora’s Conversion API as theclick_idon the conversion event. That’s the join — not a first-party cookie the browser Pixel reads off the URL.
Because qclid is conditional and server-side, your UTMs are doing more of the attribution work here than on Google or Meta. Keep them on every ad URL — when a click arrives without qclid (no CAPI token, or it was stripped by a shortener, AMP cache, or consent-mode script), the UTMs are what still let GA4 and your CRM attribute the session.
The Quora Pixel and Conversion API
Quora’s measurement runs on two surfaces. The Quora Pixel is a JavaScript tag on your site that fires standard events (Generic, ViewContent, Search, AddToCart, Lead, Purchase, etc.) plus custom ones and ships them to Quora’s collection endpoint for attribution. The Conversion API is the server-side complement: you send conversions directly from your server (or a CAPI partner), passing qclid back as the click_id so Quora can match them to the originating click. Setting up the Conversion API is also what makes qclid appear on your landing URLs in the first place.
For consideration-stage B2B campaigns where conversions happen days or weeks after the click, lean on the server-side path. Pixel-only attribution carries the usual ITP and ad-blocker exposure, and Safari ITP caps client-set cookies at 7 days for cross-site contexts — well short of a long consideration window.
Practical mitigations:
- Add the Conversion API, not just the Pixel. Server-side events with
qclidasclick_idsurvive the cookie and ad-blocker losses the Pixel can’t. - Lean on UTMs as a fallback identifier — they persist in your CRM and analytics regardless of whether a Pixel cookie expired or
qclidwas absent. - Don’t chase exact match between Quora’s reported conversions and your CRM. They will diverge, especially for long consideration windows. Treat Quora’s numbers as a relative signal across campaigns rather than an absolute count.
When Quora actually makes sense
Quora is a sharp tool, not a general-purpose paid-social channel. It rewards advertisers whose product is something a prospect would research before buying — software, B2B services, financial products, education, professional services. The targeting that sets Quora apart is question-level: you can place an ad on a specific question like “What’s the best CRM for solo founders?” and capture the user during the research moment, not after.
Categories that historically work well on Quora:
- B2B SaaS with measurable trial-to-paid economics — the audience overlaps LinkedIn’s reach but the auction is less crowded.
- Financial services for products with a research-driven decision (mortgage, investment platforms, business banking).
- Education — degree programs, certifications, online courses.
- Professional services with B2B buyers (legal, accounting, consulting).
Categories that historically struggle:
- Pure B2C ecommerce with low consideration — the platform isn’t a great browse-and-buy environment.
- Local services — Quora’s targeting isn’t as geo-granular as the major platforms.
- High-frequency creative refresh — the ad-creation flow isn’t optimised for daily creative iteration.
For the receiver-side picture — how GA4 classifies utm_source=quora, what to do about default channel grouping — see Google Analytics .
Limitations and gotchas
qclidis conditional, not guaranteed. Unlikegclid/fbclid, Quora only appendsqclidonce a Conversion API access token exists, and it’s used server-side — so UTMs do more of the attribution work here. Build UTM-based fallbacks into your CRM for any conversion that takes more than 7 days.- Pixel-only setups carry more loss. Without the Conversion API wired up, ITP and ad-blockers cost you more clicks than on platforms you’ve given a server-side path. Add CAPI for meaningful spend.
- Macro syntax matches Meta exactly — lowercase double-brace with dot notation. Reddit’s UPPERCASE-underscore style is the outlier among paid-social platforms.
- No campaign-level URL template. Set per ad. Bulk-edit during creation; otherwise update one at a time.
- No URL preview tool. Click your own live ad to verify substitution.
Verification
Three steps, in order:
- Click your own ad in incognito. No preview tool — clicking the live ad and inspecting the landing-page URL is the only deterministic check.
- Confirm UTMs landed with substituted values, not literal macros. A typo in macro syntax (
{{Campaign_ID}}) outputs literally and you only find out post-launch. - Verify in the Quora Pixel diagnostics. Quora’s pixel-test tool fires a sample event and confirms the cookie chain is set up correctly. Worth doing at the start of any new campaign.
Common problems
- My UTMs come out as literal
{{campaign.id}}in URLs. Tokens were pasted in the wrong case (uppercase or mixed case). Quora is case-sensitive — lowercase only. - My Quora campaign shows as
(direct)/(none)in GA4. No UTMs were set on the ad URL, so GA4 has nothing to read — Quora doesn’t auto-tag a source the waygclid/fbclidcarry one. Add the UTM template to the URL parameters field so the session attributes even when no referrer orqclidsurvives. - My Quora campaign shows as Paid Other instead of Paid Social.
quorais on GA4’s social source list, soquora+utm_medium=cpcshould land in Paid Social by default. If you’re seeing Paid Other, the medium probably isn’tcpc(or another paid value) — check theutm_mediumvalue on the ad URL. - My Quora conversions look way under what the platform reports. Common with a Pixel-only setup — ITP and ad-blockers cost you 25–40% of clicks. Wire up the Conversion API (passing
qclidasclick_id) and use UTM-based CRM joins for the long-consideration conversions Quora measures most accurately. - Long lookback windows aren’t matching. Safari ITP caps client-set cookies at 7 days. Conversions that take longer than that lose the Pixel-side join. UTMs persist in your CRM regardless.
- My UTM template uses campaign names and they keep breaking on rename. Switch
utm_campaignto{{campaign.id}}. The numeric ID is rename-safe.
| Token | Description | Substituted at |
|---|---|---|
| {{campaign.id}} | Numeric campaign ID. Stable across renames — recommended as utm_id. | Click time |
| {{campaign.name}} | Campaign name. | Click time |
| {{adset.id}} | Numeric ad set ID. | Click time |
| {{adset.name}} | Ad set name. | Click time |
| {{ad.id}} | Numeric ad ID. | Click time |
| {{ad.name}} | Ad name. | Click time |
| qclid | Quora Click Identifier — the click_id Quora's Conversion API matches conversions against. Not a universal gclid/fbclid-style auto-append. Quora adds qclid to the landing URL only once a Conversion API access token exists for the account; it's captured and sent back server-side via the Conversion API. Don't add it manually. | Click time |
