Menu
Request a storefront

LinkToLooks · Guides · Creator Desk

Creator Desk

The link you were given already has a query string

Measured on 5,111 live product URLs: what is already on the end of a feed link, who puts it there, and what it does to your SubID.

Part of: For creators

3,191 of 5,111 destination URLs in a live US product pull — 62.4% — already carried a query string before anybody added tracking to them. The commonest parameter names were utm_source on 1,881 rows and a percent-encoded PiID[] on 1,046.

That matters for one practical reason: when you append your own SubID, on roughly two links in three you are appending to a string that is already there and already doing a job. Get the separator wrong, or run the link through a tool that rewrites query strings, and you can break attribution before a single person clicks.

Three example links: with no query string, add the SubID after a question mark; when the link already has one, as 62.4% did, add it with an ampersand; a second question mark is wrong and reads as one strange parameter.
3,191 of 5,111 feed links, 62.4%, already carried a query string on 7 September 2026, so on roughly two links in three your SubID goes after an ampersand, not a question mark.Illustration: LinkToLooks

What is actually on the end of these links

A product feed hands you a destination URL. Most creators treat it as an address. It is more often an address plus instructions.

Parameter nameRows carrying itWhat it is doing there
utm_source1,881Campaign tagging the retailer applied itself, read by the retailer’s own analytics
PiID%5B%5D1,046A percent-encoded PiID[]: an option or variant selector, the thing that makes the page load the right colour or size
sku174Which exact variant to show
ID99Retailer-internal item reference
variant59As above, different retailer
pTmplType33Which page template to render
feed_tp27Marks the visit as arriving from a product feed
goods_id26Item reference
feedsource23As above, different retailer

Parameter names counted across 3,191 URLs carrying a query string, 7 September 2026.

Two different kinds of thing are in that table and the difference is the whole point. utm_source and feed_tp are reporting: strip them and the page still works, and somebody else’s dashboard is wrong. PiID[], sku and variant are functional: strip them and the shopper lands on a different product, or on a generic page where they have to pick the right option again.

Nothing on the link tells you which kind you are looking at.

A close-up of a rusty metal chain stretched horizontally against a soft blurred background.
Photo: Unknown, CC0 1.0, via Rawpixel

It is decided by the retailer, not by you

Of the 101 retailers in this pull, 42 put a query string on every row they returned and 46 put one on no row at all. Thirteen do it sometimes. As with almost every feed-completeness question we have measured, it is a switch at the retailer level rather than a property of individual products.

The useful consequence: check one link from a retailer and you know what all of them look like. If you work with five programmes, that is five checks, once, not a check per post.

815 links arrive already malformed

This one was not on the list of things we set out to measure. 815 of the 3,191 URLs carrying a query string have an empty parameter name in it, because the string starts with ?& rather than ?. A real example, trimmed:

https://www.wayfair.com/…-Table-Lamp-….html?&PiID%5B%5D=66901973

The ?& is a joining bug in whatever assembles those URLs: something appended a parameter as though a query string already existed when it did not. Browsers forgive it and the pages load. It is still a defect a publisher is expected to republish verbatim, and it concentrates in one retailer family — 664 rows from one advertiser, with 135 more from three sibling banners.

Why a creator should care: naive link-handling code often joins with ? if it does not see one and & if it does. A URL that already contains ?& is exactly the input that produces two question marks, and a URL with two question marks is one string, not a query, on the far side.

We also checked for fragments, since a # silently swallows anything appended after it. Zero of 5,111 destination URLs carried one. That failure mode is not present in this catalogue.

Keep reading

The retailer switch is easiest to see at its extremes. In the 7 September 2026 pull, Woot! put a query string on none of its 419 rows, while a sporting-goods retailer put one on all 51 of its own.

What this does to a SubID

