gpt4 book ai didi

android - Facebook 广告集成到 Android 应用中

转载 作者:行者123 更新时间:2023-11-29 00:03:13 33 4
gpt4 key购买 nike

我在将横幅广告添加到我的 Android 应用程序布局中时遇到问题。但是这个广告没有显示。 ActivityMain.java 中的实现没有问题,因为当我将它添加到其他布局时,横幅开始显示。

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:attribute="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".PlayerActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/gray_background"
android:orientation="vertical">

// facebook banner ad

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


<developer.shivam.library.CrescentoContainer
android:id="@+id/crescentoContainer"
android:layout_width="match_parent"
android:layout_height="440dp"
android:elevation="20dp"
android:scaleType="centerCrop"
attribute:curvature="50dp">

<com.flaviofaria.kenburnsview.KenBurnsView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/wallpaper" />

<com.cleveroad.play_widget.PlayLayout
android:layout_marginTop="?attr/actionBarSize"
android:id="@+id/ivPhoto"
android:layout_width="260dp"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true" />

</developer.shivam.library.CrescentoContainer>


<include layout="@layout/song_info" />


</LinearLayout>

</android.support.design.widget.CoordinatorLayout>

screenshot

最佳答案

如何在 android 中实现 Facebook 广告,我将指导您如何使用数据绑定(bind)查看 Facebook 横幅广告、插页式广告、原生广告,因此如果您想通过使用 findviewbyid 手动完成,则由您决定

1。 Facebook 横幅广告:

您的 gradle 文件中的第一个广告 facebook 受众网络依赖项:

 implementation 'com.facebook.android:audience-network-sdk:6.2.0'


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
ActivityFamousPlacesBinding binding = ActivityFamousPlacesBinding.inflate(getLayoutInflater());
View view = binding.getRoot();
setContentView(view);

com.facebook.ads.AdView adView = new com.facebook.ads.AdView(FamousPlacesActivity.this, getString(R.string.fb_placement_banner), AdSize.BANNER_HEIGHT_50);
LinearLayout bannerContainer = findViewById(R.id.banner_container);
/// here is am getting the banner view by enabling databinding you can
/// dobygetting the view like
// LinearLayout banner_container= findViewById(R.id.banner_container);
binding.banner_container.addView(adView);
adView.loadAd(adView.buildLoadAdConfig().withAdListener(new com.facebook.ads.AdListener() {
@Override
public void onError(Ad ad, AdError adError) {


}

@Override
public void onAdLoaded(Ad ad) {


}

@Override
public void onAdClicked(Ad ad) {

}

@Override
public void onLoggingImpression(Ad ad) {


}
}).build());
}

同步依赖后,在 mainfest 文件中的 application 标签下添加这个标签:

<activity android:name="com.facebook.ads.AudienceNetworkActivity"
android:configChanges="keyboardHidden|orientation|screenSize"/>

对于 xml 代码写这个:

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

对于 java 类:当您声明 Adview Import 应该属于 Facebook 网络时请记住:

对于 Facebook 插页式广告,

首先声明这些变量:

 ///in concreate method laod the ads first
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_multi_page);
// load the interstitial ads
loadfanads();
}

///Normally we show Interstitial on backpressed it up to you where you wants to show
/// on button click or on backpressed button of any activity
private InterstitialAd interstitialAd;
private void loadfanads() {

interstitialAd = new InterstitialAd(this, getString(R.string.fb_placement_Interstitial));
InterstitialAdListener madlistner = new InterstitialAdListener() {
@Override
public void onInterstitialDisplayed(Ad ad) {

}

@Override
public void onInterstitialDismissed(Ad ad) {

//// on Interstitial dismissed
Intent out = new Intent();
out.putExtra(ScanConstants.SAVE_PDF, Boolean.TRUE);
setResult(RESULT_OK, out);
finish();
}

@Override
public void onError(Ad ad, AdError adError) {

/// on error ad loading

}

@Override
public void onAdLoaded(Ad ad) {

}

@Override
public void onAdClicked(Ad ad) {
//// on ad clicked
Intent out = new Intent();
out.putExtra(ScanConstants.SAVE_PDF, Boolean.TRUE);
setResult(RESULT_OK, out);
finish();
}

@Override
public void onLoggingImpression(Ad ad) {

}
};
interstitialAd.loadAd(interstitialAd.buildLoadAdConfig().withAdListener(madlistner).build());


}

要显示广告,您可以实现此方法,我已在按下后显示广告,但您可以根据自己的选择显示:

     //// on button click view
public void saveNow(View view) {

if (interstitialAd.isAdLoaded() && interstitialAd!=null && !interstitialAd.isAdInvalidated()){
interstitialAd.show();
}
else {

Intent out = new Intent();
out.putExtra(ScanConstants.SAVE_PDF, Boolean.TRUE);
setResult(RESULT_OK, out);
finish();
}
}

对于 Facebook 原生横幅广告:

XML 代码只需添加此布局:

<RelativeLayout
android:id="@+id/templateContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true" />

for jave code :

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
WindowManager.LayoutParams.FLAG_FULLSCREEN);

nativeBannerAd = new NativeBannerAd(this, getString(R.string.fb_placement_native_banner));
NativeAdListener adlistner = new NativeAdListener() {
@Override
public void onMediaDownloaded(Ad ad) {

}

@Override
public void onError(Ad ad, AdError adError) {

}

@Override
public void onAdLoaded(Ad ad) {

View adView = NativeBannerAdView.render(MainActivity.this, nativeBannerAd, NativeBannerAdView.Type.HEIGHT_120);
scarymainBinding.templateContainer.addView(adView);


}

@Override
public void onAdClicked(Ad ad) {

}

@Override
public void onLoggingImpression(Ad ad) {

}
};

nativeBannerAd.loadAd(
nativeBannerAd.buildLoadAdConfig()
.withAdListener(adlistner)
.build());

}


有什么问题可以问我哦!希望你会喜欢这个。

关于android - Facebook 广告集成到 Android 应用中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48254858/

33 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com