इंस्टॉल गाइड
आपकी साइट पर दो चीज़ें सक्रिय होनी चाहिए: वह सूचना जो आपके आगंतुक देखते हैं, और एक छोटी सार्वजनिक फ़ाइल जो आपके एआई उपयोग की घोषणा करती है (yoursite.com/.well-known/ai-disclosure.json)। स्निपेट टैग एक बार चिपकाया जाता है, हर पृष्ठ पर समान होता है, और आपकी घोषणा तय करती है कि कौन-सी सूचनाएँ कहाँ दिखाई देती हैं। नीचे अपना प्लेटफ़ॉर्म चुनें; अधिकांश पर लगभग दस मिनट लगते हैं।
बैनर और एआई लेबल जो आपके आगंतुक पृष्ठ पर देखते हैं।
ai-disclosure.json, एक सार्वजनिक फ़ाइल जो आपके अपने डोमेन से पठनीय है।
चेकर स्तर 2 · प्रस्तुत दिखाता है।
अपना प्लेटफ़ॉर्म चुनें
WordPress
प्लगइन इंस्टॉल करें
अपने WordPress एडमिन में: Plugins → Add New → Upload Plugin, नीचे डाउनलोड की गई फ़ाइल चुनें, फिर Activate क्लिक करें।
इसे दोनों काम करने दें
प्लगइन सूचनाएँ दिखाता है और आपकी घोषणा फ़ाइल स्वचालित रूप से प्रकाशित करता है। किसी भी पोस्ट या छवि पर उसके "AI content" टॉगल से एआई सामग्री चिह्नित करें। कोई कोड संपादन नहीं।
-
सत्यापित करें
तब पूरा जब चेकर स्तर 2 · प्रस्तुत दिखाता है।
चेकर चलाएँ
Shopify
स्निपेट जोड़ें
Online Store → Themes → ⋯ → Edit code → theme.liquid: इस एक टैग को </body> से ठीक पहले चिपकाएँ। theme.liquid वह लेआउट है जिसके माध्यम से हर पृष्ठ प्रस्तुत होता है, इसलिए एक बार चिपकाना पूरे स्टोर को कवर करता है। Shopify आपके डोमेन रूट पर फ़ाइलें होस्ट नहीं कर सकता, इसलिए टैग आपकी AIDisclose साइट कुंजी (data-aidisclose) ले जाता है और उस मेनिफ़ेस्ट को लोड करता है जिसे हम आपके लिए होस्ट करते हैं।
theme.liquid <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>अपनी घोषणा लिंक करें
इस लिंक को उसी फ़ाइल में <head> के अंदर चिपकाएँ। आपका डैशबोर्ड दोनों पंक्तियाँ आपकी साइट कुंजी के साथ पहले से भरी हुई दिखाता है।
<head> <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">यह विनिर्देश के तहत एक अनुमत विधि है।
-
सत्यापित करें
तब पूरा जब चेकर एक टिप्पणी के साथ स्तर 1 · घोषित दिखाता है। यह इस प्लेटफ़ॉर्म पर अपेक्षित परिणाम है, और यह अनुरूप है।
चेकर चलाएँ
Webflow
स्निपेट जोड़ें
Site settings → Custom code → Footer code: नीचे दिए गए स्निपेट ब्लॉक को चिपकाएँ, फिर Publish करें। साइट-स्तरीय कस्टम कोड हर पृष्ठ पर लोड होता है।
Footer code <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>अपनी घोषणा लिंक करें
Head code में, घोषणा लिंक पंक्ति (नीचे दूसरा ब्लॉक) जोड़ें। फ़ाइल को अपने ही डोमेन से परोसना पसंद करते हैं? यदि आपका DNS Cloudflare के माध्यम से चलता है तो उन्नत के अंतर्गत प्रॉक्सी का उपयोग करें।
Head code <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">यह विनिर्देश के तहत एक अनुमत विधि है।
-
सत्यापित करें
तब पूरा जब चेकर एक टिप्पणी के साथ स्तर 1 · घोषित दिखाता है। यह इस प्लेटफ़ॉर्म पर अपेक्षित परिणाम है, और यह अनुरूप है।
चेकर चलाएँ
Squarespace
स्निपेट जोड़ें
Settings → Advanced → Code Injection → Footer: नीचे दिए गए स्निपेट ब्लॉक को चिपकाएँ। कोड इंजेक्शन हर पृष्ठ पर लागू होता है। इसके लिए Business प्लान आवश्यक है।
Footer <script src="https://cdn.aidisclose.io/v1/aidisclose.js" data-aidisclose="YOUR_SITE_KEY" defer></script>अपनी घोषणा लिंक करें
Header injection में, घोषणा लिंक पंक्ति (नीचे दूसरा ब्लॉक) जोड़ें।
Header <link rel="ai-disclosure" href="https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY">यह विनिर्देश के तहत एक अनुमत विधि है।
-
सत्यापित करें
तब पूरा जब चेकर एक टिप्पणी के साथ स्तर 1 · घोषित दिखाता है। यह इस प्लेटफ़ॉर्म पर अपेक्षित परिणाम है, और यह अनुरूप है।
चेकर चलाएँ
Google Tag Manager
टैग बनाएँ
New tag → Tag configuration → Custom HTML → स्निपेट चिपकाएँ। ट्रिगरिंग: All Pages (Page View)। विलंबित या स्क्रॉल ट्रिगर का उपयोग न करें: प्रकटीकरण नियमों के अनुसार सूचना पहले संपर्क से आवश्यक है। वर्कस्पेस प्रकाशित करें।
Custom HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>अपनी घोषणा भी प्रकाशित करें
Tag Manager केवल सूचनाओं को संभालता है। आपकी घोषणा फ़ाइल को अभी भी सक्रिय होना है: अन्य टैब में अपने प्लेटफ़ॉर्म का चरण अपनाएँ, या यदि आप अपनी स्वयं की साइट चलाते हैं तो Custom code टैब।
-
सत्यापित करें
तब पूरा जब चेकर स्तर 2 · प्रस्तुत दिखाता है।
चेकर चलाएँ
Custom code
स्निपेट जोड़ें
अपनी साइट टेम्पलेट या लेआउट में एक बार, </body> से पहले, ताकि यह हर पृष्ठ के साथ भेजा जाए। उत्पादन सुदृढ़ीकरण (संस्करण पिनिंग, SRI) उन्नत के अंतर्गत है।
HTML <script src="https://cdn.aidisclose.io/v1/aidisclose.js" defer></script>घोषणा फ़ाइल परोसें
ai-disclosure.json आपके डोमेन पर /.well-known/ के अंतर्गत पठनीय होनी चाहिए। Vercel या Netlify पर फ़ाइल को कमिट करें। यदि आपका फ्रेमवर्क हर रूट को index.html पर दोबारा लिखता है, तो उस फ़ाइल के लिए एक अपवाद चाहिए: उन्नत के अंतर्गत सिंगल-पेज ऐप देखें। nginx और Apache कॉन्फ़िगरेशन भी उन्नत के अंतर्गत हैं।
Vercel / Netlify # Vercel / Netlify: commit the file public/.well-known/ai-disclosure.json # SPA that rewrites every route to index.html? # Exclude /.well-known/ from the rewrite (see Advanced).-
सत्यापित करें
तब पूरा जब चेकर स्तर 2 · प्रस्तुत दिखाता है।
चेकर चलाएँ
सत्यापित करें
चेकर चलाएँ। यह तीन चीज़ों की पुष्टि करता है: आपकी घोषणा फ़ाइल मान्य है, स्निपेट चल रहा है, और सूचनाएँ वास्तव में पृष्ठ पर दिखाई देती हैं। (इंजीनियरों के लिए: जाँच C1, C3, और C4 से C6।)
यदि आपकी साइट हमारे चेकर (AIDiscloseBot) को अवरुद्ध करती है
स्कैन और साक्ष्य कैप्चर AIDiscloseBot/1.0 से आते हैं। यह केवल सार्वजनिक पृष्ठ पढ़ता है: यह कभी साइन इन नहीं करता, कभी फ़ॉर्म सबमिट नहीं करता, और robots.txt का पालन करता है। यदि आपकी robots.txt या बॉट सुरक्षा अज्ञात क्रॉलर को अवरुद्ध करती है, तो इसे स्पष्ट रूप से अनुमति दें:
User-agent: AIDiscloseBot
Allow: /
क्या इसे अनुमति देना एक जोखिम है? नहीं। robots.txt अनुमति कोई पहुँच नहीं देती। यह केवल विनम्र बॉट्स को बताती है कि वे उन पृष्ठों को पढ़ सकते हैं जो पहले से सार्वजनिक हैं। कोई भी User-Agent स्ट्रिंग नकली बना सकता है, लेकिन एक नकलची को वह कुछ नहीं मिलता जो आपके सार्वजनिक पृष्ठ पहले से नहीं देते।
यदि आप किसी WAF या बॉट प्रबंधक से ट्रैफ़िक नियंत्रित करते हैं, तो कभी भी केवल User-Agent पर अनुमति न दें। इसे स्रोत सत्यापन के साथ जोड़ें। हम अपनी क्रॉलर पहचान, और एग्रेस IP श्रेणियाँ जैसे-जैसे वे प्रावधानित होती हैं, यहाँ प्रकाशित करते हैं: aidisclose.io/bot.json.
उन्नत
Theming with CSS variables, custom copy, single-page-app setup, and the full option reference are in the snippet reference.
स्क्रिप्ट को एक सटीक संस्करण पर लॉक करें (SRI)
स्क्रिप्ट टैग में एक इंटीग्रिटी हैश ब्राउज़र को संशोधित फ़ाइल चलाने से मना कर देता है। संस्करण-युक्त URL पिन करें और आप जो सटीक फ़ाइल तैनात करते हैं उससे हैश उत्पन्न करें:
curl -sO https://cdn.aidisclose.io/v1/aidisclose.js
openssl dgst -sha384 -binary aidisclose.js | openssl base64 -A
फ़ाइल स्वयं परोसें (nginx / Apache)
अपने नियंत्रण वाले सर्वरों के लिए, डाउनलोड की गई ai-disclosure.json सीधे परोसें:
location = /.well-known/ai-disclosure.json {
alias /var/www/site/ai-disclosure.json;
default_type application/json;
add_header Cache-Control "max-age=3600";
}
Alias "/.well-known/ai-disclosure.json" "/var/www/site/ai-disclosure.json"
<Files "ai-disclosure.json">
ForceType application/json
</Files>
डैशबोर्ड-होस्ट की गई फ़ाइल को अपने ही डोमेन से परोसें
आपका सर्वर उस एक पते के अनुरोधों को हमें अग्रेषित करता है: आप डैशबोर्ड में फ़ाइल संपादित करते हैं, और यह फिर भी आपके डोमेन से परोसी जाती है। डैशबोर्ड इन्हें आपकी साइट कुंजी के साथ पहले से भरा हुआ दिखाता है।
location = /.well-known/ai-disclosure.json {
proxy_pass https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY;
proxy_set_header Host cdn.aidisclose.io;
proxy_ssl_server_name on;
}
export default {
async fetch(request) {
const url = new URL(request.url);
if (url.pathname === "/.well-known/ai-disclosure.json") {
return fetch("https://cdn.aidisclose.io/v1/hosted-manifest/YOUR_SITE_KEY");
}
return fetch(request);
}
};
सिंगल-पेज ऐप और स्टैटिक होस्ट
हर रूट को index.html पर दोबारा लिखने वाले फ्रेमवर्क, और कुछ स्टैटिक होस्ट, /.well-known/ai-disclosure.json को रोक लेते हैं और आपके ऐप का HTML 200 स्थिति के साथ लौटा देते हैं। फ़ाइल कमिट की हुई दिखती है, लेकिन चेकर मैनिफ़ेस्ट के बजाय HTML पढ़ता है। दो समाधान हैं: /.well-known/ को कैच-ऑल रीराइट से बाहर रखें ताकि स्टैटिक फ़ाइल application/json प्रकार के साथ परोसी जाए, या script टैग में data-aidisclose="YOUR_SITE_KEY" जोड़ें ताकि AIDisclose द्वारा होस्ट किया गया मैनिफ़ेस्ट लोड हो और फ़ाइल परोसने की ज़रूरत ही न पड़े।
# netlify.toml: serve the real file before the SPA fallback
[[redirects]]
from = "/*"
to = "/index.html"
status = 200
force = false # a real file at the path wins over this fallback
# vercel.json: rewrite everything EXCEPT /.well-known to the app
{ "rewrites": [
{ "source": "/((?!\.well-known/).*)", "destination": "/index.html" }
] }