Custom Data Options

Guide on passing custom data to Gumlet Insights SDKs

Gumlet Insights lets you attach first-party metadata when you initialise the SDK (or update it later). Fields listed below are stored on modern v2 ingest and appear as dashboard breakdowns.

All examples use the current web SDK (GumletInsights + attach). The same config keys work with React Native (withGumletInsights config prop) and other player integrations.

Required field

Every config must include workspace_id from Workspaces. Without it, the license check fails and no events are sent.

Supported fields (Insights v2)

These are the custom / first-party fields the current analytics pipeline persists and exposes for filtering and breakdowns.

User

ParameterData TypeBeacon / columnDescription
userIdStringcustom_user_idUnique ID for the user in your product database.
userEMailStringuser_email / custom_user_emailEmail the user signed up with. (userEmail is accepted as an alias.)

Video

ParameterData TypeBeacon / columnDescription
customVideoIdStringcustom_video_idYour internal video ID (e.g. database primary key).
customVideoTitleStringcustom_video_titleTitle of the video.

Additional slots

Five free-form string slots. Keep each slot’s meaning consistent across your product.

ParameterData TypeBeacon / column
customData1Stringcustom_data_1
customData2Stringcustom_data_2
customData3Stringcustom_data_3
customData4Stringcustom_data_4
customData5Stringcustom_data_5

Keep the definition of each customDataN slot the same for every integration that reports into the same workspace.

Not supported on Insights v2

The following keys still exist on some older SDK type definitions or v1 pipelines, but they are not stored or breakable on the current v2 Insights tables / dashboard. Do not rely on them:

CategoryUnsupported keys
UseruserName, userPhone, userProfileImage, userAddressLine1, userAddressLine2, userCity, userState, userCountry, userZipcode
VideocustomContentType, customVideoDurationMillis, customEncodingVariant, customVideoLanguage, customVideoSeries, customVideoProducer, customVideoVariant, customVideoVariantName
Player labelscustomPlayerIntegrationVersion, customPlayerName, customPageType
Extra slotscustomData6, customData7, customData8, customData9, customData10

Player software name and version (player_software, player_software_version) are filled automatically by the SDK / adapter — you do not set them via custom player labels.

Pass data on init

const gumletConfig = {
  workspace_id: 'YOUR_WORKSPACE_ID', // required
  userId: '123',
  userEMail: 'oceane.bourgeois@example.com',
  customVideoId: 'HIMYMSeason1Episode1',
  customVideoTitle: 'Pilot',
  customData1: 'campaign-a',
  customData2: 'variant-b',
  customData3: '',
  customData4: '',
  customData5: '',
};

const gumletInsights = new gumlet.GumletInsights(gumletConfig);
await gumletInsights.attach(player); // HTMLVideoElement / HLS.js / Shaka / etc.

For browser pages, load the SDK from the CDN first:

<script type="module" src="https://cdn.gumlytics.com/insights/4.0/main.mjs"></script>

Update data after init

Use these when the viewer logs in later, or the same player instance starts a different title.

Update helpers clear omitted fields

For each helper below, fields you omit from the object are cleared. Re-pass any value that should stay set.

User

gumletInsights.updateCustomUserData({
  userId: '123',
  userEMail: 'christelle.robert@example.com',
});

Video

gumletInsights.updateCustomVideoData({
  customVideoId: 'HIMYMSeason1Episode2',
  customVideoTitle: 'Episode 2',
});

Additional slots

gumletInsights.updateCustomData({
  customData1: 'campaign-b',
  customData2: 'variant-c',
  customData3: '',
  customData4: '',
  customData5: '',
});

React Native

The same supported keys go on the config prop of withGumletInsights(Video):

<TrackedVideo
  config={{
    workspace_id: 'YOUR_WORKSPACE_ID',
    userId: '123',
    userEMail: 'viewer@example.com',
    customVideoId: 'episode-1',
    customVideoTitle: 'Pilot',
    customData1: 'campaign-a',
  }}
  source={{ uri: 'https://example.com/stream.m3u8' }}
  paused={paused}
/>

See React Native Player and the sample app.

Parameter reference

Complete list of custom data parameters available on Insights v2:

ParameterCategoryData TypeBeacon / columnUpdate helper
userIdUserStringcustom_user_idupdateCustomUserData()
userEMailUserStringuser_email / custom_user_emailupdateCustomUserData()
userEmailUserStringSame as userEMail (alias)updateCustomUserData()
customVideoIdVideoStringcustom_video_idupdateCustomVideoData()
customVideoTitleVideoStringcustom_video_titleupdateCustomVideoData()
customData1AdditionalStringcustom_data_1updateCustomData()
customData2AdditionalStringcustom_data_2updateCustomData()
customData3AdditionalStringcustom_data_3updateCustomData()
customData4AdditionalStringcustom_data_4updateCustomData()
customData5AdditionalStringcustom_data_5updateCustomData()

workspace_id is required for the SDK but is a workspace identifier, not a custom-data field.