@zencemarketing/web-sdk
Version:
ZenceMarketing Web SDK for push notifications, popups, and custom event tracking.
160 lines (105 loc) • 3.21 kB
Markdown
# Zence Marketing Web SDK (`@zencemarketing/web-sdk`)
Official Web SDK to integrate ZenceMarketing's push, popup, and event tracking features into your web application.
## ✨ Features
- 🔔 Push Notification Subscription & Delivery
- 💬 In-Page Popup Triggers
- 📊 Custom Event Tracking
- 📋 Easy SDK Initialization
- 🩵 Client-Side Logging with Custom Log Levels
## 📦 Installation
Install the SDK in your project via npm:
```bash
npm install @zencemarketing/web-sdk
```
## 🛠️ SDK Initialization
Before using any feature, initialize the SDK:
```js
import SDK, { logger } from '@zencemarketing/web-sdk';
await SDK.init({
clientID: "<your-client-id>",
clientSecret: "<your-client-secret>",
programCode: "<program-code>",
websiteUrl: "<your-domain>"
});
```
## 🔔 Push Notifications
### Subscribe User to Push
```js
SDK.subscribeUserPush("/sw.js File Path", "userID");
```
- Registers service worker and subscribes user to push notifications.
- Requires a valid `service-worker` file path.
### Send Push Notification
```js
SDK.sendNotification(payload);
```
- Send personalized or campaign-based notifications to users.
- `payload` includes `title`, `body`, `icon`, `image`, `data`, etc.
## 📋 Sample Push Payload
```json
{
"userID": "user123",
"title": "Welcome!",
"body": "Thanks for visiting.",
"icon": "icon-url",
"badge": "badge-url",
"image": "image-url",
"data": {
"productURL": "https://yourshop.com/product/123"
},
"websiteUrl": "yourshop.com",
"timestamp": "ISO_8601_Timestamp"
"campaignId": "campaign001",
"actions": [
{ "action": "view", "title": "View", "icon": "view-icon-url" },
{ "action": "dismiss", "title": "Dismiss", "icon": "dismiss-icon-url" }
]
}
```
### Check Subscription Status
```js
SDK.getSubscriptionStatus();
```
- Verifies if the user is already subscribed.
- Returns a object indicating the current push subscription.
## 💬 Popup Subscription
```js
SDK.subscribeUserPop("userID123");
```
- Enables in-browser popups for the user.
## 📊 Event Tracking
```js
SDK.customEvent("event_name", data, "userID123");
```
- Tracks any custom events (e.g., page view, click, purchase).
- Requires `event_name`, `data` (object), and user ID.
## 🩵 Logging
The SDK provides a simple logger for debugging and monitoring.
```js
import { logger } from '@zencemarketing/web-sdk';
logger.setLevel("info"); // Options: none, error, warn, info, debug
logger.setEnabled(true); // Enable or disable console & remote logging
logger.info("Hello from SDK!"); // Log messages
```
## 🔐 Environment Support
This SDK supports modern browsers and is optimized for:
- React
- Vanilla JS
- TypeScript
## 📄 License
MIT License
## 📬 Support
For any help or questions, contact us at [support@zencemarketing.com](mailto:support@zencemarketing.com)
## 🛠 Maintained with ❤️ by ZenceMarketing
For integration help, contact your ZenceMarketing team.