[{"data":1,"prerenderedAt":173},["ShallowReactive",2],{"guide-article-\u002Fguide\u002Fspam-filter-rules":3,"guide-neighbors-\u002Fguide\u002Fspam-filter-rules":149},{"id":4,"title":5,"author":6,"body":7,"category":136,"description":137,"extension":138,"language":139,"meta":140,"navigation":141,"order":142,"path":143,"published":144,"readingMinutes":129,"seo":145,"stem":146,"takeaways":147,"updated":144,"__hash__":148},"guides\u002Fguide\u002Fspam-filter-rules.md","Keyword, repeated-message and anti-flood rules","TGDog",{"type":8,"value":9,"toc":124},"minimark",[10,15,19,23,26,30,37,40,43,47,50,54,91,95,106,110],[11,12,14],"h2",{"id":13},"match-the-language-that-matters","Match the language that matters.",[16,17,18],"p",{},"Enter one keyword per line, up to 30 terms with at most 80 characters each. A contained keyword can save matching evidence from a single message. Optional fuzzy matching detects text variations with a configurable similarity threshold from 0.70 to 0.98; the default is 0.85.",[11,20,22],{"id":21},"fuzzy-matching-limits","Fuzzy matching limits",[16,24,25],{},"Terms shorter than four characters use containment matching only. Fuzzy checks are limited to the first 500 characters of each message and a per-group computational budget. Similarity is not a spam probability, and limited budgets may miss matches.",[11,27,29],{"id":28},"a-containment-match-example","A containment match example",[16,31,32,33],{},"Keyword: ",[34,35,36],"code",{},"free giveaway",[16,38,39],{},"Message: “Join our free giveaway today.”",[16,41,42],{},"Evidence saved in Observe mode",[11,44,46],{"id":45},"repetition-near-duplicates-and-anti-flood","Repetition, near duplicates and anti-flood",[16,48,49],{},"Repeated messages, near duplicates, and short bursts of posting have separate detection settings. Enabled detection kinds can use the group’s chosen Observe, Block or Remove action; leave Observe selected if you only want evidence.",[11,51,53],{"id":52},"recommended-presets-by-community-type","Recommended presets by community type",[55,56,57,79,85],"ul",{},[58,59,60,64,65,68,69,68,72,68,75,78],"li",{},[61,62,63],"strong",{},"Web3 & Crypto groups",": Target phishing phrases (",[34,66,67],{},"airdrop",", ",[34,70,71],{},"claim reward",[34,73,74],{},"seed phrase",[34,76,77],{},"presale","), enable near-duplicate checks, and set strict flood limits (e.g. 3 messages within 5s). Start in Observe mode, then switch to Block for confirmed malicious links.",[58,80,81,84],{},[61,82,83],{},"Developer communities",": Use targeted marketing phrases; keep repetition thresholds relaxed (5+ occurrences) to avoid flagging shared code snippets or error logs; maintain whitelists for maintainers.",[58,86,87,90],{},[61,88,89],{},"Local & Hobby groups",": Add recurring ad expressions; enable 60-second repeated-message detection; use Observe mode to test rules before switching to Remove for persistent ad accounts.",[11,92,94],{"id":93},"check-your-setup","Check your setup",[55,96,97,100,103],{},[58,98,99],{},"Start with narrow terms and Observe mode.",[58,101,102],{},"Similarity scores are not spam probabilities.",[58,104,105],{},"Review repeated-message and anti-flood settings separately.",[11,107,109],{"id":108},"where-to-go-next","Where to go next",[16,111,112,113,118,119,123],{},"If you are setting up TGDog for the first time, follow the ",[114,115,117],"a",{"href":116},"\u002Fhow-to-use\u002F","complete How to use tutorial",". For a deeper explanation of another topic, return to the ",[114,120,122],{"href":121},"\u002Fguide\u002F","Guide library",".",{"title":125,"searchDepth":126,"depth":126,"links":127},"",3,[128,130,131,132,133,134,135],{"id":13,"depth":129,"text":14},2,{"id":21,"depth":129,"text":22},{"id":28,"depth":129,"text":29},{"id":45,"depth":129,"text":46},{"id":52,"depth":129,"text":53},{"id":93,"depth":129,"text":94},{"id":108,"depth":129,"text":109},"rules-and-actions","Tune your Telegram spam filter with matching limits, thresholds and evidence.","md","en",{},true,4,"\u002Fguide\u002Fspam-filter-rules","2026-10-09",{"title":5,"description":137},"guide\u002Fspam-filter-rules",[99,102,105],"JjnJ2dhOB6vyg2IjkAt-L3WUYUDXJpQ4GkTnjy-wmWg",[150,154,157,160,161,165,169],{"path":151,"title":152,"order":153},"\u002Fguide\u002Fcreate-bot","Create a Telegram bot with BotFather",1,{"path":155,"title":156,"order":129},"\u002Fguide\u002Fconnect-bot","Connect your bot: polling, webhooks and Chrome",{"path":158,"title":159,"order":126},"\u002Fguide\u002Fgroup-rules","Supergroups, admin permissions and whitelists",{"path":143,"title":5,"order":142},{"path":162,"title":163,"order":164},"\u002Fguide\u002Fmember-actions","Observe, Block and Remove: what each action does",5,{"path":166,"title":167,"order":168},"\u002Fguide\u002Fmessage-evidence","Message evidence, local storage and retention",6,{"path":170,"title":171,"order":172},"\u002Fguide\u002Ftroubleshooting","Troubleshoot missing updates and Telegram API errors",7,1791598870645]