تركيب المكتبة
المكتبة سكربت تضيفه مرة واحدة إلى كل صفحة. يمنحك كائن flowfyanalytics يحفظ الاستدعاءات التي تجري قبل اكتمال تنزيل السكربت، فتستطيع أن تبدأ التتبّع في الصفحة نفسها التي تحمّله.
متاجر سلة تحصل عليه تلقائيًا عبر تطبيق فلوفاي. لا تركّبه بيدك إلا لمتجر مخصص.
قبل أن تبدأ
تحتاج مفتاح كتابة. افتح مصدرك في فلوفاي وانسخه من صفحة المصدر. كل ما يلي يشير إليه بـ YOUR_WRITE_KEY.
أضف السكربت
ضع هذا في <head>، قبل أي شيء يتتبّع.
<script>
(function () {
var key = "flowfyanalytics";
var analytics = (window[key] = window[key] || []);
if (analytics.snippetExecuted) return;
analytics.snippetExecuted = true;
var methods = [
"setDefaultInstanceKey", "load", "ready", "page", "track", "identify",
"alias", "group", "reset", "setAnonymousId", "startSession",
"endSession", "consent", "addCustomIntegration"
];
methods.forEach(function (method) {
analytics[method] = function () {
analytics.push([method].concat(Array.prototype.slice.call(arguments)));
};
});
var script = document.createElement("script");
script.src = "https://cdn.flofy.co/v3/modern/iife/flowfy.min.js";
script.async = true;
document.head.appendChild(script);
analytics.load("YOUR_WRITE_KEY", "https://edge.flofy.co");
analytics.page();
})();
</script>
هذا هو التركيب كله. الحلقة هي ما يجعل flowfyanalytics.track(...) يعمل قبل وصول المكتبة الحقيقية — تُدفع الاستدعاءات إلى مصفوفة ثم تُعاد بعد التحميل.
ماذا تعني الوسائط
flowfyanalytics.load(writeKey, dataPlaneUrl, options)
| الوسيط | القيمة |
|---|---|
writeKey | مفتاح الكتابة الخاص بمصدرك |
dataPlaneUrl | https://edge.flofy.co |
options | اختياري — انظر |
تأكد أنه يعمل
افتح صفحة، ثم افتح وحدة التحكّم في المتصفح:
flowfyanalytics.getAnonymousId()
ظهور نص يعني أن المكتبة حُمّلت. بعدها افتح تبويب Network، وصفِّ على edge.flofy.co، ثم شغّل حدثًا — يفترض أن ترى طلب POST إلى /v1/page أو /v1/track يُرد عليه بـ 204.
إن بدا الاثنان سليمين، افتح الأحداث المباشرة في صفحة المصدر داخل فلوفاي. تظهر الأحداث هناك خلال ثوانٍ.
التجميع في دفعات
المكتبة ترسل كل حدث في طلب مستقل افتراضيًا. في متجر مزدحم يمكنك تجميعها في دفعات:
flowfyanalytics.load("YOUR_WRITE_KEY", "https://edge.flofy.co", {
plugins: ["XhrQueue"],
queueOptions: {
batch: {
enabled: true,
maxItems: 50,
maxSize: 512 * 1024,
flushInterval: 60000
}
}
});
flushInterval بالمللي ثانية وmaxSize بالبايت. الأحداث المجمّعة تنتظر في المتصفح حتى يتحقق أحد الحدود الثلاثة، فالمشتري الذي يغلق التبويب مبكرًا يفقد ما بقي في الطابور. اترك التجميع مطفأً ما لم يكن حجم الطلبات مشكلة فعلية.
تعريف مشترٍ مسجّل الدخول
إن كنت تعرف من المشتري وقت عرض الصفحة، صرّح بذلك عند التحميل:
flowfyanalytics.identify("customer_9931", {
name: "Sara Al-Otaibi",
email: "sara@example.com",
phone: "+966500000000"
});
بقية الدوال في صفحة التتبّع.
إذا لم يصل شيء
لا يوجد flowfyanalytics في وحدة التحكّم. السكربت لم يُحمَّل. ابحث عن flowfy.min.js في تبويب Network — الطلب المحجوب يعني غالبًا مانع إعلانات، أو سياسة Content-Security-Policy لا تسمح بـ cdn.flofy.co.
الطلبات يُرد عليها بـ 400. مفتاح الكتابة ناقص أو غير سليم. انسخه من جديد من صفحة المصدر.
الطلبات يُرد عليها بـ 204، ولا شيء في الأحداث المباشرة. بنية الطلب سليمة لكن مفتاح الكتابة لا يطابق أي مصدر. الرد 204 يؤكد الاستلام فقط، وليس تحققًا من صحة المفتاح.
الأحداث تُرسَل مرتين. السكربت موجود في الصفحة أكثر من مرة. snippetExecuted يحمي من ذلك، لذا التكرار يعني عادةً نسختين مختلفتين من السكربت، أو موجّهًا يعيد تشغيله عند التنقّل.
npm
لا توجد حزمة npm منشورة بعد. استخدم وسم السكربت أعلاه.