簡體   English   中英

Applovin/Max Banner Ad 如何展示布局?

[英]How to show Applovin/Max Banner Ad with layout?

我是Applovin/Max的新手。 在他們的文檔position以及以編程方式設置的Banner廣告size 這就是BannerAd覆蓋我的應用content的原因。

xml中的橫幅布局

<com.applovin.mediation.ads.MaxAdView
        android:id="@+id/maxBannerAdLayout"
        android:background="@color/white"
        android:layout_width="match_parent"
        android:layout_height="@dimen/banner_height" />

在文檔橫幅中以編程方式顯示

adView = new MaxAdView( "YOUR_AD_UNIT_ID", this );
adView.setListener( this );

// Stretch to the width of the screen for banners to be fully functional
int width = ViewGroup.LayoutParams.MATCH_PARENT;

// Get the adaptive banner height.
int heightDp = MaxAdFormat.BANNER.getAdaptiveSize( this ).getHeight();
int heightPx = AppLovinSdkUtils.dpToPx( this, heightDp );

adView.setLayoutParams( new FrameLayout.LayoutParams( width, heightPx ) );
adView.setExtraParameter( "adaptive_banner", "true" );

// Set background or background color for banners to be fully functional
adView.setBackgroundColor( ... );

ViewGroup rootView = findViewById( android.R.id.content );
rootView.addView( adView );

// Load the ad
adView.loadAd();

我不知道,如何將代碼與banner layout聯系起來?

xml:

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:id="@+id/bannerad"
    android:orientation="vertical"/>

Java代碼:

private MaxAdView adView;

private void LoadBannerAd() {
    adView = new MaxAdView( getResources().getString(R.string.bannerad), this );
    adView.setListener(new MaxAdViewAdListener() {
        @Override
        public void onAdExpanded(MaxAd ad) {

        }

        @Override
        public void onAdCollapsed(MaxAd ad) {

        }

        @Override
        public void onAdLoaded(MaxAd ad) {
            
        }

        @Override
        public void onAdDisplayed(MaxAd ad) {

        }

        @Override
        public void onAdHidden(MaxAd ad) {

        }

        @Override
        public void onAdClicked(MaxAd ad) {

        }

        @Override
        public void onAdLoadFailed(String adUnitId, MaxError error) {
            
        }

        @Override
        public void onAdDisplayFailed(MaxAd ad, MaxError error) {

        }
    });

    int width = ViewGroup.LayoutParams.MATCH_PARENT;
    int heightPx = getResources().getDimensionPixelSize( R.dimen.banner_height );
    adView.setLayoutParams( new FrameLayout.LayoutParams( width, heightPx, Gravity.BOTTOM) );
    adView.setBackgroundColor(Color.BLACK);
    LinearLayout ll = findViewById(R.id.bannerad);
    ll.addView(adView);
    adView.loadAd();
}

在 onCreate() 中調用 LoadBannerAd()。

問題是,您正在使用兩種方式:

1:使用XML和java代碼
2:也以編程方式

試試上面的代碼。

我知道現在回答這個問題已經很晚了,但這可能會在將來對某人有所幫助。

注意:當您在 Applovin/Max 中創建Ad Id時,您提供package名稱。 僅在同一個 package 名稱應用上測試廣告,否則不會顯示任何真實廣告。

在這里,我解釋了顯示Max/Applovin Banner ad (使用 fb/Meta)的完整過程。

build.gradle和 fb 的 build.gradle 中添加dependency項。(如果您使用 other.network 然后添加它們與 applovin 的dependency項。(始終檢查最新的依賴項版本 - 此處

//applovin and fb dependencies
implementation 'com.applovin:applovin-sdk:11.6.1'
implementation 'com.applovin.mediation:facebook-adapter:6.12.0.2'
implementation 'com.applovin.mediation:facebook-adapter:6.12.0.2'
implementation 'com.facebook.android:audience-network-sdk:6.12.0'

在我的manifests.xml底部添加此代碼。 在這里輸入您的value sdk key ,您可以在Applovin >Account > Keys > sdk Key中找到它

      ....
    <meta-data
        android:name="applovin.sdk.key"
        android:value="@string/sdkKey" />
</application>

Banner ad代碼 om xml放在您想要的位置

<com.applovin.mediation.ads.MaxAdView
        xmlns:maxads="http://schemas.applovin.com/android/1.0"
        maxads:adUnitId="Add_here_YOUR_AD_ID"
        android:background="@color/white"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:id="@+id/maxBannerADDDD"
        />

Java代碼

    private MaxAdView adView;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    //find Id of xml Banner 
    adView = (MaxAdView) findViewById(R.id.bannerADDDD);
    initializeAdNetwork();
}

private void initializeAdNetwork() {
    
    AppLovinSdk.getInstance( this ).setMediationProvider( "max" );
    AppLovinSdk.initializeSdk(getApplicationContext(), new AppLovinSdk.SdkInitializationListener() {
        public void onSdkInitialized(AppLovinSdkConfiguration appLovinSdkConfiguration) {
            loadInterstitial();

            //load banner Ad
            loadBannerAd();
        }
    });



}

private void loadBannerAd(){
    adView.loadAd();
    adView.startAutoRefresh();
}

還要在應用中添加Inte.net permission

如果您使用facebook/Meta ads ,則必須使用network_security_config res > xml中創建這個xml (如果找不到 xml,則右鍵單擊 res > 新建 > 創建名為xml的目錄)在這個 xml 目錄中創建這個在 xml 文件下方。

network_security_config.xml

    <?xml version="1.0" encoding="utf-8"?>
<network-security-config>
    <domain-config cleartextTrafficPermitted="true">
        <domain includeSubdomains="true">127.0.0.1</domain>
    </domain-config>
</network-security-config>

也在menifest.xml中聲明這個文件

    ...
<application 
  
    android:networkSecurityConfig="@xml/network_security_config" 
    ....

謝謝。

快樂編碼:)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM