إليكم التفاصيل: تخيلوا أنكم تقومون بإعادة تعبئة بيانات تسجيل المستخدمين لستة أشهر مضت في PostHog. ترسلونها عبر واجهة برمجة التطبيقات، وكل شيء يبدو جيداً – حتى أنكم تحصلون على استجابة 200 OK. ولكن عندما تتحققون من تحليلاتكم، ترون ارتفاعاً هائلاً في عمليات التسجيل *اليوم*، بدلاً من رؤية تلك الأحداث موزعة على مدار الأشهر الستة الماضية. الأحداث ليست مفقودة؛ بل يتم ختمها فقط بالوقت الذي *تلقاها* فيه PostHog، وليس الوقت الذي حدثت فيه بالفعل.
تكمن المشكلة في الطريقة التي يتوقع بها PostHog الطوابع الزمنية. توضح وثائقهم بوضوح أنهم يحتاجون إلى تنسيق ISO 8601، مثل '2026-07-26T06:00:00Z'. رقم «إيبوك» – تلك السلسلة الطويلة من الأرقام التي تمثل الثواني أو المللي ثانية منذ عام 1970 – هو نوع مختلف. بينما تقبل واجهة برمجة تطبيقات PostHog الطلب الذي يحتوي على طابع زمني «إيبوك» وتُرجع 200، فإنها لا تطبق القيمة التاريخية الخاصة بكم. بدلاً من ذلك، تسجل الحدث في اللحظة التي تم فيها استيعابه.
إذن، ما هو الحل؟ بسيط: تأكدوا من أن حقل `timestamp` الخاص بكم هو دائماً بتنسيق ISO 8601 قبل إرساله إلى PostHog. يمكن لأدوات مثل Pixellint أن تساعد في اكتشاف هذه الأخطاء قبل أن تسبب مشاكل في البيانات. هذا مشابه للطريقة التي تعمل بها واجهة برمجة تطبيقات HTTP الخاصة بـ Segment، والتي تستخدم أيضاً ISO 8601. فقط كونوا حذرين إذا كنتم تعملون أيضاً مع Amplitude، لأنهم يفضلون تحديداً المللي ثانية منذ «إيبوك». لا تخلطوا بين التنسيقات المختلفة لمنصات مختلفة!
نصيحة سريعة أخرى: يطلب PostHog أيضاً وجود `distinct_id` لكل حدث. إذا كان مفقوداً أو فارغاً، فلن يتم استيعاب الحدث، حتى لو أعطتكم واجهة برمجة التطبيقات استجابة 200 OK. الخلاصة هنا هي أن تتحققوا دائماً من تنسيق بياناتكم والحقول المطلوبة، لأن حالة 'OK' لا تروي القصة كاملة دائماً. حافظوا على تحليلاتكم نظيفة ودقيقة!