Всё ведь очень легко проверяется, чтобы сделать вывод о том, как посредник яшка обдирает всех своих работодателей.
И вот что в справке адсенс про распределение доходов:
"При показе объявлений AdSense для контента издатели получают 80 % дохода после вычета комиссии со стороны рекламной платформы. Это может быть как Google, так и сторонняя платформа. Так, если рекламодатели оплачивают показ медийных объявлений в AdSense через Google Рекламу, издателям причитается около 68 % дохода. AdSense выплачивает издателям эффективную цену за тысячу показов за ставки рекламодателей."
В Admob помню было 3000 показов и заработок 20 долларов а тут 10000 показов и заработок 10 долларов. Почему так? Рекламодатели богаче в других странах?
прогноз погоды, курсы валют, драг металлов...... стандартно....
сервисы - подписаться на ваши же новости....
поискать по ключевым словам на сайте....
да особо не придумаешь....
Это уже есть...
package com;import androidx.multidex.MultiDexApplication;import com.yandex.mobile.ads.common.MobileAds;public class MyApplication extends MultiDexApplication { @Override public void onCreate() { super.onCreate(); // Check if the ad-free status is set boolean isAdFree = getSharedPreferences(KEY.SHARED_PREFERENCES_PURCHASES, MODE_PRIVATE) .getBoolean(KEY.IS_ADFREE_KEY, false); if (!isAdFree) { // Initialize Yandex Mobile Ads SDK only if not ad-free MobileAds.initialize(this, () -> {}); } }}
вот код
package com.view.ads;import android.app.Activity;import android.content.Context;import android.content.SharedPreferences;import android.os.Handler;import android.util.DisplayMetrics;import android.view.View;import android.widget.RelativeLayout;import com.KEY;import com.R;import com.yandex.mobile.ads.common.AdRequest;import com.yandex.mobile.ads.banner.BannerAdSize;import com.yandex.mobile.ads.banner.BannerAdView;import com.yandex.mobile.ads.common.InitializationListener;import java.util.Timer;import java.util.TimerTask;public class MyAdsController { private static Timer bannerRefreshTimer; private static Handler handler = new Handler(); private static Runnable networkCheckRunnable; // Define the InitializationListener private static final InitializationListener initializationListener = new InitializationListener() { @Override public void onInitializationCompleted() { // Empty implementation, no specific actions required. } // @Override // public void onInitializationFailed(String error) { // Add your code here for what to do when initialization fails. // } }; public static void setAdsVisibility(Activity activity) { SharedPreferences sharedPreferences = activity.getSharedPreferences(KEY.SHARED_PREFERENCES_PURCHASES, Context.MODE_PRIVATE); boolean isAdFree = sharedPreferences.getBoolean(KEY.IS_ADFREE_KEY, false); RelativeLayout adContainer = activity.findViewById(R.id.adView_container); if (isAdFree) { // Hide the ad container if the user has purchased an ad-free version adContainer.setVisibility(View.GONE); } else { // Show the ad container otherwise adContainer.setVisibility(View.VISIBLE); // Load and display ads if visible showBannerAds(activity); } } public static void handleInterstitialAds(final Activity activity) { // Your code to handle interstitial ads } public static void showBannerAds(final Activity activity) { RelativeLayout layout = activity.findViewById(R.id.adView_container); if (layout != null) { BannerAdView adView = new BannerAdView(activity); BannerAdSize adSize = getAdSize(activity); adView.setAdSize(adSize); adView.setAdUnitId("R-M-2631210-1"); // Set your ad unit ID layout.removeAllViews(); // Clear previous ads if any layout.addView(adView); adView.loadAd(getAdRequest()); startBannerRefreshTimer(activity, adView); } } private static AdRequest getAdRequest() { return new AdRequest.Builder().build(); } private static BannerAdSize getAdSize(Context context) { DisplayMetrics displayMetrics = context.getResources().getDisplayMetrics(); int screenWidth = displayMetrics.widthPixels; // Set the banner height manually (e.g., 50dp) int bannerHeightDp = 45; int bannerHeightPx = (int) (bannerHeightDp * displayMetrics.density); return BannerAdSize.inlineSize(context, screenWidth, bannerHeightPx); } private static void startBannerRefreshTimer(final Activity activity, final BannerAdView adView) { if (bannerRefreshTimer != null) { stopBannerRefreshTimer(); } bannerRefreshTimer = new Timer(); bannerRefreshTimer.schedule(new TimerTask() { @Override public void run() { activity.runOnUiThread(() -> refreshBanner(adView)); } }, 31000, 31000); // Refresh every 31 seconds } private static void refreshBanner(BannerAdView adView) { adView.loadAd(getAdRequest()); } public static void stopBannerRefreshTimer() { if (bannerRefreshTimer != null) { bannerRefreshTimer.cancel(); bannerRefreshTimer = null; } } public static void releaseAdsCallbacks() { stopBannerRefreshTimer(); } public static void releaseAds_Callbacks() { if (handler != null) { handler.removeCallbacksAndMessages(null); } } public static void listenNetworkChangeToRequestAdsFull(Activity activity) { if (networkCheckRunnable == null) { networkCheckRunnable = new RCheckNetworkLoadAdsInterstitial(activity); } handler.post(networkCheckRunnable); } static class RCheckNetworkLoadAdsInterstitial implements Runnable { private final Activity activity; public RCheckNetworkLoadAdsInterstitial(Activity activity) { this.activity = activity; } @Override public void run() { if (CheckInternet.isNetworkAvailable(activity)) { setAdsVisibility(activity); } handler.postDelayed(this, 31000); // Check network status every 31 seconds } }}
и xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_alignParentBottom="true" android:layout_gravity="bottom|center" android:background="#ffffff" android:orientation="vertical"> <RelativeLayout android:id="@+id/adView_container" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" ></RelativeLayout></LinearLayout>
во всем приложении баннер внизу обновление каждые 31 секунд.
У меня вопрос почему такой коэффициент!