billowy-horse-43368
03/07/2023, 1:01 PMbillowy-horse-43368
03/07/2023, 1:01 PMaverage-church-90862
03/07/2023, 7:32 PMworried-planet-2191
03/09/2023, 1:11 AMwooden-country-60054
03/09/2023, 2:28 PMAn experiment that changes the metric by less than this percent will be considered a draw (default 50)Just curious why such large number was chosen for the default value, isn't 50% quite a big move for practically any metric?
cool-photographer-49118
03/09/2023, 6:16 PMwide-jordan-14758
03/09/2023, 8:53 PMvictorious-library-28522
03/10/2023, 9:07 AMcreamy-hydrogen-68065
03/10/2023, 8:13 PMgrowthbook.loadFeatures({ autoRefresh: true })
in useEffect like in the docs at first render/initial webapp load. I'm also using GrowthBook's managed hosting. Anything I'm missing? Thank you in advance.early-winter-80734
03/10/2023, 10:28 PMwooden-country-60054
03/12/2023, 5:20 AMp-values
, confidence intervals
instead of prob_beat_baseline
?stale-planet-51244
03/12/2023, 9:37 PMred-mouse-1009
03/13/2023, 7:37 AMvictorious-library-28522
03/13/2023, 12:36 PM_app.tsx
. But I feel like its unnecessary for the pages that are not using the features. What would be the implications of setting attributes and fetching features in the same component that uses the feature?few-electrician-23747
03/13/2023, 12:44 PMenough-camera-24490
03/13/2023, 3:10 PMfew-electrician-23747
03/13/2023, 3:29 PMorange-magician-36994
03/13/2023, 10:00 PMfew-electrician-23747
03/14/2023, 6:09 AMwooden-country-60054
03/14/2023, 6:51 AMwooden-country-60054
03/14/2023, 6:53 AMjolly-belgium-91310
03/14/2023, 8:43 AMnumerous-army-92497
03/14/2023, 10:37 AMexperiment viewed
event for e.g. Snowplow requires us to send experiment_viewed
with it's name, and variation_id
where as the variation_id is the index of the variation, and not its name. F.e. if I set up Feature button-color
with variants A
and B
the variation_ids will be 0 and 1. However, if my GrowthBook instance lives on the server, and I call getFeatureValue
I only get A
or B
and not the variant_id required for the tracking call. Right now we tried to solve this in a very convoluted way:
SERVER (nextjs):
const { status, features } = await getExperimentsFromCache();
if (status !== 200) return { props: {} };
// create a GrowthBook instance
const growthBook = new GrowthBook({ features, attributes: userAttributes });
// fetch all features and assign the user based on targeting Attributes
Object.keys(growthBook.getFeatures()).map((feature) =>
growthBook.getFeatureValue(feature, 'A')
);
// get all assignment results (we need it to grab the variation id)
const allResults = growthBook.getAllResults();
// construct our experiments object which contains keys, values and the GrowthBook variation id
const experiments: Experiments = {};
allResults.forEach((feature, name) => {
if (feature?.result.inExperiment) {
experiments[name] = {
variant: feature.result.value,
variationId: feature.result.variationId
};
}
});
return {
props: { experiments }
};
...
and then the CLIENT (nextjs)
const trackViewedExperiment = (name: string, variationId: number) => {
const eventObj = {
event: 'growthbook_experiment_viewed',
version: '1-0-0',
owner: 'com.acme.experimentation',
data: {
experiment_viewed: name,
variant_viewed: variationId
}
};
// Send the viewed experiment to the data lake via snowplow (just logging here for clarity)
console.log(`datalayer.push(${JSON.stringify(eventObj, null, 2)})`);
};
... is there any "easier" way to doing this?best-quill-79210
03/14/2023, 12:07 PMworried-waiter-18787
03/14/2023, 4:07 PMbillowy-horse-43368
03/14/2023, 8:33 PMfew-electrician-23747
03/15/2023, 8:26 AMcareful-elephant-25596
03/15/2023, 8:13 PMsparse-guitar-91772
03/16/2023, 7:56 AMonFeatureUsage
callback? For example, I have 3 rules as below, the first two are force rules, and the last one is for A/B experiments.
I have tried several times but it seems ruleId
is not working...billions-arm-13894
03/16/2023, 12:19 PM