تجزیه و تحلیل تعبیهشده JS
تجزیه و تحلیل تعبیهشده JS به شما امکان میدهد موجودیتهای متابیس مانند سؤالها، داشبوردها یا حتی سازنده پرسوجو را در برنامه خود با استفاده از اجزای قابل سفارشیسازی جاسازی کنید.
{% include shared/in-page-promo-embedding-workshop.html %}
تجزیه و تحلیل تعبیهشده JS یک کتابخانه JavaScript است که بر اساس SDK React تجزیه و تحلیل تعبیهشده متابیس ساخته شده است. اما نیازی به استفاده از React یا راهاندازی جاسازی کامل SDK ندارد. برخلاف جاسازی تعاملی، که در آن برنامه کامل متابیس را در یک iframe جاسازی میکنید، تجزیه و تحلیل تعبیهشده JS به شما امکان میدهد از مجموعهای از اجزای از پیش تعریف شده مانند یک نمودار واحد، یک داشبورد با حفاری اختیاری، یا سازنده پرسوجو انتخاب کنید و آن اجزا را سفارشی کنید.
تجزیه و تحلیل تعبیهشده JS از JWT یا SAML برای احراز هویت افراد و اعمال خودکار مجوزهای مناسب استفاده میکند.
در حال حاضر میتوانید انتخاب کنید که جاسازی کنید:
- یک داشبورد
- یک سؤال (نمودار). میتوانید هم سؤالهای ساخته شده با سازنده پرسوجو و هم سؤالهای ساخته شده با SQL را جاسازی کنید.
- سازنده پرسوجوی گرافیکی کامل برای فعال کردن افراد برای ساخت نمودارها و کاوشهای خود.
- یک مرورگر برای پیمایش مجموعهها و باز کردن داشبوردها یا سؤالها.
- رابط چت هوش مصنوعی.
شروع سریع
همچنین میتوانید راهنمای راهاندازی را مستقیماً در متابیس در تنظیمات مدیر > جاسازی > راهنمای راهاندازی دنبال کنید. ما مراحل را برای راحتی اینجا ثبت میکنیم.
۱. فعال کردن تجزیه و تحلیل تعبیهشده JS
۱. در متابیس، به تنظیمات مدیر > جاسازی > جاسازی ماژولار بروید.
۲. تجزیه و تحلیل تعبیهشده JS را روشن کنید.
۳. در زیر اشتراکگذاری منابع مبدأ متقابل (CORS)، URLهای وبسایتهایی که میخواهید متابیس را در آنها جاسازی کنید (مانند https://*.example.com) را اضافه کنید. برای تست جاسازیها، میتوانید از localhost استفاده کنید که همیشه در سیاست CORS گنجانده شده است.
۴. اگر در حال جاسازی اجزای متابیس در دامنهای متفاوت از دامنه متابیس خود هستید (از جمله زمانی که برنامه را به صورت محلی تست میکنید اما از متابیس کلود استفاده میکنید)، به تنظیمات مدیر > جاسازی > امنیت بروید و کوکی SameSite را روی None تنظیم کنید.
۲. ایجاد یک جاسازی جدید
۱. در متابیس، به مدیر > جاسازی > جاسازی ماژولار بروید و جاسازی جدید را در کنار تجزیه و تحلیل تعبیهشده JS انتخاب کنید.
اگر قصد دارید یک سؤال یا داشبورد موجود را جاسازی کنید، میتوانید مستقیماً به آن سؤال یا داشبورد بروید، روی دکمه اشتراکگذاری کلیک کنید و تجزیه و تحلیل تعبیهشده JS را انتخاب کنید.
۲. نوع موجودیت برای جاسازی را انتخاب کنید:
- داشبورد
- نمودار
- کاوش (که سازنده پرسوجوی متابیس را جاسازی میکند)
- مرورگر
- سؤال Metabot (که چت هوش مصنوعی را جاسازی میکند)
۳. بعد، موجودیتی که میخواهید جاسازی کنید را انتخاب کنید. برای مرورگر، مجموعهای که میخواهید افراد از آن شروع کنند را انتخاب کنید.
پس از انتخاب آنچه میخواهید جاسازی کنید، برای سفارشیسازی جاسازی خود روی Next کلیک کنید.
۳. سفارشیسازی جاسازی خود
گزینههای سفارشیسازی دقیقی که میبینید بستگی به نوع موجودیتی دارد که در حال جاسازی آن هستید. یک پیشنمایش زنده از نحوه ظاهر جاسازی با گزینههای انتخابی خود را خواهید دید. برای جزئیات بیشتر در مورد گزینههای سفارشیسازی، سفارشیسازی جاسازیها را بررسی کنید.

همچنین میتوانید رنگ برند، متن و پسزمینه استفاده شده برای همه جاسازیهای خود را انتخاب کنید. برای پیکربندی رنگهای دیگر (مثلاً رنگهای ثانویه، رنگهای سازنده پرسوجو و غیره)، و همچنین فونت، میتوانید یک تم را در قطعه کد جاسازی خود مشخص کنید.
همه گزینههای سفارشیسازی که در این جریان تعاملی انتخاب میکنید در مقادیر پارامتر در کد جاسازی منعکس میشوند، بنابراین میتوانید بعداً با ویرایش قطعه جاسازی آنها را تنظیم کنید.
پس از اتمام سفارشیسازی جاسازی خود، روی "Next" کلیک کنید.
۴. انتخاب روش احراز هویت
انتخابی بین "جلسه متابیس موجود" و "ورود یکپارچه (SSO)" دریافت خواهید کرد.
اگر جلسه متابیس موجود را انتخاب کنید، میتوانید جاسازیهای خود را بهعنوان کاربری که در حال حاضر وارد متابیس شدهاید پیشنمایش کنید و فقط در همان مرورگری که جلسه فعلی شما است. همه مرورگرها پشتیبانی نمیشوند - ما استفاده از Google Chrome را توصیه میکنیم. برای تست جاسازی در زمینههای دیگر، میتوانید به جای آن از کلیدهای API استفاده کنید. برای استفاده در تولید، از SSO استفاده کنید.
اگر JWT را در نمونه متابیس خود راهاندازی کردهاید، میتوانید ورود یکپارچه (SSO) را انتخاب کنید، راهاندازی SSO را ببینید.
۵. افزودن اسکریپت جاسازی به برنامه خود
متابیس یک قطعه کد تولید میکند که میتوانید آن را کپی کرده و در برنامه خود جایگذاری کنید، برای مثال قطعههای کد جاسازی را ببینید. میتوانید بعداً این قطعه کد را برای مشخص کردن گزینههای ظاهر اضافی یا تغییر رفتار برخی اجزا تغییر دهید.
قطعه کد را به برنامه خود اضافه کنید و صفحه را رفرش کنید.
هر کاربر نهایی باید حساب متابیس خود را داشته باشد
هر کاربر نهایی باید حساب متابیس خود را داشته باشد.
مشکل اشتراکگذاری یک حساب متابیس بین کاربران نهایی این است که، حتی اگر داده را در سمت کلاینت از طریق تجزیه و تحلیل تعبیهشده JS فیلتر کنید، همه کاربران نهایی همچنان به توکن جلسه دسترسی خواهند داشت، که میتوانند از آن برای دسترسی مستقیم به متابیس از طریق API برای دریافت دادههایی که نباید ببینند استفاده کنند.
با این حال، اگر هر کاربر نهایی حساب متابیس خود را داشته باشد، میتوانید مجوزها را در متابیس پیکربندی کنید و همه فقط به دادههایی که باید دسترسی خواهند داشت.
علاوه بر این، ما حسابهای اشتراکی را استفاده ناعادلانه میدانیم. استفاده عادلانه از تجزیه و تحلیل تعبیهشده JS شامل دادن حساب متابیس خود به هر کاربر نهایی تجزیه و تحلیل جاسازیشده است.
قطعههای کد جاسازی
قطعههای کد برای جاسازی موجودیتهای متابیس با استفاده از تجزیه و تحلیل تعبیهشده JS باید سه بخش داشته باشند:
۱. بارگذاری کتابخانه تجزیه و تحلیل تعبیهشده JS از نمونه متابیس شما. ۲. تنظیمات پیکربندی سراسری برای استفاده در همه جاسازیها، مانند URL نمونه متابیس شما، تمهای ظاهر و غیره. پیکربندی جاسازیها را ببینید. ۳. اجزا برای موجودیتهای متابیس برای جاسازی، با پارامترهای آنها. اجزا را ببینید.
در اینجا یک مثال از یک اسکریپت آمده است:
<!-- Load embedding library -->
<!-- REPLACE WITH YOUR METABASE URL HERE -->
<script defer src="https://your-metabase-url/app/embed.js"></script>
<script>
function defineMetabaseConfig(config) {
window.metabaseConfig = config;
}
</script>
<!-- Embedding configuration -->
<script>
defineMetabaseConfig({
instanceUrl: "https://your-metabase-url",
theme: {
colors: {
background: "#ffffff",
},
},
});
</script>
<!--Embedded entities -->
<metabase-question question-id="1"></metabase-question>
<metabase-dashboard dashboard-id="2" with-title="false"></metabase-dashboard>
توجه داشته باشید ویژگی defer و ارجاع به URL متابیس شما در اسکریپتی که کتابخانه embed.js را بارگذاری میکند.
اگر در حال جاسازی چندین موجودیت در یک صفحه هستید، فقط باید تگهای <script> را یک بار به صورت سراسری شامل کنید.
همچنین میتوانید قطعه کد برای تجزیه و تحلیل تعبیهشده JS را به صورت تعاملی در متابیس از طریق مدیر > جاسازی > راهنمای راهاندازی > جاسازی در کد شما تولید کنید. شروع سریع را بررسی کنید.
سفارشیسازی جاسازیها
گزینههای سفارشیسازی دقیقی که میبینید بستگی به نوع موجودیتی دارد که در حال جاسازی آن هستید.
هنگامی که در حال ایجاد یک جاسازی جدید با استفاده از مدیر > جاسازی > راهنمای راهاندازی > جاسازی در کد شما هستید، گزینههای سفارشیسازی زیر را در جریان ایجاد تعاملی خواهید دید. این گزینهها با پارامترهای اجزا مطابقت دارند.
اجازه دادن به افراد برای حفاری روی نقاط داده: تعیین میکند که آیا افراد میتوانند با نمودار (یا نمودارهای روی یک داشبورد) تعامل داشته باشند. تعامل شامل حفاری به پایین به رکوردهای فردی از سؤالهای تجمیع شده، فیلتر کردن با کلیک، زوم کردن و غیره است. غیرفعال کردن حفاری برای یک سؤال جاسازی شده همچنین توانایی افراد برای افزودن فیلترها و خلاصهها را غیرفعال میکند.
اجازه دانلود: تعیین میکند که آیا افراد میتوانند نتایج سؤال را دانلود کنند و داشبوردها را به صورت PDF ذخیره کنند.
اجازه دادن به افراد برای ذخیره سؤالهای جدید. اگر سازنده پرسوجو را جاسازی کنید اما این گزینه را غیرفعال کنید، افراد همچنان میتوانند کاوشهای خود را انجام دهند، فقط نمیتوانند آنها را ذخیره کنند.
پارامترها: برای فیلترهای داشبورد، متغیرهای SQL و پارامترهای گروهبندی زمان، میتوانید مقادیر پیشفرض اضافه کنید. مقادیر پیشفرض تنظیم شده در اینجا مقادیر پیشفرض تنظیم شده در سطح داشبورد یا سؤال را لغو میکند. برای فیلترهای داشبورد و پارامترها، میتوانید انتخاب کنید که آیا پارامتر را مخفی کنید.
نمایش عنوان: همان چیزی که روی قوطی نوشته شده است.
اجازه ویرایش داشبوردها و سؤالها: به افراد امکان میدهد داشبوردها یا سؤالها را در مجموعه فعلی ایجاد و ویرایش کنند. وقتی غیرفعال است، آنها همچنان میتوانند اقداماتی مانند فیلتر، خلاصه و حفاری انجام دهند، اما نمیتوانند نتایج را ذخیره کنند.
پیکربندی جاسازیها
برای تعریف پیکربندی که برای هر جاسازی در صفحه اعمال میشود، از تابع defineMetabaseConfig() استفاده کنید. پارامترهای آن شامل موارد زیر است:
instanceUrl: "https://your-metabase-url"(الزامی): URL نمونه متابیس شما، مانندhttps://youlooknicetoday.metabaseapp.comtheme: {...}(اختیاری): گزینههای ظاهر برای جاسازیها.useExistingUserSession: true|false(اختیاری، فقط برای توسعه) - به شما امکان میدهد جاسازی را به صورت محلی با استفاده از جلسه حساب مدیر متابیس خود پیشنمایش کنید. فقط در Google Chrome پشتیبانی میشود.apiKey: mb_YourAPIKey(اختیاری، فقط برای توسعه) - روش دیگری برای پیشنمایش جاسازیها به صورت محلی با استفاده از یک کلید API.fetchRequestToken: () => Promise<{ jwt: string }>(اختیاری) - میتوانید نحوه دریافت توکن تازهسازی SDK برای احراز هویت JWT را با مشخص کردن تابعfetchRequestTokenسفارشی کنید. سفارشیسازی احراز هویت JWT را ببینید.
تمدهی
میتوانید رنگها، فونتها، فاصلهگذاری و سایر گزینههای ظاهر را با استفاده از پارامتر theme در پیکربندی جاسازی خود مشخص کنید.
به عنوان مثال، این کد فونت، رنگ و اندازه برای متن، رنگهای پسزمینه و رنگها برای فیلترها و خلاصهها را تعریف میکند:
<script>
defineMetabaseConfig({
instanceUrl: "https://your-metabase-url",
theme: {
fontFamily: "Lato",
fontSize: "16px",
colors: {
background: "#11123d",
"text-primary": "#f9f9fc",
brand: "#50e397",
filter: "#7172AD",
summarize: "#88BF4D",
},
},
});
</script>
ظاهر را ببینید.
احراز هویت
استفاده از جلسه کاربر موجود برای تست جاسازیها
جلسات موجود فقط میتوانند برای تست جاسازیها به صورت محلی استفاده شوند. برای آماده کردن جاسازیهای خود برای تولید، باید SSO را پیادهسازی کنید.
اگر وارد متابیس شدهاید، میتوانید از آن کوکی جلسه موجود برای پیشنمایش و تست جاسازیهای خود استفاده کنید. این فقط در همان مرورگری (Chrome را توصیه میکنیم) که برای جلسه متابیس خود استفاده میکنید کار میکند (بنابراین در حالت ناشناس کار نمیکند).
useExistingUserSession: true را به defineMetabaseConfig() در کد جاسازی خود اضافه کنید. پیکربندی جاسازیها را بررسی کنید.
<script>
defineMetabaseConfig({
instanceUrl: "https://your-metabase-url",
useExistingUserSession: true,
});
</script>
توجه داشته باشید که این در برخی مرورگرها یا در حالت ناشناس کار نمیکند. اگر میخواهید از جلسات متابیس موجود برای تست جاسازیهای خود استفاده کنید، استفاده از Chrome را توصیه میکنیم.
استفاده از کلیدهای API برای تست جاسازیها
کلیدهای API فقط میتوانند برای تست جاسازیها به صورت محلی استفاده شوند. برای آماده کردن جاسازیهای خود برای تولید یا استقرار آنها در دامنه دیگر، باید SSO را پیادهسازی کنید.
برای استفاده از یک کلید API برای تست جاسازیهای خود:
۱. یک کلید API ایجاد کنید
۲. apiKey: "YOUR_API_KEY" را به defineMetabaseConfig() اضافه کنید:
<script>
defineMetabaseConfig({
instanceUrl: "https://your-metabase-url",
apiKey: "mb_hopeyouhaveaniceday",
});
</script>
کلیدهای API فقط باید برای تست با افراد مورد اعتماد استفاده شوند. هر کسی که به front-end دسترسی دارد میتواند کلید API را بگیرد و از آن برای درخواستهای API متابیس استفاده کند. به همین دلیل، ما فقط استفاده از کلیدهای API در localhost را مجاز میکنیم.
راهاندازی SSO
SSO برای جاسازی در دامنهای غیر از localhost الزامی است. میتوانید از JWT یا SAML SSO استفاده کنید. برای پیکربندی SAML، احراز هویت با SAML را بررسی کنید. برای پیکربندی JWT، مراحل زیر را دنبال کنید.
۱. در متابیس، JWT SSO را پیکربندی کنید.
۲. در backend برنامه خود، یک endpoint جدید برای مدیریت احراز هویت اضافه کنید.
نیاز دارید یک کتابخانه به backend خود اضافه کنید تا JSON Web Tokenهای خود را امضا کنید.
برای Node.js، jsonwebtoken را توصیه میکنیم:
npm install jsonwebtoken --save
بعد، یک endpoint در backend خود راهاندازی کنید (مانند /sso/metabase) که از secret مشترک JWT متابیس شما برای تولید یک JWT برای فرد احراز هویت شده استفاده میکند. این endpoint باید یک شی JSON با ویژگی jwt حاوی JWT امضا شده را برگرداند. به عنوان مثال: { "jwt": "your-signed-jwt" }.
این کد نمونه برای Node.js یک endpoint با استفاده از Express راهاندازی میکند:
import express from "express";
import cors from "cors";
import session from "express-session";
import jwt from "jsonwebtoken";
import fetch from "node-fetch";
// Replace this with your Metabase URL
const METABASE_INSTANCE_URL = "YOUR_METABASE_URL_HERE";
// Replace this with the JWT signing secret you generated when enabling
// JWT SSO in your Metabase.
const METABASE_JWT_SHARED_SECRET = "YOUR_SECRET_HERE";
const app = express();
app.get("/sso/metabase", async (req, res) => {
// Usually, you'd grab the user from the current session
// Here it's hardcoded for demonstration purposes
// Example:
// const { user } = req.session;
const user = {
email: "rene@example.com",
firstName: "Rene",
lastName: "Descartes",
group: "Customer",
};
if (!user) {
console.log("no user");
res.status(401).json({
status: "error",
message: "not authenticated",
});
return;
}
const token = jwt.sign(
{
email: user.email,
first_name: user.firstName,
last_name: user.lastName,
groups: [user.group],
exp: Math.round(Date.now() / 1000) + 60 * 10, // 10 minutes expiration
},
METABASE_JWT_SHARED_SECRET,
);
// The user backend should return a JSON object with the JWT.
res.status(200).json({ jwt: token });
});
مثالهای بیشتر را در مستندات Embedding SDK ببینید.
۳. جاسازیها بهطور پیشفرض به صورت خودکار از SSO استفاده میکنند
بهطور پیشفرض، متابیس از JWT SSO استفاده میکند، اما میتوانید روش auth دیگری را مشخص کنید. برای روشن کردن SSO، مطمئن شوید که پیکربندی خود را روی apiKey یا useExistingUserSession تنظیم نکنید.
اجزا
اجزای مختلفی در دسترس هستند که تجربیات مختلفی را برای کاربر نهایی فعال میکنند.
در حالی که میتوانید از پارامترهای جزء برای نمایش یا مخفی کردن بخشهایی از جزء جاسازی شده استفاده کنید، این پارامترها جایگزین مجوزها نیستند. حتی اگر چیزها را مخفی کنید، افراد همچنان میتوانند توکن خود را از frontend بگیرند و از آن برای پرسوجوی API متابیس استفاده کنند.
داشبورد
برای رندر کردن یک داشبورد:
<metabase-dashboard dashboard-id="1" with-title="true" with-downloads="false">
</metabase-dashboard>
پارامترهای الزامی:
dashboard-id- این میتواند یک ID معمولی یا یک entity ID باشد. استفاده از Entity IDها در جاسازیهای شما اطمینان میدهد که IDها هنگام صادرات از یک متابیس و واردات به دیگری پایدار بمانند.
پارامترهای اختیاری:
with-title(پیشفرض true است) - نمایش عنوان داشبورد در جاسازیwith-downloads(پیشفرض false است) - نمایش دکمه برای دانلود داشبورد به صورت PDF و دانلود نتایج سؤالdrills(پیشفرض true است) - به شما امکان میدهد از داشبورد حفاری کنیدinitial-parameters- مقدار پیشفرض برای فیلترهای داشبورد، مانند{ 'productId': '42' }.مطمئن شوید که از نقلقولهای تکی استفاده کنید اگر مقدار ویژگی خود را با نقلقولهای دوتایی احاطه کردهاید:
<metabase-dashboard dashboard-id="1" initial-parameters="{ 'productId': '42' }" ></metabase-dashboard>hidden-parameters- فهرست نامهای فیلتر برای مخفی کردن از داشبورد، مانند['productId']مطمئن شوید که از نقلقولهای تکی استفاده کنید اگر مقدار ویژگی خود را با نقلقولهای دوتایی احاطه کردهاید:
<metabase-dashboard dashboard-id="1" hidden-parameters="['productId']" ></metabase-dashboard>
سؤال
برای رندر کردن یک سؤال (نمودار):
<metabase-question question-id="1"></metabase-question>
پارامترهای الزامی:
question-id- این میتواند یک ID معمولی یا یک entity ID باشد. استفاده از Entity IDها در جاسازیهای شما اطمینان میدهد که IDها هنگام صادرات از یک متابیس و واردات به دیگری پایدار بمانند.از
question-id="new"برای جاسازی رابط کاوش سازنده پرسوجو استفاده کنید.
پارامترهای اختیاری:
drills(پیشفرض true است) - به شما امکان میدهد از سؤال حفاری کنیدwith-title(پیشفرض true است) - نمایش عنوانwith-downloads(پیشفرض false است) - نمایش دانلودهاinitial-sql-parameters- مقدار پیشفرض برای پارامترهای SQL، فقط برای سؤالهای SQL native قابل اعمال است، مانند{ "productId": "42" }is-save-enabled(پیشفرض false است)target-collection- این برای اعمال ذخیره در یک مجموعه خاص است. مقادیر: ID معمولی، entity ID،"personal"،"root"
مرورگر
برای رندر کردن یک مرورگر مجموعه تا افراد بتوانند یک مجموعه را پیمایش کنند و داشبوردها یا سؤالها را باز کنند:
<metabase-browser initial-collection="14" read-only="false"></metabase-browser>
پارامترهای الزامی:
initial-collection- این میتواند یک collection ID یاrootباشد. از یک collection ID (مثلاً14) برای شروع در یک مجموعه خاص استفاده کنید. ازrootبرای شروع در مجموعه سطح بالا، "Our Analytics" استفاده کنید.
پارامترهای اختیاری:
read-only(پیشفرض true است) – اگر true باشد، افراد میتوانند با موارد تعامل داشته باشند (فیلتر، خلاصه، حفاری) اما نمیتوانند ذخیره کنند. اگر false باشد، میتوانند موارد را در مجموعه ایجاد و ویرایش کنند.
Metabot
برای رندر کردن رابط چت هوش مصنوعی:
<metabase-metabot></metabase-metabot>
پارامترهای الزامی:
هیچ.
پارامترهای اختیاری:
layout(پیشفرضautoاست) – مرورگر باید تجسم را نسبت به رابط چت چگونه قرار دهد. مقادیر ممکن عبارتند از:auto(پیشفرض): Metabot از چیدمانstackedدر صفحهنمایشهای موبایل و چیدمانsidebarدر صفحهنمایشهای بزرگتر استفاده میکند.stacked: تجسم سؤال روی رابط چت قرار میگیرد.sidebar: تجسم سؤال در سمت چپ رابط چت ظاهر میشود که در نوار کناری راست است.
جاسازی متابیس در یک دامنه متفاوت
اگر میخواهید متابیس را در دامنه دیگری جاسازی کنید (مثلاً، اگر متابیس در metabase.yourcompany.com میزبانی میشود، اما میخواهید متابیس را در yourcompany.github.io جاسازی کنید)، میتوانید به متابیس بگویید مقدار SameSite کوکی جلسه را روی "none" تنظیم کند.
میتوانید مقدار SameSite کوکی جلسه را در تنظیمات مدیر > جاسازی > امنیت > تنظیم کوکی SameSite تنظیم کنید.
مقادیر SameSite شامل موارد زیر است:
- Lax (پیشفرض): به کوکیهای جلسه متابیس امکان اشتراکگذاری در همان دامنه را میدهد. برای نمونههای تولید در همان دامنه استفاده میشود.
- None (نیاز به HTTPS): از "None" استفاده کنید وقتی برنامه و متابیس شما در دامنههای مختلف میزبانی میشوند. با Safari و مرورگرهای مبتنی بر iOS ناسازگار است.
- Strict (توصیه نمیشود): به کوکیهای جلسه متابیس امکان اشتراکگذاری با نمونههای جاسازی شده را نمیدهد. اگر نمیخواهید اشتراکگذاری جلسه با جاسازی را فعال کنید از این استفاده کنید.
همچنین میتوانید متغیر محیطی MB_SESSION_COOKIE_SAMESITE را تنظیم کنید.
اگر از Safari استفاده میکنید، باید ردیابی cross-site را مجاز کنید. بسته به مرورگر، ممکن است هنگام مشاهده موارد جاسازی شده در تبهای خصوصی/ناشناس نیز با مشکلاتی مواجه شوید.
بیشتر در مورد کوکیهای SameSite بیاموزید.