@intlayer/docs 9.0.0-canary.15 → 9.0.0-canary.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/generated/docs.entry.cjs +40 -0
- package/dist/cjs/generated/docs.entry.cjs.map +1 -1
- package/dist/esm/generated/docs.entry.mjs +40 -0
- package/dist/esm/generated/docs.entry.mjs.map +1 -1
- package/dist/types/generated/docs.entry.d.ts +2 -0
- package/dist/types/generated/docs.entry.d.ts.map +1 -1
- package/docs/ar/cli/index.md +1 -1
- package/docs/ar/configuration.md +42 -1
- package/docs/ar/intlayer_CMS.md +5 -128
- package/docs/ar/live-sync.md +174 -0
- package/docs/ar/releases/v9.md +45 -1
- package/docs/bn/cli/index.md +1 -1
- package/docs/bn/configuration.md +45 -1
- package/docs/cs/cli/index.md +1 -1
- package/docs/cs/configuration.md +45 -1
- package/docs/de/cli/index.md +1 -1
- package/docs/de/configuration.md +42 -1
- package/docs/de/intlayer_CMS.md +5 -135
- package/docs/de/live-sync.md +174 -0
- package/docs/de/releases/v9.md +45 -1
- package/docs/en/analytics.md +222 -0
- package/docs/en/cli/index.md +1 -1
- package/docs/en/configuration.md +42 -1
- package/docs/en/intlayer_CMS.md +6 -140
- package/docs/en/live-sync.md +184 -0
- package/docs/en/releases/v9.md +53 -3
- package/docs/en-GB/cli/index.md +1 -1
- package/docs/en-GB/configuration.md +42 -1
- package/docs/en-GB/intlayer_CMS.md +5 -128
- package/docs/en-GB/live-sync.md +173 -0
- package/docs/en-GB/releases/v9.md +45 -1
- package/docs/es/cli/index.md +1 -1
- package/docs/es/configuration.md +42 -1
- package/docs/es/intlayer_CMS.md +5 -140
- package/docs/es/live-sync.md +176 -0
- package/docs/es/releases/v9.md +45 -1
- package/docs/fr/cli/index.md +1 -1
- package/docs/fr/configuration.md +42 -1
- package/docs/fr/intlayer_CMS.md +5 -135
- package/docs/fr/live-sync.md +174 -0
- package/docs/fr/releases/v9.md +45 -1
- package/docs/hi/cli/index.md +1 -1
- package/docs/hi/configuration.md +42 -1
- package/docs/hi/intlayer_CMS.md +5 -128
- package/docs/hi/live-sync.md +174 -0
- package/docs/hi/releases/v9.md +45 -1
- package/docs/id/cli/index.md +1 -1
- package/docs/id/configuration.md +42 -1
- package/docs/id/intlayer_CMS.md +5 -139
- package/docs/id/live-sync.md +185 -0
- package/docs/id/releases/v9.md +45 -1
- package/docs/it/cli/index.md +1 -1
- package/docs/it/configuration.md +42 -1
- package/docs/it/intlayer_CMS.md +5 -128
- package/docs/it/live-sync.md +174 -0
- package/docs/it/releases/v9.md +45 -1
- package/docs/ja/cli/index.md +1 -1
- package/docs/ja/configuration.md +42 -1
- package/docs/ja/intlayer_CMS.md +5 -139
- package/docs/ja/live-sync.md +185 -0
- package/docs/ja/releases/v9.md +45 -1
- package/docs/ko/cli/index.md +1 -1
- package/docs/ko/configuration.md +42 -1
- package/docs/ko/intlayer_CMS.md +5 -141
- package/docs/ko/live-sync.md +187 -0
- package/docs/ko/releases/v9.md +45 -1
- package/docs/nl/cli/index.md +1 -1
- package/docs/nl/configuration.md +45 -1
- package/docs/pl/cli/index.md +1 -1
- package/docs/pl/configuration.md +45 -1
- package/docs/pl/intlayer_CMS.md +5 -139
- package/docs/pl/live-sync.md +185 -0
- package/docs/pl/releases/v9.md +45 -1
- package/docs/pt/cli/index.md +1 -1
- package/docs/pt/configuration.md +45 -1
- package/docs/pt/intlayer_CMS.md +5 -143
- package/docs/pt/live-sync.md +174 -0
- package/docs/pt/releases/v9.md +45 -1
- package/docs/ru/cli/index.md +1 -1
- package/docs/ru/configuration.md +42 -1
- package/docs/ru/intlayer_CMS.md +5 -139
- package/docs/ru/live-sync.md +185 -0
- package/docs/ru/releases/v9.md +45 -1
- package/docs/tr/cli/index.md +1 -1
- package/docs/tr/configuration.md +42 -1
- package/docs/tr/intlayer_CMS.md +5 -127
- package/docs/tr/live-sync.md +173 -0
- package/docs/tr/releases/v9.md +45 -1
- package/docs/uk/cli/index.md +1 -1
- package/docs/uk/configuration.md +42 -1
- package/docs/uk/intlayer_CMS.md +5 -139
- package/docs/uk/live-sync.md +185 -0
- package/docs/uk/releases/v9.md +45 -1
- package/docs/ur/cli/index.md +1 -1
- package/docs/ur/configuration.md +45 -1
- package/docs/vi/cli/index.md +1 -1
- package/docs/vi/configuration.md +42 -1
- package/docs/vi/intlayer_CMS.md +5 -139
- package/docs/vi/live-sync.md +185 -0
- package/docs/vi/releases/v9.md +45 -1
- package/docs/zh/cli/index.md +1 -1
- package/docs/zh/configuration.md +42 -1
- package/docs/zh/intlayer_CMS.md +5 -129
- package/docs/zh/live-sync.md +175 -0
- package/docs/zh/releases/v9.md +45 -1
- package/package.json +7 -7
- package/src/generated/docs.entry.ts +40 -0
package/docs/it/releases/v9.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-06-14
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: Nuovo Intlayer v9 - Cosa c'è di nuovo?
|
|
5
5
|
description: Scopri le novità di Intlayer v9. Introduzione di package di compatibilità drop-in per le più diffuse librerie i18n e supporto per Collections e Variants.
|
|
6
6
|
keywords:
|
|
@@ -205,6 +205,49 @@ const product = useIntlayer("product-copy", {
|
|
|
205
205
|
|
|
206
206
|
---
|
|
207
207
|
|
|
208
|
+
## `@intlayer/analytics`: tracciamento dell'esposizione dei contenuti e test A/B
|
|
209
|
+
|
|
210
|
+
Un nuovo pacchetto opzionale, [`@intlayer/analytics`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md), ti mostra quali contenuti vengono effettivamente visualizzati dai tuoi visitatori — chiudendo il cerchio con **Collections & Variants** permettendoti di eseguire test A/B sui contenuti e misurare le conversioni per variante.
|
|
211
|
+
|
|
212
|
+
- **Tracciamento a livello di provider**: `IntlayerProvider` (React / Next.js / React Native) registra automaticamente eventi `page_view` al caricamento, al cambio di rotta e al cambio di lingua.
|
|
213
|
+
- **Tracciamento a livello di nodo**: ogni risoluzione di `useIntlayer` segnala un evento `content_exposure` — quale chiave del dizionario, percorso della chiave, lingua e, quando applicabile, quale **variante** A/B è stata mostrata. Le esposizioni ripetute dello stesso nodo all'interno di una finestra di invio vengono unite in un unico evento.
|
|
214
|
+
- **Assegnazione A/B deterministica**: `getVariant(experimentKey, variants)` assegna una variante a ogni sessione **senza andata e ritorno al server**, quindi nessuno sfarfallio prima del primo rendering.
|
|
215
|
+
- **`useConversion()`**: attribuisce un obiettivo (registrazione, clic, acquisto…) alla variante a cui la sessione è stata esposta.
|
|
216
|
+
- **Costo zero se non installato**: stesso schema tree-shakeable di `@intlayer/editor` — `import()` dinamico avvolto in `try/catch`, più una variabile d'ambiente a tempo di compilazione (`INTLAYER_ANALYTICS_ENABLED`) che elimina completamente l'integrazione dal bundle per le app che non la attivano.
|
|
217
|
+
- **Nessun nuovo schema di configurazione**: riutilizza `editor.backendURL` (endpoint di invio / self-hosting) ed `editor.clientId` (chiave del progetto, che funge anche da interruttore di attivazione).
|
|
218
|
+
- **Rispettoso della privacy**: hashing anonimo della sessione (SHA-256, nessun id grezzo memorizzato), nessuna memorizzazione dell'IP, geolocalizzazione approssimativa limitata al paese, richieste inviate in batch circa ogni 20 secondi.
|
|
219
|
+
- **Dashboard**: una nuova pagina **Analytics** (visibile nella barra laterale una volta selezionato un progetto) mostra utenti attivi, utenti di oggi, utenti degli ultimi 7/30/90 giorni, un grafico dell'evoluzione dei visitatori e la suddivisione per lingua e posizione.
|
|
220
|
+
|
|
221
|
+
```tsx fileName="CTAButton.tsx" codeFormat="tsx"
|
|
222
|
+
import { useConversion } from "react-intlayer";
|
|
223
|
+
|
|
224
|
+
const CTAButton = () => {
|
|
225
|
+
const trackConversion = useConversion();
|
|
226
|
+
|
|
227
|
+
return (
|
|
228
|
+
<button
|
|
229
|
+
onClick={() =>
|
|
230
|
+
trackConversion({
|
|
231
|
+
experimentKey: "homepage-hero",
|
|
232
|
+
variant: "black_friday",
|
|
233
|
+
goal: "cta_click",
|
|
234
|
+
})
|
|
235
|
+
}
|
|
236
|
+
>
|
|
237
|
+
Get started
|
|
238
|
+
</button>
|
|
239
|
+
);
|
|
240
|
+
};
|
|
241
|
+
```
|
|
242
|
+
|
|
243
|
+
```bash packageManager="npm"
|
|
244
|
+
npm install @intlayer/analytics
|
|
245
|
+
```
|
|
246
|
+
|
|
247
|
+
Disponibile già oggi per React, Next.js e React Native (tramite `react-intlayer`); altri binding per framework (Vue, Svelte, Angular, …) sono pianificati, seguendo lo stesso schema di rilascio di `@intlayer/editor`. Consulta la [documentazione di Analytics](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md) per la guida completa.
|
|
248
|
+
|
|
249
|
+
---
|
|
250
|
+
|
|
208
251
|
## Vite Plugin: Compiler e Proxy in Bundle
|
|
209
252
|
|
|
210
253
|
Il plugin Vite `intlayer()` ora raggruppa il **compiler** e il **proxy di locale-routing** direttamente, quindi la maggior parte dei progetti ha bisogno solo di un singolo plugin in `vite.config.ts`:
|
|
@@ -353,6 +396,7 @@ Se stai eseguendo l'aggiornamento da v8, nota che la v9 non include breaking cha
|
|
|
353
396
|
|
|
354
397
|
- [Guida ai Compat Adapter Packages](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/compat/index.md)
|
|
355
398
|
- [Dizionari Dinamici - Collections & Variants](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/dynamic_dictionaries/index.md)
|
|
399
|
+
- [Analytics - Tracciamento dell'esposizione dei contenuti e test A/B](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md)
|
|
356
400
|
- [Riferimento alla Configurazione](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/configuration.md)
|
|
357
401
|
- [SDK CMS - Accesso programmatico con @intlayer/api](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/intlayer_CMS.md)
|
|
358
402
|
- [Guida al Self-Hosting](https://github.com/aymericzip/intlayer/blob/main/docs/docs/it/self_hosting.md)
|
package/docs/ja/cli/index.md
CHANGED
|
@@ -125,7 +125,7 @@ Intlayerは、複数の設定ファイル形式をサポートしています:
|
|
|
125
125
|
|
|
126
126
|
### 認証
|
|
127
127
|
|
|
128
|
-
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/login.md)** - Intlayer CMSで認証し、アクセス資格情報を取得します。
|
|
128
|
+
- **[Login](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/cli/login.md)** - Intlayer CMSで認証し、アクセス資格情報を取得します。
|
|
129
129
|
|
|
130
130
|
### コアコマンド
|
|
131
131
|
|
package/docs/ja/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-11
|
|
4
4
|
title: 設定 (Configuration)
|
|
5
5
|
description: アプリケーションにIntlayerを設定する方法について説明します。ニーズに合わせてIntlayerをカスタマイズするためのさまざまな設定とオプションを理解してください。
|
|
6
6
|
keywords:
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-07-11
|
|
19
|
+
changes: "`analytics` 設定を追加"
|
|
17
20
|
- version: 9.0.0
|
|
18
21
|
date: 2026-06-24
|
|
19
22
|
changes: "Add `enableProxy` option to the routing configuration"
|
|
@@ -355,6 +358,30 @@ const config: IntlayerConfig = {
|
|
|
355
358
|
liveSync: true,
|
|
356
359
|
},
|
|
357
360
|
|
|
361
|
+
/**
|
|
362
|
+
* アナリティクス(analytics)設定。
|
|
363
|
+
*/
|
|
364
|
+
analytics: {
|
|
365
|
+
/**
|
|
366
|
+
* アナリティクス収集を有効にするかどうか(ページビュー、コンテンツの露出、A/Bイベント)。
|
|
367
|
+
* 帰属(attribution)のために `editor.clientId` の設定が必要です。
|
|
368
|
+
* デフォルト: false
|
|
369
|
+
*/
|
|
370
|
+
enabled: true,
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* バックエンドへの自動バッチ送信間のミリ秒数。
|
|
374
|
+
* デフォルト: 20000
|
|
375
|
+
*/
|
|
376
|
+
flushInterval: 20000,
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* 記録するセッションの割合。0(なし)から1(すべて)まで。
|
|
380
|
+
* デフォルト: 1
|
|
381
|
+
*/
|
|
382
|
+
sampleRate: 1,
|
|
383
|
+
},
|
|
384
|
+
|
|
358
385
|
/**
|
|
359
386
|
* AI による翻訳と生成の設定。
|
|
360
387
|
*/
|
|
@@ -668,6 +695,20 @@ export default config;
|
|
|
668
695
|
|
|
669
696
|
---
|
|
670
697
|
|
|
698
|
+
### アナリティクス設定 (Analytics)
|
|
699
|
+
|
|
700
|
+
Intlayerアナリティクスに関する設定を定義します。ユーザーに実際に表示されたコンテンツ(ページビュー、コンテンツの露出)を収集し、コンテンツのA/Bテストを可能にします。
|
|
701
|
+
|
|
702
|
+
アナリティクスは厳密にオプトイン方式です。`analytics.enabled` が明示的に `true` に設定され、**かつ** 帰属のためのプロジェクトキー(`editor.clientId`)が設定されない限り、何も収集されません。無効の場合(デフォルト)、アナリティクスの統合全体がアプリケーションのバンドルから削除されます(デッドコード除去)。
|
|
703
|
+
|
|
704
|
+
| フィールド | 説明 | 型 | デフォルト | 例 | 備考 |
|
|
705
|
+
| --------------- | --------------------------------------------------------------------------------- | --------- | ---------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
706
|
+
| `enabled` | アナリティクス収集を有効にします(ページビュー、コンテンツの露出、A/Bイベント)。 | `boolean` | `false` | `true` | 帰属のために `editor.clientId` の設定が必要です。設定されていない場合、`enabled` が `true` でもアナリティクスは無効のままです。 |
|
|
707
|
+
| `flushInterval` | バックエンドへの自動バッチ送信間のミリ秒数。 | `number` | `20000` | `10000` | |
|
|
708
|
+
| `sampleRate` | 記録するセッションの割合。`0`(なし)から`1`(すべて)まで。 | `number` | `1` | `0.5` | サンプリングはセッションごとに決定的であるため、記録されたセッションはそのすべてのイベントを報告します(部分的なファネルにはなりません)。 |
|
|
709
|
+
|
|
710
|
+
---
|
|
711
|
+
|
|
671
712
|
### ルーティング設定 (Routing)
|
|
672
713
|
|
|
673
714
|
URL 構造、ロケール保存、ミドルウェア管理など、ルーティングの動作を制御する設定。
|
package/docs/ja/intlayer_CMS.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2025-08-23
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: Intlayer CMS | コンテンツをIntlayer CMSに外部化する
|
|
5
5
|
description: コンテンツ管理をチームに委任するために、コンテンツをIntlayer CMSに外部化します。
|
|
6
6
|
keywords:
|
|
@@ -18,6 +18,9 @@ slugs:
|
|
|
18
18
|
- cms
|
|
19
19
|
youtubeVideo: https://www.youtube.com/watch?v=UDDTnirwi_4
|
|
20
20
|
history:
|
|
21
|
+
- version: 9.0.0
|
|
22
|
+
date: 2026-07-08
|
|
23
|
+
changes: "「ライブ同期」セクションを専用ページ(live-sync.md)に移動し、ここには簡単な紹介とリンクのみを残した"
|
|
21
24
|
- version: 9.0.0
|
|
22
25
|
date: 2026-06-30
|
|
23
26
|
changes: "「セルフホスティング」セクションを追加: Docker Composeブートストラップ、サービスインベントリ、SDK設定、オプション機能、アップグレードノート"
|
|
@@ -403,144 +406,7 @@ await pushDictionaries([{ key: "home", content: { title: "Home" } }]);
|
|
|
403
406
|
|
|
404
407
|
ライブ同期は、アプリが実行時に CMS のコンテンツ変更を反映できるようにします。再ビルドや再デプロイは不要です。有効にすると、更新がライブ同期サーバーにストリームされ、アプリケーションが読み込む辞書が更新されます。
|
|
405
408
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
409
|
-
import type { IntlayerConfig } from "intlayer";
|
|
410
|
-
|
|
411
|
-
const config: IntlayerConfig = {
|
|
412
|
-
// ... その他の設定
|
|
413
|
-
editor: {
|
|
414
|
-
/**
|
|
415
|
-
* 変更が検出されたときにロケール設定のホットリロードを有効にします。
|
|
416
|
-
* 例えば、辞書が追加または更新された場合、アプリケーションは
|
|
417
|
-
* ページに表示されるコンテンツを更新します。
|
|
418
|
-
*
|
|
419
|
-
* ホットリロードは継続的なサーバー接続を必要とするため、
|
|
420
|
-
* `enterprise`プランのクライアントのみ利用可能です。
|
|
421
|
-
*
|
|
422
|
-
* デフォルト: false
|
|
423
|
-
*/
|
|
424
|
-
liveSync: true,
|
|
425
|
-
},
|
|
426
|
-
dictionary: {
|
|
427
|
-
/**
|
|
428
|
-
* 辞書のインポート方法を制御します:
|
|
429
|
-
*
|
|
430
|
-
* - "fetch":辞書はLive Sync APIを使用して動的に取得されます。
|
|
431
|
-
* useIntlayerの代わりにuseDictionaryDynamicを使用します。
|
|
432
|
-
*
|
|
433
|
-
* 注意:ライブモードはLive Sync APIを使用して辞書を取得します。API呼び出しが
|
|
434
|
-
* 失敗した場合、辞書は動的にインポートされます。
|
|
435
|
-
* 注意:リモートコンテンツかつ"live"フラグが付いた辞書のみがライブモードを使用します。
|
|
436
|
-
* その他はパフォーマンスのために動的モードを使用します。
|
|
437
|
-
*/
|
|
438
|
-
importMode: "fetch",
|
|
439
|
-
},
|
|
440
|
-
};
|
|
441
|
-
|
|
442
|
-
export default config;
|
|
443
|
-
```
|
|
444
|
-
|
|
445
|
-
アプリケーションをラップするために Live Sync サーバーを起動します:
|
|
446
|
-
|
|
447
|
-
スタンドアロンサーバーを使用した例:
|
|
448
|
-
|
|
449
|
-
```json5 fileName="package.json"
|
|
450
|
-
{
|
|
451
|
-
"scripts": {
|
|
452
|
-
// ... その他のスクリプト
|
|
453
|
-
"live:start": "npx intlayer live",
|
|
454
|
-
},
|
|
455
|
-
}
|
|
456
|
-
```
|
|
457
|
-
|
|
458
|
-
`--process` 引数を使用して、アプリケーションサーバーと並行して使用することもできます。
|
|
459
|
-
|
|
460
|
-
Next.js を使用した例:
|
|
461
|
-
|
|
462
|
-
```json5 fileName="package.json"
|
|
463
|
-
{
|
|
464
|
-
"scripts": {
|
|
465
|
-
// ... その他のスクリプト
|
|
466
|
-
"build": "next build",
|
|
467
|
-
"dev": "next dev",
|
|
468
|
-
"start": "npx intlayer live --with 'next start'",
|
|
469
|
-
},
|
|
470
|
-
}
|
|
471
|
-
```
|
|
472
|
-
|
|
473
|
-
Vite を使用した例:
|
|
474
|
-
|
|
475
|
-
```json5 fileName="package.json"
|
|
476
|
-
{
|
|
477
|
-
"scripts": {
|
|
478
|
-
// ... その他のスクリプト
|
|
479
|
-
"build": "vite build",
|
|
480
|
-
"dev": "vite dev",
|
|
481
|
-
"start": "npx intlayer live --with 'vite start'",
|
|
482
|
-
},
|
|
483
|
-
}
|
|
484
|
-
```
|
|
485
|
-
|
|
486
|
-
Live Sync サーバーはあなたのアプリケーションをラップし、更新されたコンテンツが到着すると自動的に適用します。
|
|
487
|
-
|
|
488
|
-
CMSからの変更通知を受け取るために、Live SyncサーバーはバックエンドとのSSE接続を維持します。CMSのコンテンツが変更されると、バックエンドは更新情報をLive Syncサーバーに転送し、新しい辞書を書き込みます。アプリケーションは次のナビゲーションまたはブラウザのリロード時に更新を反映し、再ビルドは不要です。
|
|
489
|
-
|
|
490
|
-
フローチャート(CMS/バックエンド -> Live Syncサーバー -> アプリケーションサーバー -> フロントエンド):
|
|
491
|
-
|
|
492
|
-

|
|
493
|
-
|
|
494
|
-
動作の仕組み:
|
|
495
|
-
|
|
496
|
-

|
|
497
|
-
|
|
498
|
-
### 開発ワークフロー(ローカル)
|
|
499
|
-
|
|
500
|
-
- 開発中は、アプリケーション起動時にすべてのリモート辞書が取得されるため、更新をすばやくテストできます。
|
|
501
|
-
- Next.jsでローカルにLive Syncをテストするには、開発サーバーをラップします:
|
|
502
|
-
|
|
503
|
-
```json5 fileName="package.json"
|
|
504
|
-
{
|
|
505
|
-
"scripts": {
|
|
506
|
-
// ... 他のスクリプト
|
|
507
|
-
"dev": "npx intlayer live --with 'next dev'",
|
|
508
|
-
// "dev": "npx intlayer live --with 'vite dev'", // Vite用
|
|
509
|
-
},
|
|
510
|
-
}
|
|
511
|
-
```
|
|
512
|
-
|
|
513
|
-
開発中にIntlayerがLiveインポート変換を適用するように最適化を有効にします:
|
|
514
|
-
|
|
515
|
-
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
516
|
-
import type { IntlayerConfig } from "intlayer";
|
|
517
|
-
|
|
518
|
-
const config: IntlayerConfig = {
|
|
519
|
-
editor: {
|
|
520
|
-
applicationURL: "http://localhost:5173",
|
|
521
|
-
liveSyncURL: "http://localhost:4000",
|
|
522
|
-
liveSync: true,
|
|
523
|
-
},
|
|
524
|
-
dictionary: {
|
|
525
|
-
importMode: "fetch",
|
|
526
|
-
},
|
|
527
|
-
build: {
|
|
528
|
-
optimize: true, // default: process.env.NODE_ENV === 'production'
|
|
529
|
-
},
|
|
530
|
-
};
|
|
531
|
-
|
|
532
|
-
export default config;
|
|
533
|
-
```
|
|
534
|
-
|
|
535
|
-
この設定により、開発サーバーがLive Syncサーバーでラップされ、起動時にリモート辞書を取得し、CMSからの更新をSSE経由でストリーミングします。変更を確認するにはページをリロードしてください。
|
|
536
|
-
|
|
537
|
-
注意事項と制約:
|
|
538
|
-
|
|
539
|
-
- Live Sync のオリジンをサイトのセキュリティポリシー(CSP)に追加してください。Live Sync の URL が `connect-src`(および該当する場合は `frame-ancestors`)で許可されていることを確認してください。
|
|
540
|
-
- Live Sync は静的出力では動作しません。Next.js の場合、ページはランタイムで更新を受け取るために動的である必要があります(例:完全な静的のみの制約を避けるために、`generateStaticParams`、`generateMetadata`、`getServerSideProps`、または `getStaticProps` を適切に使用してください)。
|
|
541
|
-
- CMSでは、各辞書に`live`フラグがあります。`live=true`の辞書のみがライブ同期APIを通じて取得され、それ以外は動的にインポートされ、実行時には変更されません。
|
|
542
|
-
- `live`フラグはビルド時に各辞書ごとに評価されます。ビルド時にリモートコンテンツが`live=true`に設定されていなかった場合、その辞書のライブ同期を有効にするには再ビルドが必要です。
|
|
543
|
-
- ライブ同期サーバーは`.intlayer`に書き込み可能でなければなりません。コンテナ環境では`/.intlayer`への書き込み権限を確保してください。
|
|
409
|
+
設定方法、Live Sync サーバーの起動、ローカル開発ワークフロー、制約事項などの完全なガイドは、[Live Sync ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/live-sync.md)を参照してください。
|
|
544
410
|
|
|
545
411
|
## セルフホスティング
|
|
546
412
|
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
---
|
|
2
|
+
createdAt: 2026-07-08
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
|
+
title: ライブ同期 | CMSコンテンツの変更をリアルタイムに反映
|
|
5
|
+
description: リビルドや再デプロイなしで、Intlayer CMS のコンテンツ変更をアプリにリアルタイムで反映させます。
|
|
6
|
+
keywords:
|
|
7
|
+
- ライブ同期
|
|
8
|
+
- Live Sync
|
|
9
|
+
- CMS
|
|
10
|
+
- ビジュアルエディタ
|
|
11
|
+
- 国際化
|
|
12
|
+
- ドキュメント
|
|
13
|
+
- Intlayer
|
|
14
|
+
- Next.js
|
|
15
|
+
- Vite
|
|
16
|
+
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-07-08
|
|
19
|
+
changes: "Intlayer CMS ドキュメントから独立したページに移動"
|
|
20
|
+
- version: 6.0.1
|
|
21
|
+
date: 2025-09-22
|
|
22
|
+
changes: "ライブ同期のドキュメントを追加"
|
|
23
|
+
- version: 6.0.0
|
|
24
|
+
date: 2025-09-04
|
|
25
|
+
changes: "`hotReload` フィールドを `liveSync` に置き換え"
|
|
26
|
+
author: aymericzip
|
|
27
|
+
---
|
|
28
|
+
|
|
29
|
+
# ライブ同期
|
|
30
|
+
|
|
31
|
+
ライブ同期は、アプリが実行時に CMS のコンテンツ変更を反映できるようにします。再ビルドや再デプロイは不要です。有効にすると、更新がライブ同期サーバーにストリームされ、アプリケーションが読み込む辞書が更新されます。
|
|
32
|
+
|
|
33
|
+
## 目次
|
|
34
|
+
|
|
35
|
+
<TOC/>
|
|
36
|
+
|
|
37
|
+
---
|
|
38
|
+
|
|
39
|
+
## ライブ同期を有効にする
|
|
40
|
+
|
|
41
|
+
Intlayerの設定を更新してLive Syncを有効にします:
|
|
42
|
+
|
|
43
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
44
|
+
import type { IntlayerConfig } from "intlayer";
|
|
45
|
+
|
|
46
|
+
const config: IntlayerConfig = {
|
|
47
|
+
// ... その他の設定
|
|
48
|
+
editor: {
|
|
49
|
+
/**
|
|
50
|
+
* 変更が検出されたときにロケール設定のホットリロードを有効にします。
|
|
51
|
+
* 例えば、辞書が追加または更新された場合、アプリケーションは
|
|
52
|
+
* ページに表示されるコンテンツを更新します。
|
|
53
|
+
*
|
|
54
|
+
* ホットリロードは継続的なサーバー接続を必要とするため、
|
|
55
|
+
* `enterprise`プランのクライアントのみ利用可能です。
|
|
56
|
+
*
|
|
57
|
+
* デフォルト: false
|
|
58
|
+
*/
|
|
59
|
+
liveSync: true,
|
|
60
|
+
},
|
|
61
|
+
dictionary: {
|
|
62
|
+
/**
|
|
63
|
+
* 辞書のインポート方法を制御します:
|
|
64
|
+
*
|
|
65
|
+
* - "fetch":辞書はLive Sync APIを使用して動的に取得されます。
|
|
66
|
+
* useIntlayerの代わりにuseDictionaryDynamicを使用します。
|
|
67
|
+
*
|
|
68
|
+
* 注意:ライブモードはLive Sync APIを使用して辞書を取得します。API呼び出しが
|
|
69
|
+
* 失敗した場合、辞書は動的にインポートされます。
|
|
70
|
+
* 注意:リモートコンテンツかつ"live"フラグが付いた辞書のみがライブモードを使用します。
|
|
71
|
+
* その他はパフォーマンスのために動的モードを使用します。
|
|
72
|
+
*/
|
|
73
|
+
importMode: "fetch",
|
|
74
|
+
},
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
export default config;
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
アプリケーションをラップするために Live Sync サーバーを起動します:
|
|
81
|
+
|
|
82
|
+
スタンドアロンサーバーを使用した例:
|
|
83
|
+
|
|
84
|
+
```json5 fileName="package.json"
|
|
85
|
+
{
|
|
86
|
+
"scripts": {
|
|
87
|
+
// ... その他のスクリプト
|
|
88
|
+
"live:start": "npx intlayer live",
|
|
89
|
+
},
|
|
90
|
+
}
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
`--process` 引数を使用して、アプリケーションサーバーと並行して使用することもできます。
|
|
94
|
+
|
|
95
|
+
Next.js を使用した例:
|
|
96
|
+
|
|
97
|
+
```json5 fileName="package.json"
|
|
98
|
+
{
|
|
99
|
+
"scripts": {
|
|
100
|
+
// ... その他のスクリプト
|
|
101
|
+
"build": "next build",
|
|
102
|
+
"dev": "next dev",
|
|
103
|
+
"start": "npx intlayer live --with 'next start'",
|
|
104
|
+
},
|
|
105
|
+
}
|
|
106
|
+
```
|
|
107
|
+
|
|
108
|
+
Vite を使用した例:
|
|
109
|
+
|
|
110
|
+
```json5 fileName="package.json"
|
|
111
|
+
{
|
|
112
|
+
"scripts": {
|
|
113
|
+
// ... その他のスクリプト
|
|
114
|
+
"build": "vite build",
|
|
115
|
+
"dev": "vite dev",
|
|
116
|
+
"start": "npx intlayer live --with 'vite start'",
|
|
117
|
+
},
|
|
118
|
+
}
|
|
119
|
+
```
|
|
120
|
+
|
|
121
|
+
Live Sync サーバーはあなたのアプリケーションをラップし、更新されたコンテンツが到着すると自動的に適用します。
|
|
122
|
+
|
|
123
|
+
CMSからの変更通知を受け取るために、Live SyncサーバーはバックエンドとのSSE接続を維持します。CMSのコンテンツが変更されると、バックエンドは更新情報をLive Syncサーバーに転送し、新しい辞書を書き込みます。アプリケーションは次のナビゲーションまたはブラウザのリロード時に更新を反映し、再ビルドは不要です。
|
|
124
|
+
|
|
125
|
+
フローチャート(CMS/バックエンド -> Live Syncサーバー -> アプリケーションサーバー -> フロントエンド):
|
|
126
|
+
|
|
127
|
+

|
|
128
|
+
|
|
129
|
+
動作の仕組み:
|
|
130
|
+
|
|
131
|
+

|
|
132
|
+
|
|
133
|
+
## 開発ワークフロー(ローカル)
|
|
134
|
+
|
|
135
|
+
- 開発中は、アプリケーション起動時にすべてのリモート辞書が取得されるため、更新をすばやくテストできます。
|
|
136
|
+
- Next.jsでローカルにLive Syncをテストするには、開発サーバーをラップします:
|
|
137
|
+
|
|
138
|
+
```json5 fileName="package.json"
|
|
139
|
+
{
|
|
140
|
+
"scripts": {
|
|
141
|
+
// ... 他のスクリプト
|
|
142
|
+
"dev": "npx intlayer live --with 'next dev'",
|
|
143
|
+
// "dev": "npx intlayer live --with 'vite dev'", // Vite用
|
|
144
|
+
},
|
|
145
|
+
}
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
開発中にIntlayerがLiveインポート変換を適用するように最適化を有効にします:
|
|
149
|
+
|
|
150
|
+
```typescript fileName="intlayer.config.ts" codeFormat={["typescript", "esm", "commonjs"]}
|
|
151
|
+
import type { IntlayerConfig } from "intlayer";
|
|
152
|
+
|
|
153
|
+
const config: IntlayerConfig = {
|
|
154
|
+
editor: {
|
|
155
|
+
applicationURL: "http://localhost:5173",
|
|
156
|
+
liveSyncURL: "http://localhost:4000",
|
|
157
|
+
liveSync: true,
|
|
158
|
+
},
|
|
159
|
+
dictionary: {
|
|
160
|
+
importMode: "fetch",
|
|
161
|
+
},
|
|
162
|
+
build: {
|
|
163
|
+
optimize: true, // default: process.env.NODE_ENV === 'production'
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
export default config;
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
この設定により、開発サーバーがLive Syncサーバーでラップされ、起動時にリモート辞書を取得し、CMSからの更新をSSE経由でストリーミングします。変更を確認するにはページをリロードしてください。
|
|
171
|
+
|
|
172
|
+
## 注意事項と制約
|
|
173
|
+
|
|
174
|
+
- Live Sync のオリジンをサイトのセキュリティポリシー(CSP)に追加してください。Live Sync の URL が `connect-src`(および該当する場合は `frame-ancestors`)で許可されていることを確認してください。
|
|
175
|
+
- Live Sync は静的出力では動作しません。Next.js の場合、ページはランタイムで更新を受け取るために動的である必要があります(例:完全な静的のみの制約を避けるために、`generateStaticParams`、`generateMetadata`、`getServerSideProps`、または `getStaticProps` を適切に使用してください)。
|
|
176
|
+
- CMSでは、各辞書に`live`フラグがあります。`live=true`の辞書のみがライブ同期APIを通じて取得され、それ以外は動的にインポートされ、実行時には変更されません。
|
|
177
|
+
- `live`フラグはビルド時に各辞書ごとに評価されます。ビルド時にリモートコンテンツが`live=true`に設定されていなかった場合、その辞書のライブ同期を有効にするには再ビルドが必要です。
|
|
178
|
+
- ライブ同期サーバーは`.intlayer`に書き込み可能でなければなりません。コンテナ環境では`/.intlayer`への書き込み権限を確保してください。
|
|
179
|
+
|
|
180
|
+
## 役立つリンク
|
|
181
|
+
|
|
182
|
+
- [Intlayer CMS](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md)
|
|
183
|
+
- [Intlayer ビジュアルエディタ](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_visual_editor.md)
|
|
184
|
+
- [設定リファレンス](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)
|
|
185
|
+
- [セルフホスティングガイド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/self_hosting.md)
|
package/docs/ja/releases/v9.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2026-06-14
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-08
|
|
4
4
|
title: Intlayer v9の新機能
|
|
5
5
|
description: Intlayer v9の新機能をご覧ください。主要なi18nライブラリ向けのドロップイン互換性パッケージと、コレクション、バリアントのサポートを導入します。
|
|
6
6
|
keywords:
|
|
@@ -203,6 +203,49 @@ const product = useIntlayer("product-copy", {
|
|
|
203
203
|
|
|
204
204
|
---
|
|
205
205
|
|
|
206
|
+
## `@intlayer/analytics`: コンテンツ露出の計測と A/B テスト
|
|
207
|
+
|
|
208
|
+
新しいオプションパッケージ [`@intlayer/analytics`](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md) は、実際にどのコンテンツが訪問者に表示されているかを教えてくれます。そして **Collections & Variants** の輪を完成させ、コンテンツの A/B テストとバリアントごとのコンバージョン計測を可能にします。
|
|
209
|
+
|
|
210
|
+
- **プロバイダーレベルの計測**: `IntlayerProvider`(React / Next.js / React Native)は、初回読み込み、ルート変更、ロケール変更時に自動で `page_view` イベントを記録します。
|
|
211
|
+
- **ノードレベルの計測**: `useIntlayer` が解決されるたびに `content_exposure` イベントが送信されます — どの辞書キー、キーパス、ロケール、そして(該当する場合は)どの A/B **バリアント** が表示されたか。フラッシュ間隔内の同一ノードへの重複露出は 1 件に集約されます。
|
|
212
|
+
- **決定論的な A/B 割り当て**: `getVariant(experimentKey, variants)` はサーバーへの往復なしでセッションにバリアントを割り当てるため、初回描画前のちらつきがありません。
|
|
213
|
+
- **`useConversion()`**: セッションが見たバリアントに対して、ゴール(登録、クリック、購入など)を紐づけます。
|
|
214
|
+
- **未インストール時のコストはゼロ**: `@intlayer/editor` と同じ tree-shakeable パターンを採用 — `try/catch` でラップした動的 `import()` に加え、ビルド時の環境変数(`INTLAYER_ANALYTICS_ENABLED`)により、利用しないアプリでは統合全体がデッドコード除去されます。
|
|
215
|
+
- **新しい設定スキーマなし**: 既存の `editor.backendURL`(送信先エンドポイント / セルフホスティング)と `editor.clientId`(プロジェクトキー、兼有効化スイッチ)を再利用します。
|
|
216
|
+
- **プライバシーへの配慮**: セッションの匿名ハッシュ化(SHA-256、生の ID は保存しない)、IP は保存せず、国単位の大まかな位置情報のみ、リクエストはおよそ 20 秒ごとにバッチ送信されます。
|
|
217
|
+
- **ダッシュボード**: 新しい **Analytics** ページ(プロジェクト選択後にサイドバーへ表示)で、アクティブユーザー数、本日のユーザー数、過去 7/30/90 日のユーザー数、訪問者推移グラフ、ロケール別・地域別の内訳を確認できます。
|
|
218
|
+
|
|
219
|
+
```tsx fileName="CTAButton.tsx" codeFormat="tsx"
|
|
220
|
+
import { useConversion } from "react-intlayer";
|
|
221
|
+
|
|
222
|
+
const CTAButton = () => {
|
|
223
|
+
const trackConversion = useConversion();
|
|
224
|
+
|
|
225
|
+
return (
|
|
226
|
+
<button
|
|
227
|
+
onClick={() =>
|
|
228
|
+
trackConversion({
|
|
229
|
+
experimentKey: "homepage-hero",
|
|
230
|
+
variant: "black_friday",
|
|
231
|
+
goal: "cta_click",
|
|
232
|
+
})
|
|
233
|
+
}
|
|
234
|
+
>
|
|
235
|
+
Get started
|
|
236
|
+
</button>
|
|
237
|
+
);
|
|
238
|
+
};
|
|
239
|
+
```
|
|
240
|
+
|
|
241
|
+
```bash packageManager="npm"
|
|
242
|
+
npm install @intlayer/analytics
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
現在 React、Next.js、React Native(`react-intlayer` 経由)で利用可能です。他のフレームワークバインディング(Vue、Svelte、Angular など)は、`@intlayer/editor` と同じ展開パターンに沿って計画されています。完全なガイドは [Analytics ドキュメント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md) を参照してください。
|
|
246
|
+
|
|
247
|
+
---
|
|
248
|
+
|
|
206
249
|
## Vite Plugin: バンドルされたコンパイラとプロキシ
|
|
207
250
|
|
|
208
251
|
`intlayer()` Vite プラグインは、**コンパイラ**と**ロケールルーティングプロキシ**を直接バンドルするようになったため、ほとんどのプロジェクトは `vite.config.ts` に単一のプラグインのみが必要です:
|
|
@@ -324,5 +367,6 @@ v8からアップグレードする場合、v9には破壊的変更は含まれ
|
|
|
324
367
|
|
|
325
368
|
- [互換アダプターパッケージガイド](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/compat/index.md)
|
|
326
369
|
- [動的辞書 - コレクション、バリアント](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/dynamic_dictionaries/index.md)
|
|
370
|
+
- [Analytics(分析) - コンテンツ露出の計測とA/Bテスト](https://github.com/aymericzip/intlayer/blob/main/docs/docs/en/analytics.md)
|
|
327
371
|
- [設定リファレンス](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/configuration.md)
|
|
328
372
|
- [CMS SDK - @intlayer/api によるプログラムからのアクセス](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ja/intlayer_CMS.md)
|
package/docs/ko/cli/index.md
CHANGED
|
@@ -125,7 +125,7 @@ Intlayer는 여러 설정 파일 형식을 허용합니다:
|
|
|
125
125
|
|
|
126
126
|
### 인증
|
|
127
127
|
|
|
128
|
-
- **[로그인](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/login.md)** - Intlayer CMS에 인증하고 액세스 자격 증명을 가져옵니다.
|
|
128
|
+
- **[로그인](https://github.com/aymericzip/intlayer/blob/main/docs/docs/ko/cli/login.md)** - Intlayer CMS에 인증하고 액세스 자격 증명을 가져옵니다.
|
|
129
129
|
|
|
130
130
|
### 핵심 명령어
|
|
131
131
|
|
package/docs/ko/configuration.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
---
|
|
2
2
|
createdAt: 2024-08-13
|
|
3
|
-
updatedAt: 2026-
|
|
3
|
+
updatedAt: 2026-07-11
|
|
4
4
|
title: 구성 (Configuration)
|
|
5
5
|
description: 애플리케이션에 Intlayer를 구성하는 방법을 알아보세요. 필요에 따라 Intlayer를 맞춤설정하는 데 사용할 수 있는 다양한 설정과 옵션을 이해하세요.
|
|
6
6
|
keywords:
|
|
@@ -14,6 +14,9 @@ slugs:
|
|
|
14
14
|
- concept
|
|
15
15
|
- configuration
|
|
16
16
|
history:
|
|
17
|
+
- version: 9.0.0
|
|
18
|
+
date: 2026-07-11
|
|
19
|
+
changes: "`analytics` 구성 추가"
|
|
17
20
|
- version: 9.0.0
|
|
18
21
|
date: 2026-06-24
|
|
19
22
|
changes: "Add `enableProxy` option to the routing configuration"
|
|
@@ -355,6 +358,30 @@ const config: IntlayerConfig = {
|
|
|
355
358
|
liveSync: true,
|
|
356
359
|
},
|
|
357
360
|
|
|
361
|
+
/**
|
|
362
|
+
* 애널리틱스(analytics) 구성.
|
|
363
|
+
*/
|
|
364
|
+
analytics: {
|
|
365
|
+
/**
|
|
366
|
+
* 애널리틱스 수집 활성화 여부(페이지 뷰, 콘텐츠 노출, A/B 이벤트).
|
|
367
|
+
* 귀속(attribution)을 위해 `editor.clientId`가 설정되어 있어야 합니다.
|
|
368
|
+
* 기본값: false
|
|
369
|
+
*/
|
|
370
|
+
enabled: true,
|
|
371
|
+
|
|
372
|
+
/**
|
|
373
|
+
* 백엔드로 자동 일괄 전송하는 간격(밀리초).
|
|
374
|
+
* 기본값: 20000
|
|
375
|
+
*/
|
|
376
|
+
flushInterval: 20000,
|
|
377
|
+
|
|
378
|
+
/**
|
|
379
|
+
* 기록할 세션의 비율, 0(없음)에서 1(전체) 사이.
|
|
380
|
+
* 기본값: 1
|
|
381
|
+
*/
|
|
382
|
+
sampleRate: 1,
|
|
383
|
+
},
|
|
384
|
+
|
|
358
385
|
/**
|
|
359
386
|
* AI 기반 번역 및 생성 설정.
|
|
360
387
|
*/
|
|
@@ -668,6 +695,20 @@ export default config;
|
|
|
668
695
|
|
|
669
696
|
---
|
|
670
697
|
|
|
698
|
+
### 애널리틱스 구성 (Analytics)
|
|
699
|
+
|
|
700
|
+
Intlayer 애널리틱스와 관련된 설정을 정의합니다: 사용자에게 실제로 표시되는 콘텐츠(페이지 뷰, 콘텐츠 노출)를 수집하고 콘텐츠에 대한 A/B 테스트를 지원합니다.
|
|
701
|
+
|
|
702
|
+
애널리틱스는 철저히 옵트인(opt-in) 방식입니다: `analytics.enabled`가 명시적으로 `true`로 설정되고 **그리고** 귀속을 위한 프로젝트 키(`editor.clientId`)가 구성되지 않는 한 아무것도 수집되지 않습니다. 비활성화된 경우(기본값), 전체 애널리틱스 통합은 애플리케이션 번들에서 데드 코드 제거(dead-code elimination)됩니다.
|
|
703
|
+
|
|
704
|
+
| 필드 | 설명 | 타입 | 기본값 | 예시 | 참고 |
|
|
705
|
+
| --------------- | ------------------------------------------------------------------- | --------- | ------- | ------- | ------------------------------------------------------------------------------------------------------------------------------------- |
|
|
706
|
+
| `enabled` | 애널리틱스 수집을 활성화합니다(페이지 뷰, 콘텐츠 노출, A/B 이벤트). | `boolean` | `false` | `true` | 귀속을 위해 `editor.clientId`가 설정되어 있어야 합니다. 설정되지 않으면 `enabled`가 `true`여도 애널리틱스는 비활성 상태로 유지됩니다. |
|
|
707
|
+
| `flushInterval` | 백엔드로 자동 일괄 전송하는 간격(밀리초). | `number` | `20000` | `10000` | |
|
|
708
|
+
| `sampleRate` | 기록할 세션의 비율, `0`(없음)에서 `1`(전체) 사이. | `number` | `1` | `0.5` | 샘플링은 세션별로 결정적이므로, 기록된 세션은 자신의 모든 이벤트를 보고합니다(부분 퍼널 없음). |
|
|
709
|
+
|
|
710
|
+
---
|
|
711
|
+
|
|
671
712
|
### 라우팅 구성 (Routing)
|
|
672
713
|
|
|
673
714
|
URL 구조, 로케일 저장 및 미들웨어 처리를 포함하여 라우팅 동작을 제어하기 위한 설정입니다.
|