این سند نحوه شناسایی و ارائه محصولات یکبار مصرف در بازی خود را پس از خرید بازیکنان با Play Points در برنامه Google Play شرح می دهد.
هنگامی که کاربران امتیازهای Play خود را برای یک محصول یکبار مصرف در برنامه Google Play پسخرید کردند، موارد باید فوراً در بازی شما تحویل داده شوند. موارد زیر نحوه خرید اقلام توسط کاربر با Play Points را نشان می دهد.
1. روی Play Points کلیک کنید. | 2. برای مشاهده موارد، روی تب Use کلیک کنید. | 3. یک مورد را انتخاب کنید و برای تکمیل خرید روی Use Points کلیک کنید. | 4. کالا را دریافت کنید. |
![]() | ![]() | ![]() | ![]() |
در مثال، بازی در حین خرید محصول اجرا نمی شود. وقتی بازی روی دستگاهشان نصب نشده است، کاربران همچنین میتوانند امتیازهای Play را با محصولات مبادله کنند. به همین دلیل، باید بازی خود را طوری طراحی کنید که تحویل آیتم های درون برنامه ای را از خارج از فروشگاه درون بازی انجام دهد.
قبل از اینکه شروع کنید
قبل از شناسایی و ارائه یک محصول یکبار مصرف، باید محصول و تبلیغات Play Points را ایجاد کنید .
الزامات تحویل
وقتی محصولات یکبار مصرف را در بازی خود با استفاده از تبلیغات Play Points تحویل میدهید، باید الزامات این بخش را دنبال کنید.
زمان تحویل
وقتی بازیکنی امتیازهای Play را با یک محصول یکبار مصرف مبادله می کند، باید فوراً مورد را بدون نیاز به شروع مجدد بازی توسط بازیکن تحویل دهید. در مواردی که محتوای بازی باید از قبل تکمیل شود، مانند تکمیل یک آموزش، باید بلافاصله بعد از آن، مورد تحویل داده شود.
پیام تحویل
هنگامی که کاربر پس از خرید یک محصول یک بار در خارج از بازی به بازی شما بازگشت، باید تأییدیه ای مبنی بر اینکه محصول با موفقیت در بازی اعطا شده است را نمایش دهید. پیام باید به شکل یک گفتگو یا پیام درون بازی باشد. کاربران برای دریافت کالا نباید هیچ اقدام دیگری را انجام دهند.
فرمت پیام مورد نیاز در اینجا آمده است:
یک پیام واضح مبنی بر اینکه مورد دریافت شده است.
برای اطمینان از اینکه کاربران می توانند آن را از سایر محتوای دریافتی خود متمایز کنند، به نام مورد به وضوح مراجعه کنید و به "امتیازهای بازی" مراجعه کنید.
در صورت وجود اقلام مشابه با چند نام، نام کالا باید شامل نام صحیح کالا نیز باشد.
گفتگو، پیام یا اعلان درون بازی باید برای کاربر قابل مشاهده باشد تا زمانی که کاربر روی تأییدیهای مانند « ادامه» یا «تأیید» کلیک کند. نباید دکمه لغو وجود داشته باشد، زیرا این پیام فقط برای اطلاع کاربران از موردی است که در بازی دریافت کرده اند. اگر دکمه تأیید وجود نداشته باشد، پیام باید حداقل 3 ثانیه قبل از ناپدید شدن برای کاربران قابل مشاهده باشد تا اطمینان حاصل شود که کاربران می دانند کالای خود را دریافت کرده اند.
در اینجا یک پیام مثال است:
"مورد دریافت شد! شما به تازگی 100 جواهر با Play Points دریافت کردید. ادامه دهید."
کاربران باید یک انیمیشن یا برخی تاییدات بصری را ببینند که افزایش موجودی ارز درون بازی آنها را نشان می دهد. اگر مورد یک کالای درون برنامه ای بادوام یا مصرفی است، کاربران باید به جایی هدایت شوند که قفل آن قفل شده است یا در بازی در دسترس است.
موارد دریافتی خارج از بازی را شناسایی کنید
اگر بازی شما از کتابخانه صورتحساب Google Play استفاده میکند، تغییرات زیر را انجام دهید تا محصولات یکبار مصرفی که خارج از بازی دریافت میشوند را شناسایی کنید.
در پاسخ تماس
[onResume()][onResume]
بازی خود، روش[queryPurchases()][queryPurchases]
را فراخوانی کنید تا لیستی از آیتم ها را بازیابی کنید، بنابراین می توانید تعیین کنید که کدام موارد تایید نشده اند.اگر بازی شما دارای سرور است، اکیداً توصیه میکنیم که خرید از سرور خود را با استفاده از API اشتراکها و خریدهای درونبرنامه تأیید کنید.
اگر اقلامی وجود دارد که دارای مالکیت هستند اما تأیید نشدهاند، خرید را با
[consumeAsync()][consumeAsync]
برای اقلام مصرفی یا با[acknowledgePurchase()][acknowledgePurchase]
برای اقلام غیر مصرفی تأیید کنید.به کالای خریداری شده در داخل بازی حق اعطا کنید.
موارد دریافت شده در حالت تقسیم صفحه را شناسایی کنید
اگر بازی شما از حالت چند پنجرهای پشتیبانی میکند، این امکان برای کاربران وجود دارد که امتیازهای Play را پسخرید کرده و مورد را دریافت کنند، در حالی که برنامه Play Store و بازی شما را همزمان اجرا میکنند. این اسکرین شات یک مثال را نشان می دهد:
برای پشتیبانی از این سناریو با کتابخانه صورتحساب Google Play، موارد زیر را انجام دهید:
Google Play روش
[onPurchasesUpdated()][onPurchasesUpdated]
فراخوانی می کند تا به بازی شما اطلاع دهد که یک مورد جدید در انتظار وجود دارد.اگر بازی شما دارای سرور است، اکیداً توصیه میکنیم که خرید از سرور خود را با استفاده از API اشتراکها و خریدهای درونبرنامه تأیید کنید.
خرید را با
consumeAsync()
برای اقلام مصرفی یا باacknowledgePurchase()
برای اقلام غیر مصرفی تایید کنید.به کالای خریداری شده در داخل بازی حق اعطا کنید.
نمایش تاییدیه تحویل
وقتی کاربران امتیازهای Play را پسخرید میکنند و مورد مبادلهای دریافت میکنند، انتظار دارند که بازی یک پیام درون بازی نشان دهد، یا از نوعی اعلان استفاده میکند تا بدانند بازی به درستی مورد را دریافت و پردازش کرده است. در اینجا چند گزینه تأیید تحویل وجود دارد:
نمایش یک گفتگوی درون بازی
پیام را به یک جعبه پیام درون بازی تحویل دهید و به وضوح بیان کنید که یک پیام جدید در جعبه پیام درون بازی وجود دارد.
از پیام اعلان سیستم عامل استفاده کنید.
این امکان وجود دارد که بازی در هر حالتی در هنگام دریافت کالای تبلیغاتی از جمله نصب نشدن روی دستگاه باشد. شما باید آیتم های تبلیغاتی را بدون توجه به وضعیتی که بازی در آن زمان دریافت می شود، شناسایی کنید. با این حال، برخی استثناها وجود دارد که ممکن است قابل قبول باشد که بلافاصله به کاربر اطلاع داده نشود که مورد دریافت شده است. به عنوان مثال:
در حین بازی، جایی که نمایش یک پیام ممکن است حواس کاربر را پرت کند. در این صورت باید پس از پایان عملیات به کاربر اطلاع دهید.
در طول کات سین، جایی که نمایش یک پیام ممکن است حواس کاربر را پرت کند. در این صورت باید پس از اتمام کات سین به کاربر اطلاع دهید.
در طول آموزش اولیه و تنظیمات کاربر بخش های بازی. توصیه میکنیم بلافاصله پس از باز کردن بازی یا در هنگام راهاندازی اولیه کاربر، پاداش را به کاربران جدید اطلاع دهید. با این حال، قابل قبول است که منتظر بمانید تا سکانس اصلی بازی برای اطلاع کاربر در دسترس باشد.
اگر برنامه شما دارای چندین نویسه یا حساب است که مورد می تواند روی آنها اعمال شود، توصیه می کنیم از کاربر بخواهید انتخاب کند که کدام حساب موارد تبلیغاتی را دریافت می کند.
هنگام تصمیم گیری در مورد زمان و نحوه اطلاع رسانی به آنها از موارد تبلیغاتی، کاربران را در نظر بگیرید. هر زمان که کاربر فوراً اعلان دریافت نمی کند، ممکن است گیج شود، بازی را متوقف کند، با پشتیبانی کاربر تماس بگیرد یا در مورد آن در رسانه های اجتماعی شکایت کند.
به روز رسانی برای موتورهای بازی خاص
در اینجا برخی از ملاحظات برای موتورهای بازی خاص وجود دارد:
اگر بازی شما با Unity ساخته شده است، توصیه میکنیم بررسی کنید که آیا پیادهسازی IAP که استفاده میکنید از تبلیغات Play Points پشتیبانی میکند یا خیر.
اگر بازی شما با Cocos2d-x یا Unreal Engine (C/C++) ساخته شده است، به احتمال زیاد باید کد JNI را که API های جاوا را فراخوانی می کند از کد C/C++ خود بنویسید.
بهترین شیوه های سمت سرور
این بخش شامل بهترین شیوه های سمت سرور برای استفاده برای تبلیغات Play Points است:
اگر با
Purchases.products: get
، بررسی کنید که آیا باید موارد مبادله جوایز Play و سایر محصولات یکبار مصرف را به طور جداگانه بر اساس مقادیرproductId
مدیریت کنید.اگر از
Onetimeproducts: list
در سرور خود استفاده میکنید، بررسی کنید که آیا باید موارد مبادله جوایز Play را از سایر محصولات یکبار مصرف بر اساس مقادیرproductId
جدا کنید.برای تأیید اینکه آیا نیاز به ایجاد تغییرات اضافی دارید، بهترین روشهای زیر را مرور کنید:
- مرجع:
- اجرای تأیید امضای سمت سرور
- اطمینان حاصل کنید که مقادیر
purchaseToken
وorderId
منحصر به فرد هستند و قبلاً استفاده نشده اند.
عیب یابی
این بخش شامل توصیه هایی برای سناریوهایی است که می تواند منجر به درخواست مشتری شود.
چندین حساب کاربری
اگر کاربری چندین حساب Google در دستگاه خود داشته باشد و امتیازهای Play را با حساب اشتباهی پسخرید کند، Google نمیتواند موارد را به حسابهای دیگر منتقل کند. به همین ترتیب، برنامه شما نمی تواند مورد را با فراخوانی متد getPurchases()
انتقال دهد. در این سناریو، با استفاده از عملیات پشتیبانی مشتری، موارد درون برنامه را به صورت دستی در اختیار کاربر قرار دهید.
موارد با تاخیر یا گم شدن
اگر بازیکنان با موارد پاداش با تأخیر یا گم شدن مواجه شدند، راهنمای عیبیابی خریدهای درونبرنامه را در اسناد راهنمای Google Play ببینید.