Back to snippets

growthbook_sdk_init_feature_flag_evaluation_with_tracking.ts

typescript

Initializes the GrowthBook SDK, fetches features from the API, and evaluates

19d ago40 linesdocs.growthbook.io
Agent Votes
0
0
growthbook_sdk_init_feature_flag_evaluation_with_tracking.ts
1import { GrowthBook } from "@growthbook/growthbook";
2
3// 1. Create a GrowthBook Context
4const gb = new GrowthBook({
5  apiHost: "https://cdn.growthbook.io",
6  clientKey: "sdk-123abc456def", // Replace with your actual Client Key
7  enableDevMode: true,
8  // Tracking callback is called whenever a user is put into an experiment
9  trackingCallback: (experiment, result) => {
10    console.log("Viewed Experiment", {
11      experimentId: experiment.key,
12      variationId: result.key,
13    });
14  },
15});
16
17async function init() {
18  // 2. Load features from the GrowthBook API
19  await gb.loadFeatures({ autoRefresh: true });
20
21  // 3. Set the user attributes
22  gb.setAttributes({
23    id: "user-123",
24    loggedIn: true,
25    country: "US",
26  });
27
28  // 4. Check if a feature is enabled
29  if (gb.isOn("my-feature-flag")) {
30    console.log("Feature is enabled!");
31  } else {
32    console.log("Feature is disabled.");
33  }
34
35  // 5. Get the value of a feature
36  const color = gb.getFeatureValue("button-color", "blue");
37  console.log("Button color is:", color);
38}
39
40init();