این سند به سوالات رایج در مورد SDKها و انتشار برای بازیهای Google Play در رایانه شخصی پاسخ میدهد.
کسب درآمد
آیا میتوانم بدون سرور پشتیبان از جریان خرید استفاده کنم؟
از دیدگاه امنیتی، پردازش بدون سرور پشتیبان توصیه نمیشود.
برای اطلاعات بیشتر، به فرآیند بدون سرور پشتیبان مراجعه کنید.
آیا سیستمهای پرداخت مبتنی بر API موجود پس از ادغام Google Play Games on PC SDK مجاز هستند؟
تمام پرداختها باید توسط Google Play Games on PC SDK با استفاده از Google Play Billing انجام شود. شما نمیتوانید از روش پرداخت مبتنی بر API موجود خود در همان بازی استفاده کنید.
چگونه میتوانیم خریدها را در حالت توسعهدهنده مصرف کنیم؟
خرید را ظرف ۳ دقیقه در حالت توسعهدهنده انجام دهید، در غیر این صورت وجه خرید به شما بازگردانده خواهد شد.
آیا پرداختهای دورهای یا اشتراکها پشتیبانی میشوند؟
نه برای آیندهی نزدیک، اگرچه میتوانید موارد استفادهی خاص خود را برای اضافه کردن به نقشهی راه آیندهمان ارائه دهید.
خطای صورتحساب (Billing Error) در تماسهای خرید من چیست؟
خطای BillingError پاسخ نتیجه پرداخت است. LaunchPurchaseFlow بلافاصله و بدون مسدود شدن، نتیجه را برمیگرداند، اما شما باید به فراخوانی آن گوش دهید تا بدانید چه زمانی تمام شده و نتیجه را ثبت کنید.
چگونه میتوانم از تأیید خرید سمت کلاینت استفاده کنم؟
ما استفاده از خرید سمت سرور و فرآیند تأیید آن را توصیه میکنیم. پردازش خریدها از برنامه کلاینت شما مستلزم آن است که بازی شما در لیست مجاز باشد. اگر بازی شما نیاز به دسترسی دارد، لطفاً با شریک گوگل خود تماس بگیرید. برای اطلاعات بیشتر، به فرآیند بدون سرور پشتیبان مراجعه کنید.
محدودیتهای API برای جستجوی جزئیات محصول چیست؟
حداکثر تعداد محصولاتی که میتوان در یک فراخوانی به API مربوط به
QueryProductDetailsدرخواست داد، ۵۰ عدد است. اگر از این حد تجاوز کنید، باید درخواست را به چندین فراخوانی تقسیم کنید.چه پارامترهایی هنگام فراخوانی Query Purchases یا Launch Purchase Flow در Billing Client مورد نیاز است؟
این تابع
QueryPurchasesContinuationمیپذیرد که یک فراخوانی تابع با امضایstd::function<void(QueryPurchasesResult)>است. این فراخوانی، نتیجه را به همراه تمام جزئیات خریدProductPurchaseDetails) به شما ارسال میکند. این اطلاعات در فایلهای هدر SDK در فایلincludes/billing/models.hموجود است.تابع ok() در خروجی
launch_purchase_flow_resultدارای توابعok() وcode() است. تابعok() میزان موفقیتآمیز بودن جریان را برمیگرداند. تابعcode() مقدارBillingError(includes/billing/enums.h) را برمیگرداند که دارای 10 حالت خطای احتمالی، مانند لغو توسط کاربر یا خطای شبکه است.آیا سفارش سفارشی برای جریان خرید اولیه در بخش صورتحساب مشتری پشتیبانی میشود؟
در طراحی فعلی SDK، هیچ راهی برای ارسال payload خودتان وجود ندارد. با این حال، میتوانید هر ترکیبی از
obfuscated_account_idوobfuscated_profile_idرا ارائه دهید. میتوانید هیچ کدام، فقط یکی یا هر دو را ارائه دهید.فیلد
offer_tokenالزامی است و پیشنهاد خریدی را که کاربر در جریان پرداخت سعی در خرید آن دارد، مشخص میکند. در حال حاضر، هر SKU در Google Play دقیقاً یک پیشنهاد دارد (برای مثال، خرید یک کالا با قیمت 10 دلار). در آینده، تیم صورتحساب Play از چندین پیشنهاد پشتیبانی خواهد کرد.برای اطمینان از مرتبط بودن فرادادهها در صورت وقفه در جریان خرید، قبل از اجرای پنجره خرید، فرادادهها را در سرور بکاند خود ذخیره کنید و آنها را با شناسه حساب کاربری، SKU خریداری شده و مهر زمانی فعلی مرتبط کنید. برای اطلاعات بیشتر، به بخش مرتبط کردن خرید با دادههای داخلی مراجعه کنید.
آیا خطای تایم اوت در صورتی که کاربر در حین فرآیند خرید، مرورگر را بدون پرداخت ببندد، در نظر گرفته شده است؟
بله، این یک مشکل شناخته شده و یک رفتار از پیش تعیین شده در جریان مبتنی بر مرورگر است. ما به طور فعال روی یک ویژگی خرید یکپارچه (مبتنی بر WebView) کار میکنیم که جریان پرداخت را در داخل بازی حفظ کرده و این مشکل وقفه زمانی را حل میکند.
پیشنیازهای تغییر از پرداخت با گوگل با OAuth به پرداخت با گوگل بومی با DLL چیست؟
بازیها میتوانند همچنان از ورود به سیستم OAuth با گوگل برای مدیریت حساب کاربری وارد شده استفاده کنند، اما گوگل توصیه میکند که استفاده از APIهای پرداخت قدیمی REST را متوقف کنید. تغییر از APIهای پرداخت REST (با ورود به سیستم OAuth2) به جریان SDK میتواند یک عملیات با علامتگذاری ویژگی باشد، بنابراین هر دو میتوانند برای مدتی در کنار هم وجود داشته باشند در حالی که بازی تغییر میکند.
آیا فراخوانی API مربوط به Launch Purchase Flow از طریق مرورگر وب پردازش میشود؟
بله، فعلاً از طریق مرورگر پردازش میشود. گوگل قصد دارد کل جریان را بدون اینکه بازی از طریق SDK قابل دستیابی باشد، تکمیل کند.
آیا کاربر برای خرید هر بازی باید جداگانه وارد سیستم شود؟
حساب کاربری پیشزمینه در Google Play Games برای هر جلسه بازی استفاده میشود، بنابراین نیازی به ورود مجدد ندارید. حسابی که هنگام شروع جلسه بازی در Google Play Games استفاده میکنید، حسابی است که فراخوانیهای API از طریق آن صادر میشوند. وقتی یک جریان خرید را در مرورگر راهاندازی میکنید، باید وارد سیستم شوید و از همان حساب کاربری که در جلسه بازی استفاده شده است، استفاده کنید. اگر کاربر با حساب دیگری وارد سیستم شده باشد، جریان وب از او میخواهد که حسابهای خود را تغییر دهد.
آیا یک بازی میتواند همزمان از SDK بومی و سیستمهای پرداخت قدیمی پشتیبانی کند؟
سیستم پرداخت بسته به نسخه باینری بازی، تحت یک مدل جریان دوگانه عمل میکند. کاربران نسخههای قدیمی به استفاده از جریان موجود ادامه میدهند و کاربران نسخههای جدید به پرداختهای مبتنی بر SDK روی میآورند. کاربران هر دو جریان پرداخت در طول دوره انتقال، در کنار هم وجود دارند.
بسته نرمافزاری ویندوز
هنگام ارسال WAB با استفاده از لانچر 3P، آیا بسته بازی برای بررسی لازم است؟
شما میتوانید فقط فایل نصبی خود را ارسال کنید و نیازی به ارسال کل بسته بازی خود ندارید، منتقد میتواند بسته بازی شما را با استفاده از فایل نصبی دانلود کند.
آیا محدودیتی برای اندازه فایل WAB وجود دارد؟
شما میتوانید تا سقف ۱۰ گیگابایت فایل برای WAB آپلود کنید.
چرا بازی من بعد از آپلود WAB نصب یا نمایش داده نمیشود؟
اگر بازی شما بدون نسخه از پیش موجود برای کامپیوتر ("WAB برای اولین بار") در حال انتشار است، سیستم ممکن است به طور خودکار آن را در حالت نگهداری انتشار مدیریتشده قرار دهد. این اتفاق میافتد زیرا هیچ خط پایهای برای بهروزرسانی وجود ندارد. برای انتشار کامل WAB و در دسترس قرار دادن بازی برای نصب، باید به کنسول گوگل پلی بروید و اقدام انتشار مورد نیاز را به صورت دستی انجام دهید (برای مثال، روی "انتشار تغییرات" کلیک کنید).
چگونه میتوانم WAB را برای آزمایش داخلی آپلود کنم؟
حسابهای کاربری لیست مجاز را با گوگل به اشتراک بگذارید تا گوگل بتواند آنها را برای آزمایش داخلی فعال کند. پس از اینکه گوگل لیست را دریافت کرد، مطمئن میشود که آنها در فرآیند پذیرش (onboarding process) گنجانده شدهاند.
بسته WAB باید کجا آپلود شود؟
شما میتوانید بسته WAB را در محلی که در سوال اول ذکر شد آپلود کنید. با این حال، نمیتوانید آن را به صورت دستی منتشر کنید. شما باید زمان دقیق UTC (به ساعت) را به کارکنان پشتیبان گوگل ارائه دهید. سپس گوگل برنامه انتشار را پیکربندی میکند و اطمینان حاصل میکند که به موقع منتشر شود.
کیت توسعه نرمافزار کامپیوتر (SDK)
چه تفاوتهایی بین Legacy API و Google Play Games on PC SDK وجود دارد؟
- API قدیمی ما فقط قابلیت پرداخت صورتحساب را ارائه میدهد.
- کیت توسعه نرمافزار کامپیوتر (PC SDK) از سرویس دسکتاپ گوگل (GDS) و تمام ویژگیهای کامپیوتر شخصی پشتیبانی میکند.
- با استفاده از کیت توسعه نرمافزار کامپیوتر (PC SDK)، دیگر نیازی به ورود به سیستم گوگل مبتنی بر مرورگر نیست.
آیا روش جایگزینی برای راهاندازی اولیه SDK با اجرای مستقیم بازی با استفاده از لانچر بازی، بدون نیاز به استفاده از Google Play Games در کامپیوتر، وجود دارد؟
بازی شما باید از طریق کلاینت Google Play Games on PC اجرا شود. برای جزئیات بیشتر، به این سند توسعهدهنده مراجعه کنید.
آیا SDK اصلی کامپیوتر از کاراکترهای چند بایتی در فایل صدور گواهینامه PEM پشتیبانی میکند؟
بله، SDK از کاراکترهای چند بایتی برای صدور گواهینامه پشتیبانی میکند.
SDK چگونه ورود به حساب گوگل را برای چندین نمونه یا حساب کاربری مدیریت میکند؟
هر اجرای بازی در Google Play Games به عنوان یک "جلسه بازی" در نظر گرفته میشود و هر "جلسه بازی" میتواند یک حساب کاربری مرتبط با خود داشته باشد. این حسابها میتوانند متفاوت باشند. بنابراین اگر بازی را با حساب A اجرا کنید و سپس به حساب B بروید و دوباره اجرا کنید، هر دو میتوانند همزمان اجرا شوند.
آیا ادغام Play Install Referrer با PC SDK کار میکند؟
کیت توسعه نرمافزار (SDK) کامپیوتر (نسخه ۲۵.۵.۴۰۹.۰ و بالاتر) از رابط برنامهنویسی کاربردی ارجاعدهنده نصب بازی (Play Install Referrer API) پشتیبانی میکند. برای اطلاعات بیشتر، به رابط برنامهنویسی کاربردی ارجاعدهنده نصب بازی (Play Install Referrer API ) مراجعه کنید.
پرتابگر
اگر بازیکنی به جای Google Play Client از یک لانچر ۳P استفاده کند، آیا حساب Play Games Services او به طور خودکار همگامسازی میشود؟
برای اینکه توابع SDK کار کنند، بازی باید مستقیماً از طریق کلاینت Google Play Games اجرا شود. اگر فرآیند دیگری، مانند یک نصبکننده یا برنامهی اجراکننده، بازی را آغاز کند، آن فرآیند نیز باید از کلاینت Google Play Games اجرا شود. بازی باید تمام پارامترهای دریافتی از کلاینت را به فرآیند کلاینت منتقل کند.
اگر Google Play Games یک لانچر بازی شخص ثالث را اجرا کند، چگونه میتوانم مقداردهی اولیه را انجام دهم؟
لازم نیست SDK را مستقیماً در لانچر خود ادغام کنید. با این حال، باید تمام آرگومانهای خط فرمان دریافت شده توسط لانچر از کلاینت Google Play Games را مستقیماً به فرآیند فرزند ایجاد شده (فایل اجرایی بازی) ارسال کنید. اگر مقداردهی اولیه با شکست مواجه شود (برای مثال، با برگرداندن
kActionRequiredShutdownClientProcess)، تمام فرآیندها از جمله لانچر باید خاتمه یابند تا Google Play Games بتواند بازی را بازیابی و به طور خودکار دوباره راهاندازی کند. برای جزئیات بیشتر، به مرحله 5 در راهنمای راهاندازی مراجعه کنید.چگونه میتوانم بهروزرسانیها و تعمیر و نگهداری بازی و لانچر خود را پس از تولید، مدیریت کنم؟
بهروزرسانیها و نگهداریهای بعدی باید از طریق لانچر شما انجام شود. کلاینت بازیهای گوگل پلی از عملکردهای بهروزرسانی پشتیبانی نمیکند، بنابراین لانچر باید بتواند هم بازی و هم خود لانچر را بهروزرسانی کند.
مقداردهی اولیه
وقتی با استفاده از برنامه Google Play Games یک بازی را شروع میکنم، آیا جزئیات حساب گوگل من همگامسازی میشود؟
پس از اجرای بازی از طریق کلاینت Google Play Games، حساب کاربری به طور خودکار همگامسازی میشود و نیازی به ورود مجدد از طریق فرآیند ورود به سیستم Google نیست.
آیا میتوان پارامترهای مقداردهی اولیه را چندین بار دوباره استفاده کرد؟
این امر تا زمانی که کلاینت Google Play Games در حال اجرا باشد و اطلاعات ورود معتبر باشد، امکانپذیر است. با این حال، در سناریوهایی مانند سناریوی شرح داده شده در راهنما، تمام فرآیندهای راهاندازی شده توسط بازی باید با بستن بازی توسط کاربر یا خروج از بازی به دلیل خرابی مقداردهی اولیه SDK، مانند
kActionRequiredShutdownClientProcess، خاتمه یابند.راهی هست که بشه یه میانبر درست کرد که بشه مستقیم بازی رو باز کرد؟
برای باز کردن مستقیم بازی میتوانید از آدرس زیر استفاده کنید:
googleplaygames://launch/?pid=2&id=com.company.gamenameاین URI از تشخیص باز بودن یا نبودن کلاینت Google Play Games on PC پشتیبانی میکند. اگر کلاینت باز نباشد، کلاینت Google Play Games قبل از اجرای بازی یا لانچر باز میشود. برای جلوگیری از اجرای چندین نمونه از بازی یا لانچر، باید بازی یا لانچر را مدیریت کنید.
آیا راهی برای تأیید نصب بازیهای گوگل پلی روی کامپیوتر بدون استفاده از SDK وجود دارد؟
شما میتوانید وضعیت نصب بازیهای گوگل پلی روی کامپیوتر را بدون ادغام SDK با بررسی وجود کلید رجیستری ویندوز زیر تأیید کنید:
HKEY_LOCAL_MACHINE\SOFTWARE\Google\Play Games Servicesوجود این کلید نشان میدهد که سرویسهای Google Play Games (که برای اجرای بازیها روی کامپیوتر لازم است) روی دستگاه نصب شدهاند. اگر این کلید وجود ندارد، باید کاربر را به صفحه نصب Google Play Games روی کامپیوتر هدایت کنید تا کلاینت را دانلود و نصب کند.
آزمایش
آیا محیطهای تست باز یا تست بستهای مشابه موبایل وجود دارد؟
اگرچه یک محیط آزمایشی (sandbox) اختصاصی برای همه در دسترس نیست، اما ما نیاز به یک محیط آزمایشی شبیه به محیط عملیاتی برای توسعهدهندگان را تشخیص میدهیم. به زودی یک راهحل قویتر ارائه خواهد شد.
چطور میتوانم آزمایشکنندگان جدید اضافه کنم؟
رابط گوگل شما برای هر پروژه کامپیوتری یک گروه ایمیل ایجاد میکند که باید حسابهای گوگل آزمایشکنندگان به آن اضافه شود. فقط اعضای این گروه ایمیل مجاز به دانلود بستههای آزمایشی از طریق بازیهای گوگل پلی هستند.
متفرقه
آیا میتوانم از VPN استفاده کنم؟
برای توسعهدهندگانی که نیاز دارند بازی خود را در مناطقی آزمایش کنند که Google Play Games در رایانه شخصی پشتیبانی نمیشود، توصیه میکنیم از VPN برای دریافت آدرس IP از یک منطقه پشتیبانیشده استفاده کنند.
مطمئن شوید که حالت TUN را روی VPN فعال کردهاید. راهنمایی در مورد فعال کردن حالت TUN و پیکربندی فایروال را میتوانید در دفترچه راهنمای ارائه دهنده VPN پیدا کنید.
پس از فعال شدن حالت TUN، برای آزمایش، Google Play Games را روی رایانه شخصی و شبیهساز نصب کنید .
چگونه میتوانم توسعه بازیهای گوگل پلی را روی کامپیوتر با یونیتی یا ویرایشگر UE شروع کنم؟
- حالت توسعهدهنده را فعال کنید و آزمایش را ادامه دهید.
- فایلهای
manifest.xmlو.dllرا اضافه کنید. برای اطلاعات بیشتر، به سند توسعهدهنده مراجعه کنید. - برای اهداف آزمایشی، یک GUID شریک دسترسی زودهنگام ثبت کنید.
چگونه میتوانم از کلیدهای رجیستری به درستی استفاده کنم؟
شما باید کلیدهای رجیستری را بر اساس کندوی ریشه ایجاد کنید. میتوانید کندوی ریشه را بسته به هدف و ماهیت دادهها، روی
HKEY_LOCAL_MACHINEیاHKEY_CURRENT_USERتنظیم کنید. کندویHKEY_LOCAL_MACHINEبه عنوان مثال در دستورالعملها استفاده شده است.الزامات بررسی بستههای رایانه شخصی توسط گوگل چیست؟
بستههای کامپیوتری تحت اسکن بدافزار قرار میگیرند و پس از آن، بررسیکنندگان فقط مراحل نصب بازی، راهاندازی موفقیتآمیز و حذف نصب را آزمایش میکنند.
آیا ادغام همه APIها ضروری است؟
سایر APIها الزامی نیستند، اما مزایای بیشتری ارائه میدهند.
google::play::billingبرای خریدهای درونبرنامهای و فروش محتوای دیجیتال ضروری است.google::play::install_referrerبرای ردیابی دادههای ارجاعی مورد نیاز است تا به شما کمک کند بفهمید کدام منابع ترافیکی بیشترین کاربران را برای دانلود برنامه شما ارسال میکنند.google::play::games::integrityبرای محافظت از برنامه شما در برابر عوامل مخرب با شناسایی دستگاههای بالقوه خطرناک و شبیهسازهای ناشناخته مورد نیاز است.چرا برخی از فرآیندهای بازی با بسته شدن کلاینت بازیهای گوگل پلی متوقف میشوند، در حالی که برخی دیگر اینطور نیستند؟
گوگل زیرفرآیندها یا فرآیندهای بازی در حال اجرا را کنترل نمیکند. رفتار آن بستگی به این دارد که آیا بازی یک بازی شبیهسازی شده اندروید است یا یک بازی بومی کامپیوتر. بازیهای شبیهسازی شده در محیط خودشان نصب میشوند، بنابراین رفتار آنها تا حد زیادی به مقداردهی اولیه و خاموش شدن شبیهساز بستگی دارد.
آیا باید از قابلیت حذف نصب بازیهای گوگل پلی استفاده کنم یا از یک حذفکنندهی سفارشی؟
گوگل استفاده از قابلیت حذف نصب بازیهای گوگل پلی ما را توصیه میکند.
کمکهای بیشتر
اگر به کمک بیشتری نیاز دارید که در این سوالات متداول پوشش داده نشده است، لطفاً با google-play-games-pc@google.com تماس بگیرید.