diff --git a/packages/signals/signals/README.md b/packages/signals/signals/README.md deleted file mode 100644 index 92a8ba23a..000000000 --- a/packages/signals/signals/README.md +++ /dev/null @@ -1,159 +0,0 @@ -# @segment/analytics-signals - - -## Settings / Configuration - -See: [settings.ts](src/types/settings.ts) - -## Quick start - -## Snippet Users -```html - - My Website - - - - - - - - -``` - -## `npm` Users -### Installation -```bash -# npm -npm install @segment/analytics-signals -# yarn -yarn add @segment/analytics-signals -# pnpm -pnpm install @segment/analytics-signals -``` - -```ts -// analytics.js/ts -import { AnalyticsBrowser } from '@segment/analytics-next' -import { SignalsPlugin } from '@segment/analytics-signals' - -export const analytics = new AnalyticsBrowser() -export const signalsPlugin = new SignalsPlugin() - -analytics.register(signalsPlugin) - -analytics.load({ - writeKey: '' -}) - -``` -### Sending and Viewing Signals on Segment.com (Debug mode) -For privacy reasons, **signals are only to Segment.com when debug mode is on**. You must enable debug mode on the client to send and view those signals on segment.com. To enable debug mode on your client -``` -https://my-website.com?segment_signals_debug=true -``` -You can *turn off debugging* by doing: -``` -https://my-website.com?segment_signals_debug=false -``` - -* This also logs all signals to the js console. - -#### Alternative method(s) of enabling debug mode -### Enable debug mode from your JS console: -```js -window.SegmentSignalsPlugin.debug() -``` - -### Extending / Emitting Custom Signals -```ts -import { signalsPlugin } from './analytics' // assuming you exported your plugin instance. - -signalsPlugin.addSignal({ someData: 'foo' }) - -// emits a signal with the following shape -{ - type: 'userDefined' - data: { someData: 'foo', ... } -} -``` - -### Sandbox Strategies -If getting CSP errors, you can use the experimental 'global' sandbox strategy. - -```ts -new SignalsPlugin({ sandboxStrategy: 'global' }) -``` - - -### Debugging -Debug mode **MUST** be enabled on the client to VIEW signals on segment.com. - - - -### Advanced - -#### Listening to signals -```ts -const signalsPlugin = new SignalsPlugin() - -signalsPlugin.onSignal((signal) => console.log(signal)) -``` - - -### Middleware / Plugins -#### Drop or modify signals -```ts -import { SignalsPlugin, SignalsMiddleware } from '@segment/analytics-signals' - -class MyMiddleware implements SignalsMiddleware { - process(signal: Signal) { - // drop all instrumentation signals - if ( - signal.type === 'instrumentation' - ) { - return null; - } else { - return signal; - } - } -} - -const signalsPlugin = new SignalsPlugin({ - middleware: [ - new MyMiddleware() - ] -}) -analytics.register(signalsPlugin) -``` - - -### Playground / Development / Testing -See the [signals example repo](../signals-example). - -## Signal Types - -### `interaction` -Interaction signals emit in response to a user interaction - -### `instrumentation` -Instrumentation signals emit whenever a Segment event is emitted. - -### `navigation` -Instrumentation signals emit whenever the URL changes. - -> Note: you can also rely on the initial analytics.page() call, which you can access as an Instrumentation signal. - -### `network` -Network signals emit when an HTTP Request is made, or an HTTP Response is received. To emit a network signal, the network activity must have the following requirements: -- Initiated using the `fetch` API -- First party domain (e.g if on `foo.com`, then `foo.com/api/products`, but not `bar.com/api/products`) -- Contains the content-type: `application/json`