B4A Library Yandex Ads Library

Based on Yandex Mobile Ads 7.12.1 (15 Apr 2025) from HERE and HERE.
Banner, Interstitial and Rewarded Ads.

It depends of enormous amount of libraries. I have a really hard time to make it to work.

app-ads.txt: https://ads.yandex.com/helpcenter/en/support/faq/app-ads-txt

Include OkHttp library in your project, you don't need to initialize library, just include it by checking library in Libraries Manager tab inside B4A.



Add this to main:
B4X:
    #MultiDex: True  
    #AdditionalJar: androidx.appcompat:appcompat
    #AdditionalJar: androidx.appcompat:appcompat-resources
    #AdditionalJar: androidx.emoji2:emoji2
    #AdditionalJar: androidx.emoji2:emoji2-views-helper
    #AdditionalJar: androidx.customview:customview-poolingcontainer
    #AdditionalJar: androidx.interpolator:interpolator
    #AdditionalJar: androidx.profileinstaller:profileinstaller
    #AdditionalJar: androidx.recyclerview:recyclerview
    #AdditionalJar: androidx.resourceinspection:resourceinspection-annotation
    #AdditionalJar: androidx.transition:transition
    #AdditionalJar: androidx.vectordrawable:vectordrawable
    #AdditionalJar: androidx.vectordrawable:vectordrawable-animated
    #AdditionalJar: androidx.viewpager2:viewpager2
    #AdditionalJar: com.android.installreferrer:installreferrer
    #AdditionalJar: com.android.tools:annotations  
    #AdditionalJar: analytic-adapter-0.6.0.aar
    #AdditionalJar: analytics-7.7.2.aar
    #AdditionalJar: analytics-ad-revenue-7.7.2.aar
    #AdditionalJar: analytics-appsetid-7.7.2.aar
    #AdditionalJar: analytics-billing-interface-7.7.2.aar
    #AdditionalJar: analytics-billing-v6-7.7.2.aar
    #AdditionalJar: analytics-common-logger-7.7.2.aar
    #AdditionalJar: analytics-core-api-7.7.2.aar
    #AdditionalJar: analytics-core-utils-7.7.2.aar
    #AdditionalJar: analytics-gpllibrary-7.7.2.aar
    #AdditionalJar: analytics-identifiers-7.7.2.aar
    #AdditionalJar: analytics-location-7.7.2.aar
    #AdditionalJar: analytics-location-api-7.7.2.aar
    #AdditionalJar: analytics-logger-7.7.2.aar
    #AdditionalJar: analytics-modules-api-7.7.2.aar
    #AdditionalJar: analytics-ndkcrashes-api-7.7.2.aar
    #AdditionalJar: analytics-network-7.7.2.aar
    #AdditionalJar: analytics-network-tasks-7.7.2.aar
    #AdditionalJar: analytics-proto-7.7.2.aar
    #AdditionalJar: analytics-remote-permissions-7.7.2.aar
    #AdditionalJar: androidsvg-aar-1.4.aar
    #AdditionalJar: api-common-1.5.0
    #AdditionalJar: api-compiled-1.5.0
    #AdditionalJar: api-public-1.5.0
    #AdditionalJar: appmetrica-adapter-0.6.0.aar
    #AdditionalJar: assertion-31.4.0.aar
    #AdditionalJar: beacon-31.4.0.aar
    #AdditionalJar: datastore-1.0.0.aar
    #AdditionalJar: datastore-core-1.0.0
    #AdditionalJar: div-31.4.0.aar
    #AdditionalJar: div-core-31.4.0.aar
    #AdditionalJar: div-data-31.4.0.aar
    #AdditionalJar: div-evaluable-31.4.0
    #AdditionalJar: div-histogram-31.4.0.aar
    #AdditionalJar: div-json-31.4.0.aar
    #AdditionalJar: div-states-31.4.0.aar
    #AdditionalJar: div-storage-31.4.0.aar
    #AdditionalJar: div-svg-31.4.0.aar
    #AdditionalJar: javax.inject-1
    #AdditionalJar: kotlinx-serialization-core-jvm-1.5.1
    #AdditionalJar: kotlinx-serialization-json-jvm-1.5.1
    #AdditionalJar: logging-31.4.0.aar
    #AdditionalJar: mobileads-7.12.1.aar
    #AdditionalJar: proto-0.6.0.aar
    #AdditionalJar: utils-31.4.0.aar

Add this to the manifest:
B4X:
CreateResourceFromFile(Macro, Core.NetworkClearText)
AddApplicationText(
        <meta-data
            android:name="com.yandex.mobile.ads.AUTOMATIC_SDK_INITIALIZATION"
            android:value="false" />
        <activity
            android:name="com.yandex.mobile.ads.common.AdActivity"
            android:configChanges="keyboard|keyboardHidden|orientation|screenLayout|uiMode|screenSize|smallestScreenSize"
            android:theme="@style/MonetizationAdsInternal.AdActivity" />
        <provider
            android:name="com.yandex.mobile.ads.core.initializer.MobileAdsInitializeProvider"
            android:authorities="${applicationId}.MobileAdsInitializeProvider"
            android:exported="false" />
        <activity
            android:name="com.yandex.mobile.ads.features.debugpanel.ui.IntegrationInspectorActivity"
            android:exported="false"
            android:theme="@style/DebugPanelTheme" />
        <provider
            android:name="com.yandex.mobile.ads.features.debugpanel.data.local.DebugPanelFileProvider"
            android:authorities="${applicationId}.monetization.ads.inspector.fileprovider"
            android:exported="false"
            android:grantUriPermissions="true" >
            <meta-data
                android:name="android.support.FILE_PROVIDER_PATHS"
                android:resource="@xml/debug_panel_file_paths" />
        </provider>
        <service
            android:name="io.appmetrica.analytics.internal.AppMetricaService"
            android:enabled="true"
            android:exported="false"
            android:process=":AppMetrica" >
            <intent-filter>
                <category android:name="android.intent.category.DEFAULT" />

                <action android:name="io.appmetrica.analytics.IAppMetricaService" />

                <data android:scheme="appmetrica" />
            </intent-filter>
        </service>
        <provider
            android:name="io.appmetrica.analytics.internal.PreloadInfoContentProvider"
            android:authorities="${applicationId}.appmetrica.preloadinfo.retail"
            android:enabled="true"
            android:exported="true"
            android:process=":AppMetrica" />)


Versions:

v1.12
  • Original library update. Changelog.
  • Updated example app.

Download library from: https://mega.nz/file/5c400CgY#ixrDYO3L6LURZSHaWsLW73nCdLcenRsyK7Oz3C4x7Jo
Check example app for implementation.
 

Attachments

  • YandexAdsExample.zip
    5.6 KB · Views: 80
Last edited:

Theera

Expert
Licensed User
Longtime User
I 've study your code,but I've error.How to solved this problem?

 

Theera

Expert
Licensed User
Longtime User
After I have install all files of sdk.It can run, but I found runtime error as same as I found other apps. Could you solve this problem. I can't solve it myself.
 

Pendrush

Well-Known Member
Licensed User
Longtime User
You need to install only missing artifacts, DO NOT update artifacts you already have installed.
 
Cookies are required to use this site. You must accept them to continue using the site. Learn more…