# Track X / Twitter posts, profile links and ads

Attriboo can recognize X traffic and connect permitted recorded visits to matched sales. Use labelled links to distinguish your own posts, profile and ads. Attriboo does not automatically search X or discover which unlabelled post sent a visit.

Canonical page: https://www.attriboo.com/docs/x-twitter-attribution

Instructions reviewed: 2026-11-01

## Before you share a link

- Choose the correct website in Attriboo and install its tracking code on the destination page.
- Keep your consent integration connected. Rejected consent and excluded countries can prevent a visit being recorded.
- Connect the payment provider for that website and complete the matching setup if you want visits linked to sales.
- Use a separate, readable campaign label for each campaign you want to compare. Keep private information out of the URL.

- [Install Attriboo on your website](https://www.attriboo.com/docs/installation)
- [Connect payments and visit matching](https://www.attriboo.com/docs/payment-connections)
- [Understand country controls](https://www.attriboo.com/docs/country-controls)

## Create a link for a post or profile

1. **Open Settings → Tracking links for your website.** Choose X / Twitter post or X / Twitter profile. The preset uses source twitter and marketing type social.

2. **Enter the final destination page and a campaign label.** For a post, use a distinct label such as x_launch_post_01. For your profile, use x_profile. Use separate campaign labels if you want separate revenue rows.

3. **Optionally label the post, then create and copy the link.** The profile preset supplies profile as the optional post label. The builder creates the URL without publishing anything or changing your website settings.

4. **Publish the link in the matching post or profile.** Use that same labelled destination if X wraps it in t.co. Avoid putting the same campaign link in several places if you need those places separated.

Example link for one unpaid X post

```
https://example.com/offer?utm_source=twitter&utm_medium=social&utm_campaign=x_launch_post_01&utm_content=founder_post_01
```

- [Learn each tracking-link field](https://www.attriboo.com/docs/campaign-links)

## Label paid X ads separately

Choose X / Twitter ad in the builder, or use source twitter with marketing type paid_social. New visits with that combination are labelled Paid Ads → X Ads. A campaign name on its own no longer turns an unpaid post into a paid ad.

This setup measures visits that reach your tracked website. It does not import X advertising costs or reproduce X’s impression and view-through reporting. You can record supported campaign costs separately using a matching campaign label.

- [Add costs for return-on-ad-spend reporting](https://www.attriboo.com/docs/ad-spend)

## What t.co can and cannot tell you

X automatically wraps shared links, including links in messages, in t.co. Attriboo recognizes t.co, x.com and twitter.com as X / Twitter when they are supplied as the referring source.

A referring domain alone does not identify the exact post, author, profile or public-versus-private placement. Clear labels on links you control provide that distinction. If somebody shares an unlabelled link, Attriboo may know only the platform, or may receive no source at all.

- [Read X’s explanation of t.co](https://help.x.com/en/using-x/url-shortener)

## Find the visits and sales in Attriboo

1. **Choose the same website and dates.** Include the test visit and any later payment. Keep the same attribution model when comparing campaigns.

2. **Check Sources, then Campaigns or Ad ROAS.** Sources shows the platform label. Campaigns groups visits and credited revenue by utm_campaign. A campaign label is not proof that the activity was a paid ad.

3. **Use distinct campaign labels for separate post revenue rows.** If two posts share a campaign label, their campaign totals are combined. The optional utm_content label is recorded with activity; it does not create a separate per-post or per-ad revenue report. For paid ads, keep the campaign ID or name that matches the imported cost.

4. **Check a missing sale separately.** A payment can be imported without a matching visit. Consent, blocked tracking, country controls, another device, a cleared identifier or missing checkout metadata can prevent matching. A tagged link does not fix those gaps.

- [Understand source reports](https://www.attriboo.com/docs/sources)
- [Read the attribution model rules](https://www.attriboo.com/docs/attribution-models)
- [Check a missing payment or visit match](https://www.attriboo.com/docs/troubleshooting/missing-sales)

## Test the published link

1. **Copy the final link from the actual post, profile or ad.** Test the published destination you control, including any shortener or redirect, rather than only the URL in your draft.

2. **Open it in a fresh test browser session.** Check the address after redirects. It must retain utm_source, utm_medium and utm_campaign. Give consent only through your normal website choice. Use a test location permitted by your saved country controls.

3. **Check a new recorded visit.** Select the matching dates and find the expected source and campaign. If you are using a browser-ignore setting, an ad blocker, cookieless mode or excluded country, the expected result may be no visitor-level journey.

4. **Check checkout matching only when needed.** Use your payment provider’s supported test setup or an existing payment you are authorized to inspect. Do not make an unnecessary live purchase. A working link test does not itself prove revenue matching.

- [Troubleshoot visits that do not appear](https://www.attriboo.com/docs/troubleshooting/no-visits)
- [Test your consent integration](https://www.attriboo.com/docs/cookie-consent)

## If a post appears as Direct or under the wrong campaign

- Check that the final page kept your labels and that you published the intended link.
- Use social for an unpaid post and paid_social for an ad. Check for an older or duplicated utm_medium in the URL.
- Use a distinct campaign label for each post you need to compare. A post label alone does not split campaign revenue.
- Check new visits after the update. Earlier stored source labels are not rewritten, and tracking links cannot recover unrecorded visits.

## You are done when

A permitted test visit has the intended X source and campaign label, and you understand whether its later payment can be matched.

## Related guides

- [Label your campaign links](https://www.attriboo.com/docs/markdown/campaign-links.md)
- [Track Bitly and other shortened links](https://www.attriboo.com/docs/markdown/shortened-link-attribution.md)
- [See where customers come from](https://www.attriboo.com/docs/markdown/sources.md)
- [Import ad spend from Google Ads, Meta, Microsoft and TikTok](https://www.attriboo.com/docs/markdown/ad-spend.md)
