[{"data":1,"prerenderedAt":212},["ShallowReactive",2],{"docs-nav-\u002Fdocs\u002Faccount-sharing\u002Fsignals\u002Fconcurrency":3,"\u002Fdocs\u002Faccount-sharing\u002Fsignals\u002Fconcurrency":92},[4],{"title":5,"path":6,"stem":7,"children":8,"page":46},"Account Sharing","\u002Fdocs\u002Faccount-sharing","1.docs\u002F2.account sharing",[9,13,17,21,47,72],{"title":10,"path":11,"stem":12},"How it works","\u002Fdocs\u002Faccount-sharing\u002Fhow-account-sharing-prevention-works","1.docs\u002F2.account sharing\u002F0.How account sharing prevention works",{"title":14,"path":15,"stem":16},"Quick start","\u002Fdocs\u002Faccount-sharing\u002Fquick-start","1.docs\u002F2.account sharing\u002F1.Quick start",{"title":18,"path":19,"stem":20},"Events & actions","\u002Fdocs\u002Faccount-sharing\u002Flisten-to-events","1.docs\u002F2.account sharing\u002F2.Listen to events",{"title":22,"path":23,"stem":24,"children":25,"page":46},"Concepts","\u002Fdocs\u002Faccount-sharing\u002Fconcepts","1.docs\u002F2.account sharing\u002F4.Concepts",[26,30,34,38,42],{"title":27,"path":28,"stem":29},"Challenges","\u002Fdocs\u002Faccount-sharing\u002Fconcepts\u002Fchallenges","1.docs\u002F2.account sharing\u002F4.Concepts\u002F0.challenges",{"title":31,"path":32,"stem":33},"Device limits","\u002Fdocs\u002Faccount-sharing\u002Fconcepts\u002Fconfigure-device-limits","1.docs\u002F2.account sharing\u002F4.Concepts\u002F1.configure-device-limits",{"title":35,"path":36,"stem":37},"Groups","\u002Fdocs\u002Faccount-sharing\u002Fconcepts\u002Fgroups","1.docs\u002F2.account sharing\u002F4.Concepts\u002F2.groups",{"title":39,"path":40,"stem":41},"Automatically detach devices","\u002Fdocs\u002Faccount-sharing\u002Fconcepts\u002Fautomatically-detaching-devices","1.docs\u002F2.account sharing\u002F4.Concepts\u002F3.automatically-detaching-devices",{"title":43,"path":44,"stem":45},"Excluded Devices","\u002Fdocs\u002Faccount-sharing\u002Fconcepts\u002Fexcluded-devices","1.docs\u002F2.account sharing\u002F4.Concepts\u002F4.excluded-devices",false,{"title":48,"path":49,"stem":50,"children":51,"page":46},"Advanced","\u002Fdocs\u002Faccount-sharing\u002Fadvanced","1.docs\u002F2.account sharing\u002F8.Advanced",[52,56,60,64,68],{"title":53,"path":54,"stem":55},"Signing the user out","\u002Fdocs\u002Faccount-sharing\u002Fadvanced\u002Fsigning-the-user-out","1.docs\u002F2.account sharing\u002F8.Advanced\u002F1.Signing the user out",{"title":57,"path":58,"stem":59},"Webhooks","\u002Fdocs\u002Faccount-sharing\u002Fadvanced\u002Fwebhooks","1.docs\u002F2.account sharing\u002F8.Advanced\u002F2.webhooks",{"title":61,"path":62,"stem":63},"Metadata","\u002Fdocs\u002Faccount-sharing\u002Fadvanced\u002Fusing-metadata","1.docs\u002F2.account sharing\u002F8.Advanced\u002F3.Using metadata",{"title":65,"path":66,"stem":67},"When to attach","\u002Fdocs\u002Faccount-sharing\u002Fadvanced\u002Fwhen-to-call-the-attach-function","1.docs\u002F2.account sharing\u002F8.Advanced\u002F5.When to call the attach function",{"title":69,"path":70,"stem":71},"Tracking conversions","\u002Fdocs\u002Faccount-sharing\u002Fadvanced\u002Ftracking-conversions","1.docs\u002F2.account sharing\u002F8.Advanced\u002F8.Tracking conversions",{"title":73,"path":74,"stem":75,"children":76,"page":46},"Signals","\u002Fdocs\u002Faccount-sharing\u002Fsignals","1.docs\u002F2.account sharing\u002F9.Signals",[77,81,85,89],{"title":78,"path":79,"stem":80},"High velocity","\u002Fdocs\u002Faccount-sharing\u002Fsignals\u002Fhigh-velocity","1.docs\u002F2.account sharing\u002F9.Signals\u002F1.High velocity",{"title":82,"path":83,"stem":84},"Impossible travel","\u002Fdocs\u002Faccount-sharing\u002Fsignals\u002Fimpossible-travel","1.docs\u002F2.account sharing\u002F9.Signals\u002F2.Impossible travel",{"title":86,"path":87,"stem":88},"Concurrency","\u002Fdocs\u002Faccount-sharing\u002Fsignals\u002Fconcurrency","1.docs\u002F2.account sharing\u002F9.Signals\u002F3.Concurrency",{"title":31,"path":90,"stem":91},"\u002Fdocs\u002Faccount-sharing\u002Fsignals\u002Fdevice-limits","1.docs\u002F2.account sharing\u002F9.Signals\u002F4.Device limits",{"id":93,"title":86,"body":94,"description":200,"extension":206,"meta":207,"navigation":208,"path":87,"seo":209,"sitemap":210,"stem":88,"__hash__":211},"docs\u002F1.docs\u002F2.account sharing\u002F9.Signals\u002F3.Concurrency.md",{"type":95,"value":96,"toc":199},"minimark",[97,123,128,132,135,164,168,171,175,186,189,192],[98,99,104,105,116,117],"h1",{"className":100,"id":103},[101,102],"flex","items-center","concurrency","\n  Concurrency\n  ",[106,107],"img",{"src":108,"className":109},"\u002Fimg\u002Fconcurrency_dark.svg",[110,111,112,113,114,115],"w-10","h-10","m-0","ml-4","inline-block","dark:hidden","\n  ",[106,118],{"src":119,"className":120},"\u002Fimg\u002Fconcurrency_light.svg",[110,111,112,113,121,122],"hidden","dark:inline-block",[124,125,127],"h2",{"id":126},"what-is-a-concurrency-signal","What is a concurrency signal?",[129,130,131],"p",{},"A concurrency signal occurs when a user has two or more devices of the same type actively connected to a project at the exact same time from different IP addresses.",[129,133,134],{},"That definition is very nuanced, so let's break it down:",[136,137,138,146,152,158],"ul",{},[139,140,141,145],"li",{},[142,143,144],"strong",{},"Two or more devices",": The user must have two or more devices connected.",[139,147,148,151],{},[142,149,150],{},"Same device type",": If a user has a computer and a phone actively connected, even if they are not the same IP, we err on the side of caution and assume it could be the same person. But if two iPhones or two computers are connected at the same time from different IP addresses, it is a concurrency signal.",[139,153,154,157],{},[142,155,156],{},"Active connection",": Rupt uses very light active connection detection, so if the connections are not active at the exact same time, it is not a concurrency signal.",[139,159,160,163],{},[142,161,162],{},"Different IP addresses",": The devices must be connected from different IP addresses, if the same IP is used on multiple devices at the same time, it is not a concurrency signal.",[124,165,167],{"id":166},"how-does-it-work","How does it work?",[129,169,170],{},"When more than one device is actively connected to a single account at the same time, it is considered a concurrency signal.",[124,172,174],{"id":173},"how-can-i-take-action","How can I take action?",[129,176,177,178,185],{},"For automated concurrency enforcement, you can challenge the account in question by enabling the ",[179,180,184],"a",{"href":181,"rel":182},"https:\u002F\u002Fdashboard.rupt.dev\u002Fsettings\u002Fchallenge",[183],"nofollow","environment setting"," for your project.",[129,187,188],{},"If you want to manually take action on a concurrency signal, you can navigate to the account details page for the account in question and review the offending devices to determine if they are fraudulent or abusive.",[129,190,191],{},"Following your review, if you find that the devices are indeed fraudulent or abusive, you can take action by blocking the devices or by enforcing challenges on that account.",[129,193,194,195,198],{},"For more information on challenges, see the ",[179,196,197],{"href":28},"challenges"," documentation.",{"title":200,"searchDepth":201,"depth":201,"links":202},"",2,[203,204,205],{"id":126,"depth":201,"text":127},{"id":166,"depth":201,"text":167},{"id":173,"depth":201,"text":174},"md",{},true,{"title":86,"description":200},{"loc":87},"TxH0_PP5OX5XCjgOD06EG6GGej_57-rZO0Jhwcl1LF4",1776716927279]