علت عدم نمایش تبلیغات ادموب برای گوگل پلی در اپ v2rayng ام که نوشتیم (admob)
بعد از کلی ور رفتن که چرا تبلیغات گوگل ادموب وقتی که به vpn هامون وصل میشیم نشون داده نمیشد متوجه شدیم که از تنظیمات v2rayng به طور پیشفرض نمایش همه تبلیغات بلاک شده، بخاطر همین هیچ تبلیغاتی نشون داده نمیشد.
بنابراین باید در v2rayng وارد بخش routing settings بشیم و category-ads-all که بلاک شده رو از بلاک دربیاریم تا تبلیغات نشون داده بشه
همچنین باید در فایل V2rayVpnService.kt که کد زیرو نوشتیم:
builder.addDisallowedApplication("com.v2ray.visavpn")این کدو باید کامنت کنیم که ترافیک داخلی اپ خودمون هم تانل بشه که بشه تبلیغات نشون داده بشه.
این کارهارو کنیم تبلیغات به درستی نمایش داده میشه.
نکته: با انجام کارهای بالا بازهم ترافیک داخلی اپ تانل نمیشد که متوجه شدیم نسخه های جدید v2rayng به طور خودکار یکاری کرده که کلا ترافیک داخلی اپ تانل نشه.
برای برداشتن این مورد که ترافیک اپ تانل بشه و بتونیم تبلیغاتو بعد اتصال به وی پی ان نشون بدیم باید در فایل V2rayVpnService.kt کد زیرو کامنت کنیم:
builder.addDisallowedApplication(selfPackageName)
سپس مشکل رفع میشه و ترافیک نرم افزار فعلی تانل میشه و میتونیم بدون مشکل تبلیغاتو بعد اتصال به وی پی ان لود کنیم.
آپدیت چندساعت بعد:
بعد از کلی ور رفتن متوجه شدیم که برای لود تبلیغات و بهتره قبل از انجام همه مراحل ابتدا به وی پی ان وصل بشیم و سپس مراحلش رو انجام بدیم.
چون یکی از مراحلو قبل از اینکه به وی پی ان وصل بشیم انجام میدادیم باعث میشد که تبلیغات نمایش داده نشه، بنابراین بهتره ابتدا به وی پی ان وصل بشیم سپس همه مراحلو انجام بدیم.
آپدیت 1404.05.09:
توی نسخه های جدید v2rayng هسته xray اومده یکاری کرده و متد protect رو برداشته.
نبودن این متد باعث شده که ترافیک داخلی پکیج نیم اپ یعنی مثلا com.v2ray.vless حتما باید مستقیم باشه و از تانل رد نشه، وگرنه به فیلترشکن وصل بشیم برنامه بعد از اتصال به فیلترشکن کار نمیکنه، همین باعث میشد که چون ترافیک داخلی اپ حتما باید مستقیم باشه نمیشد تبلیغات ادموبو نمایش بدیم.
بعد از کلی ور رفتم فهمیدیم میشه کلاسی که تبلیغات ادموب لود میکنه رو یک پکیج نیم جدید براش بسازیم، اینطوری ترافیک این پکیج نیم دیگه که برا ادموب ساخته شده از تانل رد میشه و ترافیک پکیج نیم اصلی برنامه از تانل رد نمیشه و باعث میشه هم برنامه کار کنه هم تبلیغات ادموب به خوبی لود بشه.
یعنی میاییم توی مسیر com.v2ray یک پکیج جدید به اسم مثلا admon میسازیم یعنی 2 تا پکیج میشه:
com.v2ray.vless که ترافیکش مستقیم میشه که اتصال فیلترشکن به مشکل نخوره
com.v2ray.admob که ترافیکش از تانل رد میشه و باعث میشه تبلیغات ادموب به خوبی لود بشه.
با این روش تونستیم از اخرین هسته xray با اخرین نسخه v2rayng استفاده کنیم و تبلیغات هم به خوبی لود شد.
همچنین بهتره تمامی تنظیمات مربوط به روتیک که در اکتیویتی RoutingSettingActivity هستو کامل غیرفعال کنیم که هم سرعت اتصال به فیلترشکن وقتی روی دکمه کانکت میزنیم 3 ثانیه سریعتر میشه و هم همه چیزایی که بلاک شدن یا ممکنه باعث عدم لود تبلیغات بشن غیرفعال میشن.
برای اینکار کافیه در اکتیویتی اصلی کد زیرو بکار ببریم تا خودکار همه تنظیمات مسیر یابی که دیفالت روشنه خاموش بشه:
val rulesetList = MmkvManager.decodeRoutingRulesets() ?: mutableListOf()
rulesetList.forEach {
it.enabled = false
}
MmkvManager.encodeRoutingRulesets(rulesetList)با این کد عملکرد دکمه کانکت به سرور هم چون دیگه روتینگ های مزاحم نیست 3 ثانیه سریعتر میشه و به طول کلی اتصال به سرور برنامه خیلی سریعتر میشه.