Which system made the click ID
gclsrc comes from Search Ads 360, Google's tool for managing search campaigns across several engines at once. It travels with gclid. Google's help page for Search Ads 360 says it adds gclsrc to landing page URLs "to identify if a click ID was generated by Search Ads 360, Google Ads, or another engine." The value is a short code.
The four values
gclsrc=aw.ds: the click ID came from a Google Ads account managed by Search Ads 360.gclsrc=ds: Search Ads 360 generated the click ID, for an account that does not use parallel tracking.gclsrc=3p.ds: the click ID came from a parallel-tracking account on an engine other than Google Ads.gclsrc=with no value: Google Ads made the click ID, but neither Google Analytics support nor the conversion API service is switched on in Search Ads 360.
Parallel tracking means the engine sends the visitor straight to the landing page while the tracking request runs at the same time, instead of routing the visitor through a tracker first.
Why you might see it twice
Search Ads 360 puts gclsrc=aw.ds in the final URL suffix of every clickable item in a Google Ads account it manages. If a click skips parallel tracking and the tracking template uses a placeholder that encodes the landing page URL, such as {escapedlpurl}, Search Ads 360 cannot read the encoded copy and adds a second gclsrc. Google's fix has two parts: use {unescapedlpurl} in tracking templates, and place gclsrc=aw.ds after another parameter in the suffix, for example a=b&gclsrc=aw.ds.
Plain Google Ads auto-tagging does not add it. Google's auto-tagging help page mentions only gclid. A link carrying gclsrc came through an account managed in Search Ads 360.
Before you strip it
A visitor loses nothing. For the advertiser, Search Ads 360 needs gclid and gclsrc to reach a page with a Google tag or a conversion linker tag. If the site removes either one, or changes the values first, Search Ads 360 cannot attribute Floodlight conversions, its conversion tracking, to the ads. Google also lists both names as reserved, so do not reuse gclsrc for a parameter of your own.