Facebook 广告集成到 Android 应用程序中

Mad*_*Max 6 android banner-ads android-layout facebook-audience-network

我在将横幅广告添加到我的 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>
Run Code Online (Sandbox Code Playgroud)

截屏

Naj*_*Ali 5

如何在 android 中实现 Facebook 广告,我将指导您如何实现 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());
}
Run Code Online (Sandbox Code Playgroud)

同步依赖项后,在应用程序标签下的 mainfest 文件中添加此标签:

<activity android:name="com.facebook.ads.AudienceNetworkActivity"
          android:configChanges="keyboardHidden|orientation|screenSize"/>
Run Code Online (Sandbox Code Playgroud)

对于 xml 代码写这个:

<LinearLayout
    android:id="@+id/banner_container" 
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:orientation="vertical" />
Run Code Online (Sandbox Code Playgroud)

对于 java 类:请记住,当您声明 Adview 导入应该属于 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());


}
Run Code Online (Sandbox Code Playgroud)

要显示广告,您可以实施此方法,我在按下后显示广告,但您可以选择显示:

     //// 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();
     }
}
Run Code Online (Sandbox Code Playgroud)

对于 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());

}

  
Run Code Online (Sandbox Code Playgroud)

如果您对此有任何疑问,可以问我!希望你会喜欢这个。