S2S Integration
- یکپارچه سازی سرور با سرور
- Path Variable
- Request Header
- Request Body
- Revenue Event
- پارامترها
- پارامترهای اجباری
- پارامترهای اختیاری
- خطاهای دریافتی از سرور متریکس
- سؤالات متداول در مورد یکپارچهسازی سرور با سرور
- منظور از یکپارچه سازی سرور با سرور چیست؟
- چرا یکپارچه سازی سرور با سرور اهمیت دارد؟
- چطور باید سرور خودم را با سرور متریکس یکپارچه کنم؟
- آیا اپلیکیشنهای خاصی باید از این قابلیت یکپارچه سازی استفاده کنند؟
این API این امکان را به شما میدهد که رخدادهایی که در داخل App یا خارج از آن رخ میدهد اما توسط SDK ارسال نمیشود را، از طریق سرورهای خود برای ما ارسال کنید. برای این منظور میتوانید از API زیر استفاده کنید
Method: POST
URL: "https://analytics.metrix.ir/inappevent/{appId}"
appId
: همان کلید اپلیکیشن شماست که از پنل متریکس آن را دریافت میکنید
{
"appId": "APP_ID"
}
برای پیدا کردن appId
برنامهی مورد نظر خود میتوانید به صفحهی تنظیمات اپلیکیشن خود در داشبورد مراجعه کنید و از بخش App Info
آن را کپی کنید.
{
"Authorization": "DEV_KEY"
}
مقدار dev-key
توسط سیستم برای هر اپلیکیشن به صورت مجزا تولید میشود.
کافیست با مراجعه به صفحهی S2S Integration
در بخش تنظیمات اپلیکیشن، کلید توسعهدهنده یا Developer Key را کپی نمایید.
همچنین برای امنیت بیشتر دادههای دریافتی میتوانید در قسمت S2S Integration
در صفحه پیشین،
لیستی از IP های مورد تائید خود را وارد کنید تا تنها رخدادهای دریافتی از آن سرورها معتبر شمرده شوند.
{
"metrixUserId": "METRIX_USER_ID",
"metrixSessionId": "METRIX_SESSION_ID",
"idfa": "IDFA", // for ios
"advertisingId": "GOOGLE_PLAY_SERVICES_ADVERTISING_ID", // for Android
// A JSON containing a rich in-app event attributes - must be String to String
"customAttributes": {
"content_type": "wallets",
"content_id": "hrhfwbrfybwa"
},
// A JSON containing a rich in-app event metrics - must be String to Double
"customMetrics": {
"revenue": 130.5
},
"deviceIp": "USER_DEVICE_IP",
"eventSlug": "EVENT_SLUG", // e.g. "taqsq"
"eventTime": "EVENT_TIMESTAMP_MILIIS" // e.g 1570274953412 timestamp in millisecond
}
برای ارسال ایونت درآمدی، باید پارامترهای زیر برای متریکس ارسال شوند.
{
"customAttributes": {
// IRR, USD, EUR
"_currency": "IRR"
},
"customMetrics": {
"_revenue": 53.700
}
}
تمام پارامترهایی که در Header و URL وجود دارند ضروری محسوب میشود و به هنگام استفاده از این API باید وارد شوند.
-
metrixUserId
: شناسهای که متریکس به کاربران اپلیکیشن شما اختصاص میدهد. برای دریافت اطلاعات بیشتر درباره این شناسه و چگونگی دریافت آن در اپلیکیشن خود به مستندات فنی مراجعه کنید. -
advertisingId
یاidfa
: همان طور که میدانید idfa برای دستگاههایی با سیستمعامل ios و advertisingId برای Android است. با توجه به نوع سیستمعاملی که رخداد مورد نظر شما در آن اتفاق میافتد باید دقیقا یکی از آنها را انتخاب و دادهی متناظر با آن را وارد کنید. انتخاب هر دوی آنها یا هیچکدام از آنها باعث مواجه شدن با خطای 400 Bad Request می شود. -
eventSlug
: همان slug مشخص شده در حین تعریف یک رخداد در داشبورد متریکس است. -
eventTime
: زمانی که رخداد در اپلیکیشن شما اتفاق میافتد، در صورتی که این زمان وارد نشده باشد، زمانی از سیستم که رخداد دریافت میشود به عنوان زمان وقوع رخداد ثبت میشود.
-
customAttributes
: با این پارامتر میتوانید اطلاعات دلخواه خود را ارسال کنید. -
اطلاعات ارسالی در این بخش یک Json است که تمامی مقدارهای آن باید رشته (String) باشند.
-
customMetrics
: با این پارامتر میتوانید اطلاعات دلخواه خود را ارسال کنید. -
اطلاعات ارسالی در این بخش یک Json است که تمامی مقدارهای آن باید عدد اعشاری (Double) باشند.
-
deviceIp
: با این پارامتر آدرس ip دستگاه را میتوانید ارسال کنید. -
metrixSessionId
: شناسهای که متریکس به نشستهای کاربران در اپلیکیشن شما اختصاص میدهد. برای دریافت اطلاعات بیشتر درباره این شناسه و چگونگی دریافت آن در اپلیکیشن خود به مستندات فنی مراجعه کنید.
توضیح | کد خطا | نوع خطا |
---|---|---|
همانطور که در بالا اشاره شد، پارامترهای advertisingId یا idfa نمیتوانند خالی باشند و حتما یکی از آنها متناسب با سیستمعامل موردنظر باید فراهم شود | BAD_REQUEST: 400 | IDFA_AND_ADVERTISING_ID_SHOULD_NOT_BE_NULL |
همانطور که در بالا اشاره شد، پارامترهای advertisingId یا idfa نمیتوانند همزمان ارسال شوند و حتما فقط یکی از آنها باید ارسال شود | BAD_REQUEST: 400 | ONLY_ONE_OF_IDFA_AND_ADVERTISING_ID_SHOULD_BE_SET |
در صورتی که سرویس S2S را در پرایسینگ پلن یا تنظیمات اپلیکیشن خود فعال نکرده باشید، این خطا را دریافت خواهید کر | FORBIDDEN: 403 | S2S_FEATURE_NOT_AVAILABLE |
اگر یکی از پارامترهای ارسالی صحیح نباشد با این خطا مواجه میشوید. برای مثال dev-key را با مقداری متفاوت از آنچه در اپلیکشین خود وارد کرده اید، ارسال کنید | FORBIDDEN: 403 | INVALID_PARAMETERS |
اگر یکی از پارامترهای ارسالی صحیح نباشد با این خطا مواجه میشوید. برای مثال آدرس آی پی سروری که ریکوئست از آن ارسال میشود در بین آی پیهایی که در تنظیمات داشبورد تعریف کردهاید، نباشد | FORBIDDEN: 403 | INVALID_PARAMETERS |
در صورتی که slug ارسالی از سمت شما صحیح نباشد، این خطا را دریافت میکنید | NOT_FOUND: 404 | EVENT_TYPE_DOES_NOT_EXIST |