UNPKG

@zencemarketing/web-sdk

Version:

ZenceMarketing Web SDK for push notifications, popups, and custom event tracking.

160 lines (105 loc) 3.21 kB
# 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.