اتصال مستقیم یا سرور اختیاری
هر ۱۳ فرمت بدون سرور؛ کیف دیدنکس یا اتصال اختیاری به حساب اپ.
بدون سرور شخصی؛ هر ۱۱ نوع تبلیغ
SDKهای وب، Flutter، Android/Kotlin، iOS/Swift، Unity، B4A، React Native و Godot با شناسه رسانه/جایگاه و نشانی دیدنکس کار میکنند. ورود کاربر، دامنه برای اپ، JWT و کلید خصوصی لازم نیست. در روش مستقیم، جایزه یکبار در کیف دیدنکسِ همین نصب ذخیره میشود.
سرور اختصاصی فقط یک انتخاب پیشرفته برای اتصال جایزه به حساب و پایگاه داده خود اپ است. کیف جایزه و مصرف موجودی · مقایسه دو روش
| روش | سرور ناشر | محل ثبت جایزه |
|---|---|---|
| مستقیم، پیشفرض | لازم نیست؛ حتی بدون صفحه ورود اپ | کیف نصب در زیرساخت دیدنکس؛ ثبت و مصرف یکتا |
| سرور اختصاصی، اختیاری | سرور موجود اپ و نشست معتبر | حساب خود اپ با پراکسی و SQL ناشر |
کدام نشانی را وارد کنم؟
در حالت مستقیم، نشانی سرویس تبلیغ خود دیدنکس است: https://didnex.com. کد پنل این مقدار را خودکار میگذارد و فیلد «سرور ناشر» پنهان است. دامنه، سرور، JWT و کلید API برای اپ نمیخرید و نمیسازید.
فقط در روش اختیاری سروری، «نشانی HTTPS سرور اختصاصی اپ» مثل https://api.example.com/ads مسیر پراکسی نصبشده روی سرور خود اپ است. هنگام ثبت رسانه چنین آدرسی ایجاد نمیشود. YOUR-BACKEND فقط جایگزین نمونه است.
نصب و جایگاه چگونه شناسایی میشوند؟
اپ با شناسه بسته و بررسی مدیر، سایت با دامنه و DNS تأیید میشود. برای تبلیغات معمولی شناسه جایگاه کافی است. هنگام درخواست جایزه یا عضویت پوش، SDK یک شناسه نصب و توکن محرمانه تصادفی از دیدنکس میگیرد و در فضای برنامه نگه میدارد؛ ساخت حساب کاربری لازم نیست. توکن نصب، کلید API ناشر نیست و نباید در URL، کد عمومی، گزارش یا نسخههای بین دستگاهها به اشتراک گذاشته شود.
کیف به همین نصب متصل است؛ حساب سراسری شخص یا بازیابی خودکار پس از حذف داده/تغییر دستگاه نیست. اگر ذخیره محلی مسدود یا پاک شود، توکن قبلی و دسترسی به آن کیف ممکن است از دست برود. برای هویت چنددستگاهی از روش اختیاری سروری استفاده کنید. جزئیات و نمونه مصرف جایزه.
نام بسته و شناسه جایگاه اثبات اصالت نصب نیستند؛ اعتبارسنجی اپ و دستگاه اختیاری است و در تنظیمات همان پلتفرم راهاندازی میشود. در توزیع خارج از فروشگاه یا دستگاه پشتیبانینشده، نتیجه میتواند unknown باشد؛ نام بسته بهتنهایی اثبات اصالت نیست. تأیید رسانه، سقف درخواست و نشست، زمان واقعی و ترتیب رویدادهای ویدیو و بررسی درآمد همچنان برقرارند.
قرارداد مستقیم اپ
POST https://didnex.com/ad/v1/app
Content-Type: application/json
{
"unitId": "UNT_APPROVED",
"packageName": "com.company.app",
"device": "android",
"formFactor": "mobile",
"sessionId": "RANDOM_PROCESS_SESSION_16_PLUS",
"requestNonce": "RANDOM_ATTEMPT_16_PLUS",
"supportedFormats": [
"banner",
"adaptive_banner",
"native",
"native_video",
"video",
"interstitial",
"rewarded",
"rewarded_interstitial",
"app_open",
"playable",
"audio"
]
}برای جایزه، SDK پیش از این درخواست، installationToken را از /ad/v1/audience با action=register میگیرد. آن را فقط در بدنه HTTPS میفرستد. نمونههای پلتفرم این کار و claim رسید را خودکار انجام میدهند. وب از /ad/v1/request با Origin سایت تأییدشده استفاده میکند.
اتصال اختیاری به حساب خود اپ
دستورهای زیر فقط برای انتخاب روش سروری هستند. در حالت مستقیم از آنها عبور کنید؛ همه فرمتها و کیف نصب بدون این مراحل کار میکنند.
روش پیشرفته: پراکسی روی سرور اختصاصی اپ
اپ با JWT کوتاهعمر سرویس خودتان به سرور شما وصل میشود. سرور ناشر JWT را اعتبارسنجی میکند و با کلید serve دیدنکس تبلیغ میگیرد. packageName باید دقیقاً شناسه بسته رسانه باشد؛ دامنه یا Origin سایت برای اپ فرستاده نمیشود. هرگز کلید md_ را در APK، IPA، WebView یا کد عمومی قرار ندهید.
POST https://didnex.com/ad/v1/request
Authorization: Bearer md_YOUR_SERVER_KEY
Content-Type: application/json
{"unitId":"UNT_ID","packageName":"com.company.app","device":"android",
"formFactor":"mobile","country":"IR","sessionId":"RANDOM_APP_SESSION_16_PLUS",
"supportedFormats":["banner","adaptive_banner","native","native_video","video","interstitial","rewarded","rewarded_interstitial","app_open","playable","audio"],
"personalized":false,"childDirected":false}country و device از سرور احرازشده ناشر میآیند. formFactor برابر mobile، tablet یا unknown است. sessionId یک مقدار تصادفی محدود به نشست است؛ ایمیل، شماره تلفن، IMEI یا شناسه خام حساب نفرستید. در بسته ناشر، publisher-proxy.mjs، پیکربندی Worker، جدول جایزه و نمونههای Kotlin/Swift موجودند. همه SDKها از ۱۱ فرمت با روش اتصال مستقیم یا سرور اختیاری پشتیبانی میکنند.
راهاندازی پراکسی همراه بسته
- بسته ناشر را باز کنید و سه فایل publisher-proxy.mjs، publisher-rewards.sql و publisher-worker.wrangler.jsonc را در پوشهای روی سیستم توسعه خود بگذارید.
- در config، DIDNEX_ORIGIN را نشانی همین پلتفرم، APP_PACKAGE را شناسه بسته تأییدشده و APP_JWT_ISSUER / APP_JWT_AUDIENCE را مقادیر سرویس نشست اپ خود قرار دهید.
- روی حساب Cloudflare خودتان D1 بسازید، UUID آن را در config جایگزین کنید، SQL را اعمال و سه secret را ثبت کنید. سپس Worker را مستقر کنید و URL HTTPS خروجی را به SDK بدهید.
# Run inside the publisher backend folder, on YOUR development machine.
npx wrangler d1 create didnex-publisher-rewards
# Copy the returned database UUID into publisher-worker.wrangler.jsonc.
npx wrangler d1 execute REWARD_DB --remote --config publisher-worker.wrangler.jsonc --file publisher-rewards.sql
npx wrangler secret put DIDNEX_API_KEY --config publisher-worker.wrangler.jsonc
npx wrangler secret put APP_JWT_SECRET --config publisher-worker.wrangler.jsonc
npx wrangler secret put REWARD_USER_SECRET --config publisher-worker.wrangler.jsonc
npx wrangler deploy --config publisher-worker.wrangler.jsoncDIDNEX_API_KEY همان کلید serve مالک ناشر است؛ APP_JWT_SECRET باید با سرویس صادرکننده JWT اپ خودتان یکسان باشد. REWARD_USER_SECRET تصادفی، حداقل ۳۲ کاراکتر و ثابت میماند. این فرمانها به حساب و مجوز واقعی خودتان نیاز دارند و در نصب SDK خودکار اجرا نمیشوند. برای HTTP سرور اختصاصی، همین پروتکل را با اعتبارسنجی رسمی نشست سرویس خود پیاده کنید؛ کلید serve را به کلاینت برنگردانید.
JWT اپ، کوکی پنل دیدنکس نیست. برای برنامه بدون ورود، سیاست نشست مهمان را باید در سرور خود تعریف کنید؛ SDK توکن یا هویت فرضی ایجاد نمیکند. جایزه باید به حساب واقعی یا شناسه مهمان معتبر و پایدار در سرور شما متصل باشد. Unity و B4A نسخه اول formFactor=unknown میفرستند؛ فیلترهای کمپین باید در دوره اتصال unknown را هم مجاز کنند.
دانلود بسته اتصال ناشر