دروازه تگ فرستپارتی
دروازه تگ یک پروکسی کوچک روی زیردامنه خودتان است که کل سطح تراکر را به ادپیکس میرساند. تگ و بیکن فرستپارتی میشوند، کوکیها دوباره نوشته میشوند، و مسدودکنندههای تبلیغات چیزی برای تطبیق ندارند.
دروازه تگ چه چیزی را عوض میکند#
در حالت پیشفرض، فایل تراکر از دامنه شبکه توزیع محتوای ادپیکس بارگذاری میشود و بیکن به دامنه گیرنده میرود. هر دو دامنههایی بیرون از سایت شما هستند: فهرستهای مسدودکننده تبلیغات آنها را میشناسند، و کوکیای که گیرنده میخواست بنویسد کوکی شخص ثالث است.
با دروازه تگ، یک زیردامنه از دامنه خودتان — بهطور پیشفرض metrics.<دامنه شما> — جلوی همه این ترافیک مینشیند و آن را به ادپیکس پروکسی میکند.
| موضوع | تگ مستقیم | دروازه تگ |
|---|---|---|
| میزبان فایل تراکر | دامنه شبکه توزیع محتوای ادپیکس | زیردامنه خودتان |
| مقصد بیکن | دامنه گیرنده ادپیکس | همان زیردامنه خودتان |
| کوکی گیرنده | نوشته نمیشود (شخص ثالث) | نوشته میشود (فرستپارتی) |
| افت بهخاطر مسدودکننده تبلیغات | حدود ۲۵٪ | حدود ۳ تا ۸٪ |
| کاری که باید بکنید | فقط قطعهکد | یک رکورد CNAME و یک پروکسی معکوس |
هویت در هر دو حالت کار میکند؛ در حالت مستقیم روی شناسه ماندگاری که تراکر در حافظه محلی نگه میدارد سوار است. آنچه دروازه اضافه میکند، ماندگاری بیشتر و سطح مسدودشدن کمتر است.
ساختن بسته هیچ چیزی را خاموش نمیکند. صفحه دستورالعمل نصب پس از آن دو قطعهکد نشان میدهد — مستقیم و دروازه — و شما یکی را در صفحه میگذارید. تا آن لحظه سایت شما دقیقا مثل قبل داده میفرستد.
چیزی که لازم دارید#
- دسترسی به DNS دامنه، برای یک رکورد CNAME.
- یک پروکسی معکوس که گواهی TLS آن زیردامنه را داشته باشد. کنسول پیکربندی آماده برای Caddy، nginx و Cloudflare Worker میدهد.
- نقش «ویرایشگر» یا بالاتر روی آن دارایی — ساخت بسته یک اعتبارنامه صادر میکند، پس مثل هر تغییر تنظیمات دارایی محافظت شده است. دیدن بسته ساختهشده با دسترسی خواندن گزارش هم ممکن است.
بسته را بسازید#
metrics است و میتوانید عوضش کنید؛ عوض کردنش بسته را از نو میسازد و توکن پروکسی تازه صادر میکند.<head> سایت بگذارید.بسته هر جریان داده روی خود جریان ذخیره میشود — توکن رمزگذاریشده نگهداری میشود و هر بار که بخش را باز کنید دوباره ساخته و نمایش داده میشود. پس لازم نیست جایی کپی نگه دارید و لازم هم نیست برای دیدن دوبارهاش بسته را از نو بسازید. جادوگر مستقل «تنظیمات» رفتار قدیمیتری دارد: توکن را فقط همان یک بار نشان میدهد.
مسیرهایی که باید پروکسی شوند#
این مهمترین بخش این صفحه است. پیکربندی تولیدشده یک فهرست سفید دقیق دارد و هر چیز خارج از آن 404 میگیرد. فهرست، کل سطح تراکر است، نه فقط فایل تراکر و بیکن:
| مسیر | چه چیزی از آن عبور میکند |
|---|---|
/t.js و /t/* |
فایل پایه تراکر |
/collect |
مسیر اصلی ارسال رویداد |
/i |
تصویر تکپیکسلی پشتیبان |
/id |
نام مستعار ارسال رویداد |
/apx/* و /sov/* |
پیکربندی جریان: اندازهگیری پیشرفته، دامنههای میاندامنهای، نقشه حرارتی، بلوک رضایت |
/consent.js |
بنر رضایت فرستپارتی |
/consent/* |
پیکربندی کامل بنر و ثبت سند رضایت |
/fpx.js |
بسته غنیسازی اثر انگشت |
/hm.js و /hm و /hm/* |
بسته ثبت نقشه حرارتی، نمونهها، تصویر ساختار صفحه |
/_apx_health و /_sov_health |
بررسی سلامت پروکسی |
اگر مسیری در فهرست سفید نباشد، پروکسی شما برایش 404 برمیگرداند و هیچ خطایی هم در کنسول ادپیکس ثبت نمیشود. نتیجهاش این است: بدون /consent/* بنر رضایت روی دامنه شما بالا نمیآید و رضایتی ثبت نمیشود؛ بدون /apx/* تراکر به تنظیمات پیشفرض اندازهگیری پیشرفته برمیگردد؛ بدون /hm* نقشههای حرارتی هیچ نمونهای نمیگیرند. پیکربندی را از بسته کپی کنید و فهرست مسیرها را کوتاه نکنید.
نسخههای Caddy، nginx و Cloudflare Worker از یک منبع واحد ساخته میشوند، پس هر سه دقیقا همین فهرست را دارند. اگر پروکسی دیگری دارید، همین فهرست را کامل به آن منتقل کنید.
هدرهایی که پروکسی اضافه میکند#
پیکربندی تولیدشده چهار هدر روی هر درخواست میگذارد:
| هدر | کارش |
|---|---|
X-Site-Key |
به گیرنده میگوید این درخواست از دروازه یک مشتری آمده |
X-Site-Token |
اعتبارنامهای که آن دروازه را احراز هویت میکند |
X-Forwarded-For |
آدرس IP واقعی بازدیدکننده |
X-Real-IP |
همان، برای پروکسیهایی که این را میخوانند |
دو هدر آخر را جدی بگیرید: بدون آنها گیرنده IP سرور پروکسی شما را میبیند و کشور، شهر و شبکه همه بازدیدکنندگان یکی میشود. پیکربندی Caddy و nginx هر چهار هدر را میگذارند؛ Cloudflare Worker فقط دو هدر X-Site-* را میگذارد، چون خود کلادفلر آدرس بازدیدکننده را فوروارد میکند.
هر درخواستی که X-Site-Key داشته باشد باید X-Site-Token معتبر هم داشته باشد، وگرنه پاسخ 403 است. درخواستهای حالت مستقیم که این هدر را ندارند دستنخورده میمانند.
چرخش توکن، بدون قطعی#
توکن پروکسی یک اعتبارنامه است و دیر یا زود باید عوض شود — بعد از ترک یک همکار، بعد از یک نشت پیکربندی، یا فقط بهعنوان بهداشت دورهای. از توکن فقط هش argon2id نگهداری میشود.
نکتهای که چرخش را بیدرد میکند این است: گیرنده هر توکن ابطالنشده آن دارایی را میپذیرد. یعنی میشود چند توکن را همزمان معتبر داشت.
فهرست و ابطال از رابط برنامهنویسی انجام میشود:
curl 'https://api.adpix.io/api/v1/proxy-tokens?site=<property_id>' \
-H 'Cookie: ap_admin=…'
{
"site_id": "…",
"tokens": [
{ "prefix": "9f2a1c40", "created_at": "…", "revoked_at": "", "active": true },
{ "prefix": "3b7e0d55", "created_at": "…", "revoked_at": "…", "active": false }
]
}
curl -X DELETE 'https://api.adpix.io/api/v1/proxy-tokens?site=<property_id>&prefix=3b7e0d55' \
-H 'Cookie: ap_admin=…'
فهرست فقط پیشوند هشتکاراکتری هر توکن را نشان میدهد، نه خود مقدار را؛ همان پیشوند برای ابطال کافی است. فهرستکردن با دسترسی خواندن گزارش ممکن است، ابطال نیاز به اختیار ویرایش تنظیمات دارایی دارد.
اگر توکن قدیمی را پیش از دیپلوی پیکربندی تازه ابطال کنید، پروکسی شما تا لحظه دیپلوی برای هر درخواست 403 میگیرد و در آن فاصله هیچ دادهای جمع نمیشود. ابطال، آخرین گام است نه اولین.
عیبیابی#
از همان بخش «دروازه تگ» میتوانید عیبیابی را اجرا کنید. چهار بررسی به ترتیب انجام میشود و هر کدام راهحل خودش را هم میگوید:
| بررسی | یعنی چه | اگر رد شد |
|---|---|---|
| DNS | زیردامنه به آدرسی resolve میشود | رکورد CNAME را اضافه یا اصلاح کنید |
| سلامت پروکسی | /_sov_health روی زیردامنه پاسخ 200 میدهد |
پروکسی بالا نیست یا گواهی TLS آن زیردامنه معتبر نیست |
| ارائه تگ | /t.js از پشت پروکسی واقعا بایتهای تراکر را برمیگرداند |
پروکسی مسیر را فوروارد نمیکند یا هدرهای بسته را نمیگذارد |
| رسیدن داده | در ۲۴ ساعت گذشته رویدادی از آن دامنه رسیده | قطعهکد دروازه هنوز در صفحه نیست، یا هنوز کسی صفحهای باز نکرده |
سه بررسی اول تشخیصیاند و میگویند چرا داده نمیآید. بررسی چهارم قطعی است: تا وقتی رویداد واقعی نرسد، وضعیت جریان «تاییدشده» نمیشود.
وضعیت خود جریان هم همین را نشان میدهد و پنج حالت دارد: در انتظار نصب، پروکسی فعال، تگ در صفحه پیدا شد، در حال دریافت داده، و خطا. «در حال دریافت داده» تنها حالتی است که به معنای پایان کار است.
آدرس بررسی سلامت را جداگانه هم میتوانید صدا بزنید؛ در بسته چاپ شده و پاسخ 200 آن یعنی پروکسی زنده است و به ادپیکس میرسد.
بعد از راهاندازی#
- قطعهکد را عوض کنید. تا وقتی صفحه شما هنوز تگ مستقیم را بارگذاری میکند، دروازه بالا هست ولی هیچ ترافیکی از آن عبور نمیکند.
- یک مسیر نصب داشته باشید. تگ را همزمان از قالب سایت و تگ منیجر نگذارید.
- بعد از هر تغییر در پروکسی، دوباره عیبیابی را اجرا کنید. ارتقای Caddy یا nginx گاهی فهرست مسیرها را از دست میدهد و اولین نشانهاش خالیشدن بنر رضایت یا نقشه حرارتی است، نه افت شمار بازدید.
جزئیات هدرها و کوکیهای این مسیر در کوکیها و سرصفحهها و شکل دقیق بسته ارسال در ساختار بسته ارسال رویداد آمده است.
پرسشهای پرتکرار#
با ساختن بسته دروازه، تگ مستقیم از کار میافتد؟
خیر. تگ مستقیم همیشه در دسترس میماند و صفحه دستورالعمل نصب هر دو قطعهکد را کنار هم نشان میدهد. دروازه تگ یک افزوده است، نه جایگزین؛ تا وقتی قطعهکد صفحه را عوض نکردهاید هیچ چیز تغییر نمیکند.
اگر یکی از مسیرها را در پیکربندی پروکسی جا بیندازم چه میشود؟
همان قابلیت روی دامنه شما بیصدا 404 میگیرد و هیچ خطایی در کنسول ادپیکس دیده نمیشود. جا افتادن /consent/* یعنی بنر رضایت بالا نمیآید، جا افتادن /apx/* یعنی اندازهگیری پیشرفته به تنظیمات پیشفرض برمیگردد، و جا افتادن /hm* یعنی نقشههای حرارتی چیزی ثبت نمیکنند. پیکربندی تولیدشده را دستکاری نکنید.
چرخاندن توکن پروکسی باعث قطعی میشود؟
نه، اگر ترتیب را رعایت کنید. گیرنده هر توکن ابطالنشده این دارایی را میپذیرد، پس توکن تازه و قدیمی همزمان معتبرند. اول بسته تازه را بسازید، بعد پروکسی را با توکن تازه دیپلوی کنید، و تنها در پایان توکن قدیمی را ابطال کنید.
چرا با دروازه تگ کوکی نوشته میشود ولی در حالت مستقیم نه؟
چون در مسیر مستقیم میاندامنهای، کوکی گیرنده یک کوکی شخص ثالث است که مرورگرها آن را مسدود یا پارتیشن میکنند؛ ادپیکس عمدا آنجا هیچ کوکی نمینویسد و هویت روی شناسه ماندگار حافظه محلی سوار است. درخواستی که از دروازه شما میآید هدر X-Site-Key دارد و فرستپارتی شمرده میشود، پس کوکیها دوباره نوشته میشوند.
ممنون — بازخورد شما به بهتر شدن مستندات کمک میکند.