A SubID is the one piece of tracking that belongs to you rather than to the retailer or the network: it is how a reported sale gets traced back to the post that earned it. It is appended to the link.

  1. The separator is not always ?. On 62.4% of these links it is &, and using the wrong one produces a URL the retailer reads as a single strange parameter.
  2. Your parameter name can collide. If a feed link already carries utm_source and your tooling adds a second utm_source, which one wins is the retailer’s decision and it is not published anywhere.
  3. Ordering can matter and you cannot tell where. Most servers do not care. Some CDN and cache configurations key on the exact query string, which is a thing we have read about and not measured, so treat it as a reason to change links as little as possible rather than as a finding of ours.
  4. Test the assembled link, not the feed link. The only reliable check is to click the finished link and confirm you land on the right variant of the right product.

And to a shortener or link-in-bio tool

We measured the un-shortened baseline for our shortener guide earlier this month: of 80 live product URLs requested once each, 77 redirected zero times and the host never changed — but 2 of the 3 that did redirect dropped feed_tp, keyword and network from the query string while still returning 200. A retailer’s own redirect had quietly discarded parameters.

Put that next to tonight’s 62.4% and the risk is concrete rather than folkloric. The common complaint about shorteners is that they “look spammy”. The mechanism that actually costs money is simpler: any hop that rewrites, re-encodes or truncates a query string can remove the part of the link that was doing the work, and 1,046 of these links carry a percent-encoded parameter name (PiID%5B%5D) which is exactly the kind of thing a careless re-encoder mangles.

A cheap test that takes ten minutes. Take three product links from a programme you actually use. Put each one through your shortener or link-in-bio tool. Open both versions side by side and compare the final URL in the address bar, character for character. If a parameter has vanished or changed encoding, you have found it. If nothing changes, you have a result you can trust for that tool and that retailer — which is the pair it depends on.

What to do about it

What we did not measure

We read the URLs the feed published. We did not request them, so we cannot say what any of these parameters does on arrival, which ones the retailer ignores, or what happens when one is removed. We did not test any shortener tonight — the shortener half of that question is still open and is a separate piece of work. And this is one network on one evening: 101 retailers, all US-targeted rows.

Method

Scope, so this can be repeated rather than believed: root shoppingProducts on the CJ product API, filtered on keywords and advertiserCountries: ["US"], four pages of 100 rows per seed, deduplicated on advertiser plus title plus destination link, then post-filtered on each row’s own targetCountry. Asking price is salePrice where a row carries one and price otherwise; peer-to-peer asks of $500 or more and repdigit asks are dropped as seller placeholders. 5,111 US rows, 101 advertisers, 7 September 2026.

The eighteen seeds, published so the pull can be re-run: wool scarf, running shoes, denim jacket, table lamp, throw pillow, cast iron skillet, stand mixer, french press, bluetooth speaker, wireless earbuds, board game, lego set, face serum, dog bed, yoga mat, hiking boots, hardcover book, gold necklace. A URL was counted as carrying a query string if it contains a ?; parameter names were taken as the text before the first = in each &-separated pair, which is how an empty name becomes visible at all.

Keep going

Frequently asked

Do affiliate product links already have tracking on them?

Often. In a pull of 5,111 US product listings on 7 September 2026, 62.4% of destination URLs already carried a query string, most commonly utm_source and a variant selector.

Should I use ? or & when adding a SubID?

Whichever the link needs: & if a query string is already present, ? if it is not. On roughly two links in three from this pull it is &. The only safe check is to open the finished link.

Can a link shortener break an affiliate link?

It can, and the mechanism is parameter loss rather than appearance. We measured retailer redirects dropping feed_tp, keyword and network while still returning HTTP 200. Test your own tool against three real links and compare the final URLs.

What is PiID[] in a product URL?

A variant or option selector used by one large home retailer group. It arrives percent-encoded as PiID%5B%5D and it is functional: remove it and the shopper may land on the wrong option.

How many links were malformed?

815 of 3,191 began their query string with ?& rather than ?, leaving an empty parameter name. Browsers tolerate it; naive link-joining code often does not.

Last verified 7 September 2026 against 5,111 live US product URLs from 101 advertisers, checked for query strings, parameter names and fragments.

How this page was made. Drafted with AI (Claude); not yet independently re-checked. How we work

LinkToLooks Creator Desk — the linking desk’s pages for creators and influencers: how links, disclosure and payouts work on each platform. How we work · published 7 September 2026 · updated 10 October 2026.