[{"data":1,"prerenderedAt":584},["ShallowReactive",2],{"navigation_docs":3,"-concepts-privacy":233,"-concepts-privacy-surround":579},[4,36,67,122,187,207,223],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":35},"Getting started","i-lucide-rocket","\u002Fgetting-started","1.getting-started",[10,15,20,25,30],{"title":11,"path":12,"stem":13,"icon":14},"What is Rabolic","\u002Fgetting-started\u002Fintroduction","1.getting-started\u002F1.introduction","i-lucide-book-open",{"title":16,"path":17,"stem":18,"icon":19},"Quickstart","\u002Fgetting-started\u002Fquickstart","1.getting-started\u002F2.quickstart","i-lucide-zap",{"title":21,"path":22,"stem":23,"icon":24},"Keys","\u002Fgetting-started\u002Fkeys","1.getting-started\u002F3.keys","i-lucide-key-round",{"title":26,"path":27,"stem":28,"icon":29},"Setup CLI","\u002Fgetting-started\u002Fsetup-cli","1.getting-started\u002F4.setup-cli","i-lucide-terminal",{"title":31,"path":32,"stem":33,"icon":34},"Trial","\u002Fgetting-started\u002Ftrial","1.getting-started\u002F5.trial","i-lucide-hourglass",false,{"title":37,"icon":38,"path":39,"stem":40,"children":41,"page":35},"SDKs and API","i-lucide-code","\u002Fsdks","2.sdks",[42,47,52,57,62],{"title":43,"path":44,"stem":45,"icon":46},"Web","\u002Fsdks\u002Fweb","2.sdks\u002F1.web","i-lucide-globe",{"title":48,"path":49,"stem":50,"icon":51},"React Native and Expo","\u002Fsdks\u002Freact-native","2.sdks\u002F2.react-native","i-simple-icons-react",{"title":53,"path":54,"stem":55,"icon":56},"Flutter","\u002Fsdks\u002Fflutter","2.sdks\u002F3.flutter","i-simple-icons-flutter",{"title":58,"path":59,"stem":60,"icon":61},"Node.js","\u002Fsdks\u002Fnode","2.sdks\u002F4.node","i-simple-icons-nodedotjs",{"title":63,"path":64,"stem":65,"icon":66},"Ingest HTTP API","\u002Fsdks\u002Fhttp-api","2.sdks\u002F5.http-api","i-lucide-send",{"title":68,"icon":69,"path":70,"stem":71,"children":72,"page":35},"Concepts","i-lucide-lightbulb","\u002Fconcepts","3.concepts",[73,77,82,87,92,97,102,107,112,117],{"title":74,"path":75,"stem":76,"icon":19},"Events","\u002Fconcepts\u002Fevents","3.concepts\u002F01.events",{"title":78,"path":79,"stem":80,"icon":81},"Identity","\u002Fconcepts\u002Fidentity","3.concepts\u002F02.identity","i-lucide-fingerprint",{"title":83,"path":84,"stem":85,"icon":86},"Sessions","\u002Fconcepts\u002Fsessions","3.concepts\u002F03.sessions","i-lucide-activity",{"title":88,"path":89,"stem":90,"icon":91},"Key events and conversions","\u002Fconcepts\u002Fkey-events-and-conversions","3.concepts\u002F04.key-events-and-conversions","i-lucide-star",{"title":93,"path":94,"stem":95,"icon":96},"Funnels","\u002Fconcepts\u002Ffunnels","3.concepts\u002F05.funnels","i-lucide-filter",{"title":98,"path":99,"stem":100,"icon":101},"Journeys","\u002Fconcepts\u002Fjourneys","3.concepts\u002F06.journeys","i-lucide-route",{"title":103,"path":104,"stem":105,"icon":106},"Retention","\u002Fconcepts\u002Fretention","3.concepts\u002F07.retention","i-lucide-repeat",{"title":108,"path":109,"stem":110,"icon":111},"Revenue and attribution","\u002Fconcepts\u002Frevenue-and-attribution","3.concepts\u002F08.revenue-and-attribution","i-lucide-wallet",{"title":113,"path":114,"stem":115,"icon":116},"Consent and privacy","\u002Fconcepts\u002Fprivacy","3.concepts\u002F09.privacy","i-lucide-shield-check",{"title":118,"path":119,"stem":120,"icon":121},"Data retention","\u002Fconcepts\u002Fdata-retention","3.concepts\u002F10.data-retention","i-lucide-archive",{"title":123,"icon":124,"path":125,"stem":126,"children":127,"page":35},"Using the dashboard","i-lucide-layout-dashboard","\u002Fdashboard","4.dashboard",[128,133,138,143,146,151,154,157,160,163,167,172,177,182],{"title":129,"path":130,"stem":131,"icon":132},"Overview","\u002Fdashboard\u002Foverview","4.dashboard\u002F01.overview","i-lucide-gauge",{"title":134,"path":135,"stem":136,"icon":137},"Live","\u002Fdashboard\u002Flive","4.dashboard\u002F02.live","i-lucide-radio",{"title":139,"path":140,"stem":141,"icon":142},"Analytics","\u002Fdashboard\u002Fanalytics","4.dashboard\u002F03.analytics","i-lucide-bar-chart-3",{"title":74,"path":144,"stem":145,"icon":19},"\u002Fdashboard\u002Fevents","4.dashboard\u002F04.events",{"title":147,"path":148,"stem":149,"icon":150},"Users","\u002Fdashboard\u002Fusers","4.dashboard\u002F05.users","i-lucide-users",{"title":83,"path":152,"stem":153,"icon":86},"\u002Fdashboard\u002Fsessions","4.dashboard\u002F06.sessions",{"title":93,"path":155,"stem":156,"icon":96},"\u002Fdashboard\u002Ffunnels","4.dashboard\u002F07.funnels",{"title":98,"path":158,"stem":159,"icon":101},"\u002Fdashboard\u002Fjourneys","4.dashboard\u002F08.journeys",{"title":103,"path":161,"stem":162,"icon":106},"\u002Fdashboard\u002Fretention","4.dashboard\u002F09.retention",{"title":164,"path":165,"stem":166,"icon":111},"Revenue","\u002Fdashboard\u002Frevenue","4.dashboard\u002F10.revenue",{"title":168,"path":169,"stem":170,"icon":171},"Alerts","\u002Fdashboard\u002Falerts","4.dashboard\u002F11.alerts","i-lucide-bell",{"title":173,"path":174,"stem":175,"icon":176},"Integrations","\u002Fdashboard\u002Fintegrations","4.dashboard\u002F12.integrations","i-lucide-plug-zap",{"title":178,"path":179,"stem":180,"icon":181},"Project settings","\u002Fdashboard\u002Fproject-settings","4.dashboard\u002F13.project-settings","i-lucide-settings",{"title":183,"path":184,"stem":185,"icon":186},"Organizations and roles","\u002Fdashboard\u002Forganizations-and-roles","4.dashboard\u002F14.organizations-and-roles","i-lucide-building-2",{"title":188,"icon":189,"path":190,"stem":191,"children":192,"page":35},"Plans and billing","i-lucide-credit-card","\u002Fbilling","5.billing",[193,198,202],{"title":194,"path":195,"stem":196,"icon":197},"Plans","\u002Fbilling\u002Fplans","5.billing\u002F1.plans","i-lucide-tags",{"title":199,"path":200,"stem":201,"icon":132},"Usage and overage","\u002Fbilling\u002Fusage-and-overage","5.billing\u002F2.usage-and-overage",{"title":203,"path":204,"stem":205,"icon":206},"Read-only and deletion","\u002Fbilling\u002Fread-only-and-deletion","5.billing\u002F3.read-only-and-deletion","i-lucide-lock",{"title":208,"icon":209,"path":210,"stem":211,"children":212,"page":35},"Limits and troubleshooting","i-lucide-life-buoy","\u002Flimits","6.limits",[213,218],{"title":214,"path":215,"stem":216,"icon":217},"Limits","\u002Flimits\u002Flimits","6.limits\u002F1.limits","i-lucide-ruler",{"title":219,"path":220,"stem":221,"icon":222},"Events not showing","\u002Flimits\u002Ftroubleshooting","6.limits\u002F2.troubleshooting","i-lucide-search-check",{"title":224,"icon":225,"path":226,"stem":227,"children":228,"page":35},"AI connector","i-lucide-sparkles","\u002Fai","7.ai",[229],{"title":224,"path":230,"stem":231,"icon":232},"\u002Fai\u002Fconnector","7.ai\u002F1.connector","i-lucide-plug",{"id":234,"title":113,"body":235,"description":570,"extension":571,"links":572,"meta":573,"navigation":574,"path":114,"seo":575,"stem":115,"__hash__":578},"docs\u002F3.concepts\u002F09.privacy.md",{"type":236,"value":237,"toc":560},"minimark",[238,243,247,260,263,267,288,291,295,306,310,313,365,387,442,446,469,480,484,512,516,519,540,543,547,556],[239,240,242],"h2",{"id":241},"what-is-collected","What is collected",[244,245,246],"p",{},"By default, the SDKs send:",[248,249,250,254,257],"ul",{},[251,252,253],"li",{},"the events and properties you send, and the automatic events;",[251,255,256],{},"the platform, app version, device type and model, OS, browser, locale, time zone and screen size;",[251,258,259],{},"on the web, the page URL, path, title and referrer, the campaign parameters and the user agent.",[244,261,262],{},"From the request, Rabolic adds the country, region and city.",[239,264,266],{"id":265},"what-is-never-collected","What is never collected",[248,268,269,276,279,282,285],{},[251,270,271,275],{},[272,273,274],"strong",{},"IP addresses."," Ingest uses the IP address to look up the country, region and city, to check the project's internal-traffic ranges and to count per-IP rate limits (a counter that expires within 90 seconds). Then it drops it. It is never stored with events.",[251,277,278],{},"Advertising ids (IDFA, GAID), and on Android the Android id.",[251,280,281],{},"Form field values and the clipboard.",[251,283,284],{},"Precise location.",[251,286,287],{},"Device fingerprints.",[244,289,290],{},"Events sent with a secret key get no location lookup.",[239,292,294],{"id":293},"location","Location",[244,296,297,298,305],{},"Locations come from ",[299,300,304],"a",{"href":301,"rel":302},"https:\u002F\u002Fdb-ip.com",[303],"nofollow","DB-IP","'s IP to City Lite database (CC BY 4.0), which runs on Rabolic's own servers. The IP address isn't sent to anyone.",[239,307,309],{"id":308},"consent","Consent",[244,311,312],{},"Every SDK has three consent states:",[314,315,316,329],"table",{},[317,318,319],"thead",{},[320,321,322,326],"tr",{},[323,324,325],"th",{},"State",[323,327,328],{},"What the SDK does",[330,331,332,345,355],"tbody",{},[320,333,334,342],{},[335,336,337,341],"td",{},[338,339,340],"code",{},"granted"," (default)",[335,343,344],{},"Tracks and sends normally",[320,346,347,352],{},[335,348,349],{},[338,350,351],{},"pending",[335,353,354],{},"Keeps events in memory only and sends nothing. On the web, it also writes no cookie and nothing to storage",[320,356,357,362],{},[335,358,359],{},[338,360,361],{},"denied",[335,363,364],{},"Drops everything and clears the queue. On the web, it also removes the cookie and stored ids",[244,366,367,368,370,371,374,375,378,379,382,383,386],{},"Start in ",[338,369,351],{}," until your consent banner answers, then call ",[338,372,373],{},"setConsent('granted')"," or ",[338,376,377],{},"setConsent('denied')",". ",[338,380,381],{},"optIn()"," and ",[338,384,385],{},"optOut()"," are short for the same.",[388,389,394],"pre",{"className":390,"code":391,"language":392,"meta":393,"style":393},"language-ts shiki shiki-themes github-light-default github-light-default github-dark-default","rabolic.init({ projectKey: 'rb_pub_…', consent: 'pending' })\nrabolic.setConsent('granted')\n","ts","",[338,395,396,425],{"__ignoreMap":393},[397,398,401,405,409,412,416,419,422],"span",{"class":399,"line":400},"line",1,[397,402,404],{"class":403},"s_bOF","rabolic.",[397,406,408],{"class":407},"sd69k","init",[397,410,411],{"class":403},"({ projectKey: ",[397,413,415],{"class":414},"s-BGO","'rb_pub_…'",[397,417,418],{"class":403},", consent: ",[397,420,421],{"class":414},"'pending'",[397,423,424],{"class":403}," })\n",[397,426,428,430,433,436,439],{"class":399,"line":427},2,[397,429,404],{"class":403},[397,431,432],{"class":407},"setConsent",[397,434,435],{"class":403},"(",[397,437,438],{"class":414},"'granted'",[397,440,441],{"class":403},")\n",[239,443,445],{"id":444},"cookieless-mode-web","Cookieless mode (web)",[388,447,449],{"className":390,"code":448,"language":392,"meta":393,"style":393},"rabolic.init({ projectKey: 'rb_pub_…', persistence: 'memory' })\n",[338,450,451],{"__ignoreMap":393},[397,452,453,455,457,459,461,464,467],{"class":399,"line":400},[397,454,404],{"class":403},[397,456,408],{"class":407},[397,458,411],{"class":403},[397,460,415],{"class":414},[397,462,463],{"class":403},", persistence: ",[397,465,466],{"class":414},"'memory'",[397,468,424],{"class":403},[244,470,471,472,475,476,479],{},"With ",[338,473,474],{},"persistence: 'memory'",", the web SDK keeps the anonymous id and session in memory only, for one page lifetime. It writes no cookie and nothing to ",[338,477,478],{},"localStorage",". Each page load is a new visitor, so visitor and session counts read higher than they are.",[239,481,483],{"id":482},"sensitive-properties","Sensitive properties",[244,485,486,487,490,491,490,494,490,497,490,500,503,504,507,508,511],{},"Rabolic removes property keys named like secrets (",[338,488,489],{},"password",", ",[338,492,493],{},"card_number",[338,495,496],{},"cvv",[338,498,499],{},"iban",[338,501,502],{},"ssn"," and similar) without rejecting the event. Add your own in ",[272,505,506],{},"Project settings → Privacy & data → Sensitive property blocking",". See ",[299,509,74],{"href":510},"\u002Fconcepts\u002Fevents#properties-rabolic-removes",".",[239,513,515],{"id":514},"privacy-requests","Privacy requests",[244,517,518],{},"Owners and admins can export or delete one person's data:",[248,520,521,535],{},[251,522,523,524,527,528,374,531,534],{},"in ",[272,525,526],{},"Project settings → Privacy & data → Data subject requests",": find the person by user id, email or anonymous id, then ",[272,529,530],{},"Export data",[272,532,533],{},"Delete person",";",[251,536,537,538,511],{},"or from the ⋯ menu on the person's page in ",[272,539,147],{},[244,541,542],{},"The export is a JSON file of the person's profile, identities and events. Deletion removes their profile, identities, events and transactions, including people merged into them. Both work even while the organization is read-only. Backups keep deleted data until they expire.",[239,544,546],{"id":545},"where-data-is-stored","Where data is stored",[244,548,549,550,553,554,511],{},"Rabolic runs in one EU region: Germany. Each project's ",[272,551,552],{},"Privacy & data"," settings show it (\"EU — Germany\") with the plan's retention. See ",[299,555,118],{"href":119},[557,558,559],"style",{},"html pre.shiki code .s_bOF, html code.shiki .s_bOF{--shiki-light:#1F2328;--shiki-default:#1F2328;--shiki-dark:#E6EDF3}html pre.shiki code .sd69k, html code.shiki .sd69k{--shiki-light:#8250DF;--shiki-default:#8250DF;--shiki-dark:#D2A8FF}html pre.shiki code .s-BGO, html code.shiki .s-BGO{--shiki-light:#0A3069;--shiki-default:#0A3069;--shiki-dark:#A5D6FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":393,"searchDepth":427,"depth":427,"links":561},[562,563,564,565,566,567,568,569],{"id":241,"depth":427,"text":242},{"id":265,"depth":427,"text":266},{"id":293,"depth":427,"text":294},{"id":308,"depth":427,"text":309},{"id":444,"depth":427,"text":445},{"id":482,"depth":427,"text":483},{"id":514,"depth":427,"text":515},{"id":545,"depth":427,"text":546},"What Rabolic collects and never collects, IP addresses (never stored), location from DB-IP, consent states, cookieless mode, sensitive properties and privacy requests.","md",null,{},{"icon":116},{"title":576,"description":577},"Consent, privacy and cookieless mode","What Rabolic collects and never collects, how IP addresses are used and never stored, location from DB-IP, granted, pending and denied consent, cookieless mode, sensitive properties and privacy requests.","ym3YHo6xjcZjqmL_JhLmbWl2B1PBhQcGe-pZDCnyzvM",[580,582],{"title":108,"path":109,"stem":110,"description":581,"icon":111,"children":-1},"Where Rabolic revenue comes from (Dodo Payments webhooks or your server with a secret key), the one-revenue-source rule, currency conversion, linking payments to people, and first- and last-touch attribution.",{"title":118,"path":119,"stem":120,"description":583,"icon":121,"children":-1},"How long Rabolic keeps events, sessions, transactions and people on each plan (12, 24 or 36 months), what happens on a plan change, and when data is deleted.",1794242364670]