Five slots, 100 characters each
AppsFlyer, the mobile attribution platform, gives every attribution link five spare fields, af_sub1 through af_sub5. Its parameter table describes each one as an "optional custom parameter defined by the advertiser," a string of up to 100 characters. AppsFlyer calls them Subscriber Parameters and says they "can be used to record any useful KPIs." The name says nothing about the contents, so only whoever built the link knows what af_sub1 means on it.
AppsFlyer's own examples
In AppsFlyer's sample link, af_sub1=1.5&af_sub2=USD&af_sub3=burst_campaign spreads a number, a currency code and a campaign label across three slots. In AppsFlyer's FAQ, Linda, a mobile marketer at a ride-hailing app called Luber, wants to know which of three creative colors brings in more installs. She adds &af_sub3=blue to the links on every blue ad across all her non-self-reporting media sources, does the same for yellow and red, then compares the three values in the raw data reports and keeps the color that converts best.
af_sub versus a made-up parameter
An advertiser can also bolt on any key they like, such as AppsFlyer's example my_custom_param=my_custom_value. AppsFlyer says custom parameters "don't appear in raw data" and have to be retrieved through its get conversion data SDK API, while af_sub values "get parsed and appear in the raw data report," which makes them usable for grouping and filtering.
Characters, case and your copy of the link
AppsFlyer bans a long list of characters from parameter keys and values, among them ; * ! @ # ? $ : = + and brackets, and it caps the whole URL at 2,000 characters. Casing has to stay consistent, since AppsFlyer warns that mixed casing across links can cause data discrepancies. For the person tapping the link, af_sub1 holds whatever label the advertiser chose, and deleting it only drops that label from their report. The media source itself is in pid, and the link decoder lists the other parameters it recognizes.