seazon / FeedMe

The documents and forum of FeedMe
1.13k stars 27 forks source link

Strip tracking params before sharing links #717

Open gudvinr opened 1 week ago

gudvinr commented 1 week ago

Is your feature request related to a problem? Please describe.

Many sites add tracking tags as query arguments. Notably, utm_* tags google uses, fbclid facebook uses, etc.
While browsers may strip these either natively or using extensions, other apps can't. So if you send links from RSS reader, you might end up with horrendous links

Describe the solution you'd like

Parameters can be stripped. I understand that manual parameter maintenance can be tedious but fortunately, there are third-party solutions available.

Firefox, for example, does this with ETP enabled (which is by default). Arguments are supplied from this URL. However, list is rather short and doesn't cover many options.

There is also an option to use filters from adguard/ublock origin which provide $removeparam option. uBlock origin serves "AdGuard URL Tracking filter" from here which can be seen in their repo.

Implementing parser for generic ad-filter lists would be suboptimal but rejecting everything other than strings starting with $removeparam and extracting arguments with /^\$removeparam=([^,\n])+$/ gives this:

list of tracking params ``` cstrackid btag jmtyClId Tcsack vsm_type vsm_cid vsm_pid cjdata cjevent /^at_custom/ at_campaign at_campaign_type at_creation at_emailtype at_link at_link_id at_link_origin at_link_type at_medium at_ptr_name at_recipient_id at_recipient_list at_send_date _ope af_xp af_ad af_adset af_click_lookback af_force_deeplink is_retargeting dclid sms_click sms_source sms_uph ttclid spot_im_redirect_source mt_link_id iclid srsltid user_email_address _ga _gl cm_me cm_cr /^cm_mmc/ sscid rtkcid cuid ir_campaignid ir_adid irclickid ir_partnerid __io_lv _io_session_id asgtbndr ymid tduid gci pk_vid mindbox-click-id famad_xuid twclid erid cx_click cx_recsOrder cx_recsWidget mkt_tok mindbox-message-key _kx s_cid awc _hsmi __hsfp __hssc __hstc _hsenc hsa_acc hsa_ad hsa_cam hsa_grp hsa_kw hsa_la hsa_mt hsa_net hsa_ol hsa_src hsa_tgt hsa_ver hsCtaTracking ysclid yclid aiad_clid _sgm_campaign _sgm_source _sgm_action mc_eid maf _clde _cldee wt_mc oprtrack xtor msclkid vero_conv vero_id itm_source itm_medium itm_campaign itm_content itm_term utm_adgroup utm_ad utm_affiliate utm_brand utm_campaign utm_campaignid utm_channel utm_cid utm_content utm_creative utm_emcid utm_emmid utm_id utm_id_ utm_keyword utm_medium utm_name utm_place utm_product utm_pubreferrer utm_reader utm_referrer utm_serial utm_servlet utm_session utm_siteid utm_social utm_social-type utm_source utm_source_platform utm_supplier utm_swu utm_term utm_umguk utm_userid utm_viz_id gad_source gbraid wbraid gclsrc gclid usqp dpg_source dpg_campaign dpg_medium dpg_content admitad_uid gps_adid unicorn_click_id adjust_creative adjust_tracker_limit adjust_tracker adjust_adgroup adjust_campaign adjust_referrer external_click_id bsft_clkid bsft_eid bsft_mid bsft_uid bsft_aaid bsft_ek mtm_campaign mtm_cid mtm_content mtm_group mtm_keyword mtm_medium mtm_placement mtm_source pk_campaign pk_medium pk_source _branch_referrer _branch_match_id vc_lpp ml_subscriber ml_subscriber_hash rb_clickid oly_anon_id oly_enc_id ebisAdID wickedid irgwc fbclid adfrom nx_source _zucks_suid cmpid guccounter guce_referrer guce_referrer_sig _openstat action_object_map action_ref_map action_type_map fb_action_ids fb_action_types fb_comment_id fb_ref fb_source ```

These are domain-agnostic parameters which are constructed from adguard's general_url.txt.

Further improvements might include extending filter to also parse domain-specific rules as /^\$removeparam=([^,])+,domain=(.+)$/

List can be added as URL param to the settings so users might use their own if necessary.

seazon commented 6 days ago

very detailed proposal