Skip to content
Documentation
Ingest data
Product Analytics

Product Analytics

Send product events and identity updates to Altertable with SDKs or direct HTTP requests. The same payload model writes to the built-in product_analytics catalog, so client, server, mobile, and batch sources can be analyzed together.

Goal

Choose an SDK, connect it with a Product Analytics API key, and send events and identity updates to the built-in product_analytics catalog.

Prerequisites

  • Enable Product Analytics for the target environment.
  • Copy a Product Analytics API key.
  • Choose a client-side or server-side SDK based on where your application sends events.

Steps

1. Install an SDK

Product Analytics SDKs follow the same mental model across languages:

Language
Install
Repository
TypeScript / JavaScript
npm install @altertable/altertable-js
React
npm install @altertable/altertable-js @altertable/altertable-react
Python
pip install altertable or poetry add altertable
Ruby
gem install altertable
Swift
Swift Package Manager
Kotlin / Android
JVM: implementation("ai.altertable.sdk:altertable-kotlin:0.1.0"); Android apps also add implementation("ai.altertable.sdk:altertable-android:0.1.0")

2. Initialize the client and send data

Use these examples as the starting point for your application code:

import { altertable } from '@altertable/altertable-js';
// Initialize with your API key
altertable.init('YOUR_API_KEY', {
environment: 'production',
});
// Track a user event
altertable.track('checkout_completed', {
revenue: 49.99,
plan: 'pro',
currency: 'USD',
});
// Identify a user
altertable.identify('user_abc123', {
plan: 'pro',
});

After initialization:

  1. Track events with event properties.
  2. Identify users and attach traits.
  3. Optionally alias related identities.

3. Choose client-side or server-side behavior

SDKs fall into two categories with different capabilities:

Capability
Client-side
Server-side
Event tracking
Yes
Yes
User identification
Yes
Yes
Aliasing
Yes
Yes
Automatic page/screen tracking
Yes
No
Session and device ID management
Automatic
You pass distinct_id on each call
Tracking consent
Built-in
Manage externally
Event queuing and offline support
Yes
No

Client-side SDKs can automatically capture page views or screen views:

// Disable auto-capture if you need manual control
altertable.init('YOUR_API_KEY', { autoCapture: false });
// Then track page views manually
altertable.page('https://example.com/products');

They also include built-in consent management for privacy compliance:

// JavaScript — initialize with consent pending
altertable.init('YOUR_API_KEY', { trackingConsent: 'pending' });
// Later, when the user grants consent
altertable.configure({ trackingConsent: 'granted' });

Verification

Send one event from your application, then query the raw events table:

SELECT *
FROM product_analytics.main.events
ORDER BY timestamp DESC
LIMIT 10;

Confirm that the event name, distinct ID, timestamp, and properties match the payload your application sent.

Troubleshooting

  • No events appear: confirm that Product Analytics is enabled in the same environment as the API key.
  • Requests are rejected: check the authentication methods and replace an incorrect or expired API key.
  • Users remain anonymous: call identify when a stable user ID becomes available, and pass distinct_id explicitly from server-side SDKs.
  • Automatic page or screen events are missing: use a client-side SDK and enable its page or screen helper.

Next steps