سؤالات متداول در مورد یکپارچهسازی سرور با سرور (REST API)
این بخش به رایجترین سؤالات شما در مورد استفاده از REST API متریکس برای ارسال دادهها (یکپارچهسازی سرور با سرور) پاسخ میدهد.
۱. منظور از یکپارچهسازی سرور با سرور (Server-to-Server / S2S) چیست؟
یکپارچهسازی سرور با سرور (که معمولاً به آن S2S یا Server-to-Server Integration گفته میشود) به معنای ارسال مستقیم دادهها (مانند رویدادها یا اطلاعات کاربر) از سرور شما به سرور متریکس است.
این مدل در مقابل استفاده از SDK متریکس قرار میگیرد که در آن حالت، دادهها از طریق SDK ما و مستقیماً از دستگاه کاربر (Client-side) به متریکس ارسال میشوند. در S2S، سرور شما واسطهای بین دستگاه کاربر و سرور متریکس خواهد بود.
۲. چرا یکپارچهسازی سرور با سرور اهمیت دارد؟
استفاده از S2S میتواند در سناریوهای مختلفی بسیار سودمند باشد، بهویژه زمانی که دادهها در سمت سرور شما پردازش یا تأیید میشوند. به طور کلی، در چهار حالت زیر استفاده از این قابلیت توصیه میشود:
- تأیید یا پردازش رویداد در سمت سرور: اگر رویدادهای مهمی مانند پرداخت موفق، سررسید فاکتور، یا تغییر وضعیت سفارش در سمت سرور شما تأیید یا پردازش میشوند، ارسال آنها از طریق S2S دقت و امنیت بالاتری را تضمین میکند.
- محدودیت در ویرایش کد سورس اپلیکیشن: اگر تیم شما امکان ویرایش مستقیم کد سورس اپلیکیشن را ندارد (برای مثال، به دلیل برونسپاری توسعه به یک شخص ثالث) یا این کار از نظر عملیاتی دشوار است.
- عدم انطباق SDKهای شخص ثالث با سیاستهای شرکت: در صورتی که SDKهای پیشفرض شخص ثالث با سیاستهای امنیتی یا حریم خصوصی شرکت شما (به عنوان تبلیغدهنده) مطابقت ندارند.
- شروع رصد کمپینها پیش از بهروزرسانی اپلیکیشن: اگر میخواهید رصد و پیگیری کمپینهای خود را قبل از اینکه بهروزرسانی جدید اپلیکیشن حاوی SDK متریکس منتشر شود، شروع کنید.
۳. آیا اپلیکیشنها یا کسبوکارهای خاصی باید از این قابلیت استفاده کنند؟
این ویژگی برای تمام اپلیکیشنها و کسبوکارهای فعال در تمامی حوزهها مناسب است و انعطافپذیری زیادی را فراهم میکند.
با این حال، اپلیکیشنهایی که پرداختهای خارج از برنامه (مانند اپلیکیشنهای بانکی، مالی و پرداخت الکترونیک) یا فرآیندهای حساس و کلیدی را در سمت سرور خود مدیریت میکنند (مانند اپلیکیشنهای حمل و نقل که کاربر را به درگاه پرداخت خارجی هدایت میکنند)، میتوانند استفادهی بسیار بیشتری از این سرویس ببرند. این رویکرد تضمین میکند که دادههای حیاتی به صورت دقیق و قابل اعتماد به متریکس ارسال شوند.
۴. آیا میتوان همزمان از SDK و REST API متریکس استفاده کرد؟
بله، قطعاً! استفاده ترکیبی از SDK و REST API یک رویکرد قدرتمند و بسیار توصیه شده است.
- SDK (Client-side): برای ردیابی تعاملات روزمره و عمومی کاربران (مانند باز کردن اپلیکیشن، مشاهده صفحات، کلیکها) که مستقیماً در دستگاه رخ میدهند، کارآمد است.
- REST API (Server-to-Server): برای ارسال رویدادهای حساس، مهم یا تأیید شده در سمت سرور (مانند خرید موفق نهایی، تکمیل سفارش، یا رویدادهای مربوط به وضعیت اکانت کاربر) ایدهآل است.
این ترکیب به شما اطمینان میدهد که هم دادههای تعاملی کاربران را به طور کامل جمعآوری میکنید و هم از دقت و امنیت بالای دادههای حیاتی کسبوکار خود مطمئن میشوید.
۵. آیا میتوان از REST API از سمت کلاینت (مرورگر/اپلیکیشن) استفاده کرد؟
بله، از نظر فنی امکانپذیر است، اما با ملاحظات مهم!
میتوانید درخواستهای REST API را مستقیماً از سمت کلاینت (مثلاً از طریق کدهای جاوااسکریپت در مرورگر یا مستقیماً از اپلیکیشن موبایل) ارسال کنید. اما باید به نکات زیر توجه کنید:
- نوع API Key: در این حالت باید از API Key از نوع Client استفاده کنید. API Keyهای سرور (Server API Keys) برای استفاده در محیطهای امن سرور طراحی شدهاند و افشای آنها در کلاینت میتواند خطرات امنیتی جدی ایجاد کند.
- امنیت: ارسال درخواستهای API مستقیماً از کلاینت، ریسک امنیتی بیشتری دارد، زیرا API Key شما در کد کلاینت (هرچند مبهم شده باشد) قابل دسترسی خواهد بود. این موضوع میتواند مهاجمان را قادر سازد تا با استفاده از کلید شما، دادههای جعلی ارسال کنند.
- اعتمادپذیری: ارتباطات کلاینت به سرور ممکن است تحت تأثیر عواملی مانند اتصال اینترنت کاربر، مسدودکنندههای تبلیغات (Ad Blockers) یا خطاهای مرورگر قرار گیرد که میتواند منجر به از دست رفتن دادهها شود.
توصیه کلی ما این است که:
- برای ردیابی تعاملات کاربر در کلاینت (مانند کلیکها، مشاهده صفحات)، از SDK متریکس استفاده کنید.
- برای ردیابی رویدادهای حساس و مهم کسبوکار که نیاز به تأیید سرور دارند، از یکپارچهسازی S2S (از سرور شما) استفاده کنید.
- استفاده مستقیم از REST API از کلاینت فقط در شرایطی توصیه میشود که SDK متریکس در دسترس نباشد و از نوع API Key مناسب استفاده شود و ریسکهای امنیتی آن پذیرفته شود.
۶. آیا تفاوتی در دادههای جمعآوری شده بین SDK و REST API وجود دارد؟
بله، تفاوتهای کلیدی وجود دارد:
- اطلاعات دستگاه/کلاینت: SDK متریکس به صورت خودکار اطلاعات مربوط به دستگاه (مانند مدل دستگاه، سیستم عامل، نسخه اپلیکیشن، IP و…) و دادههای مربوط به کمپینهای ارجاعی (Attribution Data) را جمعآوری میکند. در یکپارچهسازی S2S، شما میتوانید این دادهها را به صورت دستی (در صورت نیاز) از سمت سرور خود جمعآوری کرده و به عنوان پارامتر در درخواستهای API ارسال کنید.
- ردیابی ارگانیک/غیرارگانیک و پوش نوتیفیکیشن: SDK متریکس برای ردیابی و نسبتدهی نصبهای ارگانیک و غیرارگانیک ضروری است. همچنین، دریافت پوش نوتیفیکیشن توسط کاربر تنها از طریق SDK انجام میشود. در یکپارچهسازی S2S، شما عمدتاً رویدادها و اطلاعات کاربر را ارسال میکنید.
- رویدادهای سیستمی: SDK متریکس رویدادهای سیستمی مانند
App Installed
وSession Started
را به صورت خودکار ردیابی میکند. این رویدادها در S2S باید به صورت دستی و در صورت لزوم پیادهسازی شوند.- نکته برای اندروید: در مورد اندروید، در موارد خاصی امکان ارسال توکنهای FCM شما برای متریکس و نمایش پوش از طریق سرویس فایربیس وجود دارد، اما این یک سناریوی محدود است.