1. Installation
a. Embedded Mode
Add this Script to Your Website:
<script>
const script = document.createElement("script");
script.src = "https://publish.piqedge.com/assets/widget.js";
script.async = true;
script.onload = () => {
if (window.initWidget) {
window.initWidget({
siteKey: "YOUR_SITE_KEY",
mode: "embedded",
targetId: "widget-container"
});
}
};
document.head.appendChild(script);
</script>
Replace
YOUR_SITE_KEYwith your actual site key from the PiQEdge dashboard.
Examples:
- HTML
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Widget Integration</title>
</head>
<body>
<h1>
This is a simple HTML page to demonstrate the integration of a widget.
</h1>
<!-- Widget Element -->
<div id="widget-container" style="width: 460px; height: 700px"></div>
<!-- Widget Element -->
<!-- Widget Script -->
<script>
const script = document.createElement('script');
script.src = 'https://publish.piqedge.com/assets/widget.js';
script.async = true;
script.onload = () => {
if (window.initWidget) {
window.initWidget({
siteKey: 'YOUR_SITE_KEY',
mode: 'embedded',
targetId: 'widget-container',
});
}
};
document.head.appendChild(script);
</script>
<!-- Widget Script -->
</body>
</html>
- REACT
// PiQEdgeEmbeddedWidget.tsx
import { useEffect, useRef } from "react";
declare global {
interface Window {
initWidget: (config: {
mode: string;
siteKey: string;
targetId: string;
}) => void;
}
}
const PiQEdgeEmbeddedWidget = () => {
const scriptRef = useRef<HTMLScriptElement | null>(null);
const isInitialized = useRef(false);
useEffect(() => {
if (isInitialized.current) return;
const script = document.createElement("script");
script.src = "https://publish.piqedge.com/assets/widget.js";
script.async = true;
scriptRef.current = script;
document.body.appendChild(script);
script.onload = () => {
if (window.initWidget && !isInitialized.current) {
isInitialized.current = true;
window.initWidget({
mode: "embedded",
siteKey: "YOUR_SITE_KEY",
targetId: "widget-container",
});
}
};
return () => {
if (scriptRef.current && document.body.contains(scriptRef.current)) {
document.body.removeChild(scriptRef.current);
}
isInitialized.current = false;
};
}, []);
return <div id="widget-container" style={{ height: "500px", width: "462px" }} />;
};
export default PiQEdgeEmbeddedWidget;
Demo:

b. Floating Mode
Add this Script to Your Website:
<script>
const script = document.createElement("script");
script.src = "https://publish.piqedge.com/assets/widget.js";
script.async = true;
script.onload = () => {
if (window.initWidget) {
window.initWidget({
siteKey: "YOUR_SITE_KEY",
mode: "floating"
});
}
};
document.head.appendChild(script);
</script>
Replace
YOUR_SITE_KEYwith your actual site key from the PiQEdge dashboard.
Example:
- HTML
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Widget Integration</title>
</head>
<body style="background: #ccc">
<h1>
This is a simple HTML page to demonstrate the integration of a widget.
</h1>
<!-- Widget Script -->
<script>
const script = document.createElement('script');
script.src = 'https://publish.piqedge.com/assets/widget.js';
script.async = true;
script.onload = () => {
if (window.initWidget) {
window.initWidget({
siteKey: 'YOUR_SITE_KEY',
mode: 'floating',
});
}
};
document.head.appendChild(script);
</script>
<!-- Widget Script -->
</body>
</html>
Demo:


2. Configuration Options
Option | Type | Required | Description |
|---|---|---|---|
siteKey | string | ✅ | Your unique site key provided by PiQEdge |
mode | 'floating' | 'embedded' | ✅ | Determines how the widget is displayed |
targetId | string | ❌ (required only in embedded mode) | ID of the HTML element where the widget will be mounted |
openSharedLinkOnWidget | boolean | ❌ (default: false) | If enabled, article will open its shared link inside the widget. If disabled, the original article source link will open instead. |
auth | boolean | ❌ (default: false) | Enables user authentication within the widget. When set to |
ad | boolean | ❌ (default: true) | Toggles the display of advertisements configured from the admin panel. Set to |
3. Widget External Functions
Widget external functions are used to trigger actions inside widget from main site. These functions are exposed to window object.
window.widget_setTheme(value); // toggles widget theme, value can be 'dark' or 'light'
window.widget_gotoHome(); // go to home page of widget
window.widget_openBookMark(); // opens bookmark page
window.widget_close(); // close widget on floating mode
window.widget_getAudioAlertState(); // return current audio alert state (true/false)
window.widget_setAudioAlertState(value); // set audio alert state, value can be true or false
window.widget_setSearch(value); // set search value on widget
4. Widget Events
These events are emitted by the widget and can be handled in your site.
-
CASH tag clicked:
Widget emit this event when user click any article tag which starts with $ symbol.
window.addEventListener('message', (event)=>{
if(event.data?.type === 'CASH_TAG_CLICK'){
console.log(event.data.value) // print clicked cash tag
}
})