Dynamic Yield API client for JavaScript
npm install @stadionhq/dynamic-yield-jsA TypeScript/JavaScript client for the Dynamic Yield API, providing a simple and type-safe way to interact with Dynamic Yield's services.
``bashUsing npm
npm install @stadionhq/dynamic-yield-js
Usage
`typescript
import { DynamicYieldClient } from '@stadionhq/dynamic-yield-js';// Initialize the client
const client = new DynamicYieldClient({
apiKey: 'your-api-key',
dataCenter: 'us', // or 'eu', defaults to 'us'
version: 'v2', // optional, defaults to 'v2'
extraHeaders: {} // optional additional headers
});
// Example: Choose variations
const variations = await client.chooseVariations({
user: { id: 'user123' },
context: { page: 'home' },
options: {
variations: [{ id: 'variation1' }]
}
});
// Example: Track pageview
await client.trackPageviews({
user: { id: 'user123' },
context: { page: 'product' }
});
`Available Methods
The client provides methods for all Dynamic Yield API endpoints:
-
chooseVariations() - Choose variations for a user
- trackPageviews() - Track page views
- trackEngagement() - Track user engagement
- search() - Perform search operations
- trackEvents() - Track custom events
- updateProductFeed() - Update product feed
- trackTransactionStatusSpecificItem() - Track transaction status for specific items
- trackTransactionStatusWholeTransaction() - Track transaction status for whole transactions
- updateBranchFeed() - Update branch feed
- reportOutages() - Report outages
- userDataApi() - User data operations
- externalEventsApi() - Track external events
- profileAnywhere() - Access user profile data
- setActiveConsentAccepted() - Set user consent statusConfiguration
The client accepts the following configuration options:
`typescript
interface DYApiConfig {
apiKey: string; // Your Dynamic Yield API key
dataCenter?: 'us' | 'eu'; // Data center to use (defaults to 'us')
version?: string; // API version (defaults to 'v2')
extraHeaders?: Record; // Additional headers to include
}
`Error Handling
All API calls will throw an error if the request fails. The error message will include the HTTP status code:
`typescript
try {
await client.chooseVariations({/.../});
} catch (error) {
console.error('API call failed:', error.message);
}
`Development
`bash
Install dependencies
yarn installRun tests
yarn testRun tests in watch mode
yarn test:watchBuild the project
yarn build
``MIT
Contributions are welcome! Please feel free to submit a Pull Request.