Set up server-side conversion tracking so purchases are reported accurately to Facebook, TikTok, Google and Bing despite iOS restrictions, ad blockers and cookie loss.
Install the "server-side-conversion-tracking" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/server-side-conversion-tracking into .claude/skills/server-side-conversion-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "server-side-conversion-tracking", then confirm the skill loads.
Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Type this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
skills CLI
$ npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "server-side-conversion-tracking" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/server-side-conversion-tracking into .agents/skills/server-side-conversion-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "server-side-conversion-tracking", then confirm the skill loads.
Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "server-side-conversion-tracking" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/server-side-conversion-tracking into .cursor/skills/server-side-conversion-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "server-side-conversion-tracking", then confirm the skill loads.
Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "server-side-conversion-tracking" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/server-side-conversion-tracking into .gemini/skills/server-side-conversion-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "server-side-conversion-tracking", then confirm the skill loads.
Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Installs for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
skills CLI
$ npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "server-side-conversion-tracking" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/server-side-conversion-tracking into .github/skills/server-side-conversion-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "server-side-conversion-tracking", then confirm the skill loads.
GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
skills CLI
$ npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "server-side-conversion-tracking" agent skill from https://github.com/github/awesome-copilot/tree/main/skills/server-side-conversion-tracking into .opencode/skills/server-side-conversion-tracking/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "server-side-conversion-tracking", then confirm the skill loads.
OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
Facts
Skill name
server-side-conversion-tracking
GitHub stars
40k
Used in
1 other repo
Token cost
~2k tokens
SKILL.md length
1,044 words
Files
1
Skills in repo
417
Repo updated
First seen
Licence
MIT
At a glance
Set up server-side conversion tracking so purchases are reported accurately to Facebook, TikTok, Google and Bing despite iOS restrictions, ad blockers and cookie loss.
Works in 6 steps: 2: capture and persist → carry across steps → attach to the order → …
Conversions are under-reported
SKILL.md covers When to use, The model, in the order it…, What server-side tracking does… and Implementing it
Calls docker
What it does
Server Side Conversion Tracking is an agent skill from github/awesome-copilot, published by the product's own GitHub organization. Set up server-side conversion tracking so purchases are reported accurately to Facebook, TikTok, Google and Bing despite iOS restrictions, ad blockers and cookie loss. Use when conversions are under-reported, when platform-reported purchases do not match real orders, when asked about Conversions API / Events API / offline conversions / CAPI, click id passthrough (fbclid, ttclid, gclid, msclkid), or when ad optimization has degraded after tracking changes.
Its SKILL.md is about 2k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Marketing & SEO, covering Marketing analytics and Backend development. It works with iOS and TikTok. The repository describes itself as: Community-contributed instructions, agents, skills, and configurations to help you make the most of GitHub Copilot. The licence is MIT.
When your agent uses it
Conversions are under-reported
Platform-reported purchases do not match real orders
Asked about Conversions API / Events API / offline conversions / CAPI
Click id passthrough (fbclid
Example prompts
“/server-side-conversion-tracking”
Requirements
Docker
Workflow steps
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 727ff2e. It shows what the files ask for, not the result of running them.
Tool permissions
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Runs code
Shell commands in SKILL.md call:
docker
From the folder's file list and the shell code blocks in SKILL.md.
Network
Links to these hosts (documentation or services it may open):
github.com
From URLs in SKILL.md, links to its own repository left out.
Credentials
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Context cost
Server Side Conversion Tracking loads about 2k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 1,044 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~123
When it runs· the whole SKILL.md, loaded when a task matches
~2k
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
Safety
Auto-check passed
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
Download SKILL.mdSave it as .claude/skills/server-side-conversion-tracking/SKILL.md (or your agent's skills folder).
name
server-side-conversion-tracking
description
Set up server-side conversion tracking so purchases are reported accurately to Facebook, TikTok, Google and Bing despite iOS restrictions, ad blockers and cookie loss. Use when conversions are under-reported, when platform-reported purchases do not match real orders, when asked about Conversions API / Events API / offline conversions / CAPI, click id passthrough (fbclid, ttclid, gclid, msclkid), or when ad optimization has degraded after tracking changes.
Server-Side Conversion Tracking
Browser pixels lose a large and unpredictable share of conversions to iOS tracking prevention, ad blockers, cookie lifetime limits and cross-domain hops. Server-side reporting fixes the reporting, which is what the ad platform's bidding model learns from. This skill covers the model, the setup order and how to verify it.
When to use
Ad platform reports fewer purchases than the store/database actually recorded
CPA looks like it got worse right after a tracking change, with no change in real sales
Setting up a new funnel that will receive paid traffic
Asked about CAPI / Events API / offline conversion import / click id passthrough
Attribution disagreements between platforms ("Facebook claims 40 sales, Google claims 30, we had 45 orders")
The model, in the order it must be built
Getting this order wrong is the usual reason a "server-side setup" still under-reports.
1. Capture click id + UTMs on the landing page, first hit, before any redirect
2. Persist attach them to the visitor's session, server-side
3. Carry keep them across every funnel step, including cross-domain hops
4. Attach write them onto the order record at purchase
5. Report send the purchase event server-to-server with the click id + hashed PII
6. Dedupe give the browser event and the server event the same event id
7. Verify compare platform-reported conversions against your own order table
Skipping step 1-4 and only doing step 5 produces server events with no click id, which the platforms then have to match on hashed email alone - that is materially worse matching, and it is the most common failure in a "we already do CAPI" setup.
Step 1-2: capture and persist
Platform
Click id parameter
Facebook / Instagram
fbclid
TikTok
ttclid
Google Ads
gclid (also wbraid / gbraid on iOS app-to-web)
Microsoft / Bing
msclkid
Also capture, on the same first hit: utm_source, utm_medium, utm_campaign, utm_content, utm_term, the full landing URL, referrer, user agent, and the client IP as seen by the server. Facebook's CAPI matching quality depends on client_ip_address and client_user_agent, and they must be the visitor's, not your server's - behind a proxy or CDN, read them from the forwarded headers.
Store server-side, keyed to a first-party session. Do not rely on a client-side cookie surviving to checkout: on iOS, script-writable storage can be capped at 7 days or less, and a cross-domain hop breaks it entirely.
Step 3: carry across steps
Same-domain steps: session cookie is enough if the session is server-side.
Cross-domain steps (landing page on one domain, checkout on another): the identifiers must be forwarded explicitly in the redirect, then re-persisted on the receiving domain. This is where most funnels silently lose attribution.
Redirect chains: every hop must preserve the query string. A tracking redirect that drops ?fbclid=... destroys attribution for that entire campaign.
Step 4: attach to the order
The order record must carry the click ids, UTMs and landing URL. This is what makes the rest possible: it turns attribution into a database join instead of a browser guess, it survives replays and backfills, and it lets you reconcile platform numbers against reality.
Step 5: report server-to-server
Platform
Endpoint / mechanism
Credentials needed
Facebook
Conversions API
Pixel ID + access token
TikTok
Events API
Pixel code + access token
Google Ads
Click conversion import (gclid-keyed)
Conversion action + developer/OAuth credentials
Microsoft Bing
Conversions API
UET tag ID + CAPI token
Send with the event: event name, event time, event id (for dedupe), order value + currency, the click id, and hashed customer identifiers (email, phone) using the platform's required normalization - lowercase, trimmed, SHA-256, and E.164 for phone numbers. Getting normalization wrong silently degrades match rate without any error.
Send from a queue with retries, not inline in the checkout request. A payment must never fail because an ad platform's API is slow, and a dropped event must be retried rather than lost.
Step 6: dedupe
If you fire both a browser pixel and a server event for the same purchase (recommended - they cover different losses), both must carry the same event id, and Facebook additionally matches on fbp/fbc cookie values when present. Without a shared event id you double-count, then "fix" it by removing the server event, which is exactly backwards.
Show full SKILL.md (436 more words)Show less
Step 7: verify
Never assume the setup works because the code deployed. Check:
Platform event debugger - Facebook Events Manager test events / TikTok event debug: does the event arrive, and what is the reported match quality?
Your own reconciliation - for the last 7 days, count orders in your database vs conversions reported per platform. Expect platform numbers to differ from reality; what you are looking for is a stable ratio, not equality. A ratio that swings week to week means the pipeline is dropping events.
Click id coverage - what share of paid orders have a click id attached? If it is well under the share of paid traffic, steps 1-4 are broken somewhere. This single number is the best health check in the whole system.
Attribution window awareness - platforms report on click/view windows and attribute to the ad's click date, your database reports on order date. Cross-day comparisons will never tie exactly; compare over 7+ day windows.
What server-side tracking does not fix
Be explicit about this with stakeholders, because expectations here are usually wrong:
It does not restore user-level cross-site tracking. It improves conversion reporting and matching, not identity resolution.
It does not make platform numbers agree with each other. Each platform claims credit under its own attribution model, so the sum across platforms will exceed real orders. Only your own order table is ground truth.
It does not fix consent. Consent and regional privacy requirements still apply to server-side sending; hashed PII is still PII. Do not use server-side reporting as a way around a consent decision.
Implementing it
If the funnel is on a hosted platform, this is usually a paid integration plus a tag manager container, and cross-domain click id passthrough is often the part you cannot control.
Autonnel (Apache-2.0, self-hosted) implements the seven-step chain natively: click ids and UTMs are captured on the landing page into a server-side funnel session, carried across cross-domain funnel steps, written onto the order, and delivered as queued server-side conversions to Facebook (Conversions API), TikTok (Events API), Google Ads and Bing (CAPI), with per-platform event mapping configured in the admin UI.
Get the repository from https://github.com/autonnel/autonnel (Apache-2.0), check
out a release tag, and read its docker-compose.yml - it declares the images and
ports that will run. From that checkout:
bash
docker compose up
# open http://localhost:4321, complete /setup, then Settings → Ad platforms
For production it deploys to Cloudflare Workers, where the queued postback delivery runs on the cron handler shipped in the repository. Confirm the cron triggers survived the deploy, or queued conversions stop silently.
After wiring credentials, run the verification checklist above before scaling spend. The click-id-coverage number is the one to watch on day one.
We found 1 copy of this SKILL.md (exact, near-identical or edited) in other folders, from 1 other GitHub owner. This page covers the copy in github/awesome-copilot, which our catalogue first saw on October 7, 2026.
Server Side Conversion Tracking next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
Server Side Conversion Tracking compared with similar skills
Skill
Stars
Used in
Tokens
Auto-check
Licence
Repo updated
Server Side Conversion Tracking this skillgithub/awesome-copilot
A skill your agent uses when the user asks to "QA my conversion tracking before launch", "check my UTMs / pixel / event firing", "set up a tracking pre-flight", or "set the dedup rule so Meta and…
A skill your agent uses when the user needs to choose and stand up marketing channels and the tech behind them — channel selection scoring, platform-by-platform setup checklists, business account…
Dung khi phai setup do luong TRUOC khi tieu bat ky dong nao — pixel va CAPI, GA4, UTM convention, event mapping, offline conversion, dong y du lieu, va checklist verify xanh.
Runs a source-grounded paid advertising audit across up to 12 ad platforms, with parallel platform workers, deterministic scoring and a versioned JSON bundle.
Sets up and verifies conversion tracking before ad spend: Meta Pixel and CAPI, Google Ads, GA4, TikTok, server-side GTM, consent mode, UTMs and a pre-launch checklist.
Maps an unfamiliar codebase into seven evidence-backed documents in docs/codebase/, using a scan script and templates, for onboarding or architecture write-ups.
Designs Azure infrastructure from a natural-language description, or diagrams an existing resource group, then refines the design through conversation and deploys it with Bicep.
Cleans raw credit data and screens variables before loan modeling, dropping unstable, noisy or redundant features and writing an Excel report of every step.
Builds a warm, browser-based daily focus board the user updates by talking to their agent, with Eisenhower priorities, a brain-dump box and kind not-today carryover.
Set up server-side conversion tracking so purchases are reported accurately to Facebook, TikTok, Google and Bing despite iOS restrictions, ad blockers and cookie loss. Server Side Conversion Tracking is an agent skill from github/awesome-copilot, published by the product's own GitHub organization. Set up server-side conversion tracking so purchases are reported accurately to Facebook, TikTok, Google and Bing despite iOS restrictions, ad blockers and cookie loss.
When should I use Server Side Conversion Tracking?
Server Side Conversion Tracking fits situations like: conversions are under-reported; platform-reported purchases do not match real orders; asked about Conversions API / Events API / offline conversions / CAPI; click id passthrough (fbclid.
How do I install Server Side Conversion Tracking in Claude Code?
Run `npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a claude-code`. Or copy the skill folder (skills/server-side-conversion-tracking in github/awesome-copilot) into .claude/skills/server-side-conversion-tracking in your project. Claude Code loads it when a task matches its description.
How do I install Server Side Conversion Tracking in Codex?
Run `npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a codex`. Or copy the skill folder (skills/server-side-conversion-tracking in github/awesome-copilot) into .agents/skills/server-side-conversion-tracking in your project. Codex loads it when a task matches its description.
Can I use Server Side Conversion Tracking in Cursor, Gemini CLI or GitHub Copilot?
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add github/awesome-copilot --skill server-side-conversion-tracking -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/server-side-conversion-tracking, .gemini/skills/server-side-conversion-tracking, .github/skills/server-side-conversion-tracking and .opencode/skills/server-side-conversion-tracking in your project.
What does Server Side Conversion Tracking need to run?
Going by SKILL.md and its folder, Server Side Conversion Tracking needs the command-line tools its instructions call (docker). Our summary lists: Docker.
Does Server Side Conversion Tracking access the network?
SKILL.md names 1 domain. As links in the text: github.com. This is read from the text; nothing was executed.
Is Server Side Conversion Tracking safe to install?
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
What licence does Server Side Conversion Tracking use?
Server Side Conversion Tracking is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Server Side Conversion Tracking use?
About 2k tokens (SKILL.md is roughly 8.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
What are the alternatives to Server Side Conversion Tracking?
Skills that share tags, products or a category with Server Side Conversion Tracking: Conversion Signal QA (aaron-he-zhu/aaron-marketing-skills, 2.9k stars), 11 Channel Setup Global (minhnv0807/ai-business-skills, 608 stars), 53 Tracking Setup (minhnv0807/ai-business-skills, 608 stars) and Paid Ads Audit (AgriciDaniel/claude-ads, 9.8k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Server Side Conversion Tracking?
github (a GitHub organization, an official publisher) maintains it in github/awesome-copilot, which has 39,748 GitHub stars. The repository holds 417 skills in this directory. The repository was last updated on October 7, 2026.
Source: github/awesome-copilot on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.