Skip to content

Commit 026e39c

Browse files
authored
Merge pull request #5333 from segmentio/oscb/ajs-storage
Add AJS Storage Priority Config
2 parents 45f8f2d + 8f2b6e6 commit 026e39c

File tree

1 file changed

+36
-1
lines changed

1 file changed

+36
-1
lines changed

src/connections/sources/catalog/libraries/website/javascript/cookie-validity-update.md

Lines changed: 36 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -128,7 +128,7 @@ Analytics.js tries to detect when a page is about to be closed and saves pending
128128

129129
When `disableClientPersistence` is set to `true`, Analytics.js won't store any pending events into `localStorage`.
130130

131-
## Client side cookie methods (get, set, clear)
131+
## Client-side cookie methods (get, set, clear)
132132

133133
To access or assign a value to a cookie outside of the standard Segment methods (track/identify/page/group), you can use the following methods. To access the cookie's value, pass an empty `()` at the end of the method. To assign the value, include the string value inside those parenthesis, for example, `('123-abc')`. To clear or remove the value for a specific field, pass in an empty value of its type. For example, for string `('')`, or for object `({})`.
134134

@@ -139,3 +139,38 @@ To access or assign a value to a cookie outside of the standard Segment methods
139139
| `user traits` | `ajs_user_traits` | `analytics.user().traits();` | `window.localStorage.ajs_user_traits` | `analytics.user().traits({firstName:'Jane'});` | `analytics.user().traits({});` |
140140
| `groupId` | `ajs_group_id` | `analytics.group().id();` | `window.localStorage.ajs_group_id` | `analytics.group().id('777-qwe-098');` | `analytics.group().id('');` |
141141
| `group traits` | `ajs_group_properties` | `analytics.group().traits()` | `window.localStorage.ajs_group_properties` | `analytics.group().traits({name:'Segment'})` | `analytics.group().traits({})` |
142+
143+
## Storage Priority
144+
145+
By default, Analytics.js uses `localStorage` as its preferred storage location, with Cookies as a fallback when `localStorage` is not available or not populated. An in-memory storage is used as a last fallback if all the previous ones are disabled.
146+
147+
Default Storage Priority:
148+
149+
```md
150+
LocalStorage -> Cookie -> InMemory
151+
```
152+
153+
Some scenarios might require a switch in the storage systems priority:
154+
155+
- Apps that move the user across different subdomains
156+
- Apps where the server needs control over the user data
157+
- User Consent
158+
- Availability
159+
160+
You can configure the storage priority in the Analytics.js client using the `storage` property, either globally or only for user or group data.
161+
162+
The `storage` property accepts an array of supported storage names (`localStorage`, `cookie`, `memory`) to be used in the priority order of the array.
163+
164+
```js
165+
analytics.load('writeKey', {
166+
// Global Storage Priority: Both User and Group data
167+
storage: ['cookie', 'localStorage', 'memory']
168+
// Specific Storage Priority
169+
user: {
170+
storage: ['cookie', 'localStorage', 'memory']
171+
},
172+
group: {
173+
storage: ['cookie', 'localStorage', 'memory']
174+
},
175+
}
176+
```

0 commit comments

Comments
 (0)