اذهب إلى المحتوى

السؤال

نشر

السلام علكم ورحمة الله وبركاته, أنا أعمل على تطبيق من activity واحدة بأستخدام navigation component. والان انا انتهيت من تنفيذ أغلبيته وأريد أضافة اعلان صغير من نوع native ad من admob لكن للاسف لا يوجد الكثير من المعلومات في قوقل بهذا الخصوص وأغلب المعلومات أما قديمة أو بلغات برمجية لا أعرفها وكذلك مستندات قوقل للمطورين شرحهم للموضوع مبهم وغير مفهوم وانا أريد تصميم اعلان من نفسي وعرضة للمستخدمين في نفس الـactivity بأستخدام اما Linear layout او Frame layout. كيف يمكنني فعل هذا ؟ 

وشكرا لكم

بأمكانك أستخدام جافا أو kotlin للشرح 

ملاحظة جميع معرفات admob من appId و app unitId 

My manifest

 <meta-data
        android:name="com.google.android.gms.ads.APPLICATION_ID"
        android:value="@string/appId"/> // it is a sample

My nativead .xml

<?xml version="1.0" encoding="utf-8"?>
<com.google.android.gms.ads.nativead.NativeAdView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_margin="3dp"
        android:background="@drawable/linear_border_style">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:orientation="horizontal">

            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="Ad"
                android:textColor="@color/white"
                android:background="@color/blue"
                android:backgroundTint="@color/blue"
                android:textSize="15sp"/>
        </LinearLayout>
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="horizontal">
            <LinearLayout
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:orientation="vertical">
                <ImageView
                    android:id="@+id/nativeAdSmallImage"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:src="@drawable/ic_email"/>
            </LinearLayout>
            <LinearLayout
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:orientation="vertical">
                <TextView
                    android:id="@+id/nativeAdSmallTitle"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="15sp"
                    android:layout_marginStart="10dp"
                    android:textStyle="bold"
                    android:textColor="@color/black"
                    android:text="Ad Title"/>
                <com.google.android.gms.ads.nativead.MediaView
                    android:id="@+id/nativeAdSmallMedia"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"/>
                <TextView
                    android:id="@+id/nativeAdSmallName"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="10sp"
                    android:layout_marginStart="10dp"
                    android:textColor="@color/black"
                    android:text="Ad description"/>
                <TextView
                    android:id="@+id/nativeAdSmallDesc"
                    android:layout_width="wrap_content"
                    android:layout_height="wrap_content"
                    android:textSize="13sp"
                    android:layout_marginStart="10dp"
                    android:textColor="@color/black"
                    android:text="Ad description"/>
                <Button
                    android:id="@+id/nativeAdSmallButton"
                    android:layout_width="match_parent"
                    android:layout_height="wrap_content"
                    android:layout_marginStart="10dp"
                    android:layout_marginEnd="10dp"
                    android:text="visit site"/>
            </LinearLayout>
        </LinearLayout>
    </LinearLayout>

</com.google.android.gms.ads.nativead.NativeAdView>

My main Activity

 

frame = findViewById(R.id.myAd)

    MobileAds.initialize(this)
    val adBuilder = AdLoader.Builder(this, "ca-app-pub-3940256099942544/2247696110") // the unitId is a sample
        .forNativeAd { nativeAd ->

     

             desplayNativeAd(frame, nativeAd)


        }
    adBuilder.build()
}
fun desplayNativeAd(parent: ViewGroup, ad: NativeAd){
    val inflater = parent.getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE)
            as LayoutInflater
    val adView = inflater.inflate(R.layout.native_small_adview, parent) as NativeAdView

    
    val headlineView = adView.findViewById<TextView>(R.id.nativeAdSmallTitle)
    headlineView.text = ad.headline
    adView.headlineView = headlineView

    val advertiser = adView.findViewById<TextView>(R.id.nativeAdSmallName)
    advertiser.text = ad.advertiser
    adView.advertiserView = advertiser

    val imageAdView = adView.findViewById<ImageView>(R.id.nativeAdSmallImage)
    Glide.with(this)
        .load(ad.icon)
        .into(imageAdView)

   

    val mediaView = adView.findViewById<MediaView>(R.id.nativeAdSmallMedia)
    adView.mediaView = mediaView

    
    adView.setNativeAd(ad)

    parent.removeAllViews()

    parent.addView(adView)
}

My mainActivity.xml  // I have a lot of xml code on this one but I only showed this, this is a framelyout that spposed to handle the the native ads

<LinearLayout

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <FrameLayout
        android:id="@+id/myAd"
        android:layout_width="match_parent"
        android:layout_height="match_parent"/>
</LinearLayout>

 

Recommended Posts

  • 0
نشر

لعرض إعلان Native AdMob في Activity الخاص بتطبيقك باستخدام LinearLayout أو FrameLayout، يمكنك اتباع الخطوات التالية:

1. **الحصول على مفتاح وحدة الإعلان:**
   - ابدأ بالدخول إلى حساب AdMob الخاص بك وأنشئ وحدة إعلان Native.
   - احتفظ بمفتاح وحدة الإعلان الخاص بك (Ad Unit ID)، حيث ستحتاج إلى هذا المفتاح لاحقًا.

2. **إضافة مكتبة AdMob إلى مشروعك:**
   - في ملف build.gradle (Module: app) الخاص بتطبيقك، قم بإضافة تبعيات المكتبة الخاصة بـ AdMob إلى قائمة التبعيات. على سبيل المثال:

   ```gradle
   implementation 'com.google.android.gms:play-services-ads:20.6.0'
   ```

   - قم بتزويد مشروعك بمفتاح التكوين الخاص بـ AdMob في ملف AndroidManifest.xml:

   ```xml
   <meta-data
       android:name="com.google.android.gms.ads.APPLICATION_ID"
       android:value="YOUR_ADMOB_APP_ID"/>
   ```

   - يجب أن تحصل على مفتاح تطبيق AdMob الخاص بك (YOUR_ADMOB_APP_ID) من وحدة التطبيق الخاصة بك في AdMob.

3. **تخصيص تخطيط Activity:**
   - في ملف XML الخاص بـ Activity الذي تريد عرض الإعلان فيه (activity_main.xml، على سبيل المثال)، يمكنك إضافة LinearLayout أو FrameLayout لاستضافة الإعلان.

4. **عرض الإعلان في Activity:**
   - في كود Activity الخاص بك، يمكنك استخدام كائنات AdLoader وNativeAd لجلب الإعلان Native من AdMob وعرضه في الـ LinearLayout أو FrameLayout الذي قمت بإنشائه.

   ```java
   // استيراد المكتبات
   import com.google.android.gms.ads.AdLoader;
   import com.google.android.gms.ads.nativead.NativeAd;
   import com.google.android.gms.ads.nativead.NativeAdView;

   // داخل دالة onCreate
   AdLoader adLoader = new AdLoader.Builder(this, "YOUR_AD_UNIT_ID")
       .forNativeAd(nativeAd -> {
           // عرض الإعلان في الـ NativeAdView
           NativeAdView adView = findViewById(R.id.ad_view); // قم بتغيير R.id.ad_view إلى معرف الـ LinearLayout أو FrameLayout الذي تريد عرض الإعلان فيه
           populateNativeAdView(nativeAd, adView);
       })
       .build();

   adLoader.loadAd(new AdRequest.Builder().build());
   ```

5. **تخصيص عرض الإعلان:**
   - قم بتخصيص عرض الإعلان الخاص بك باستخدام NativeAdView الذي تم إنشاؤه. يمكنك استخدام البيانات المستلمة من الإعلان NativeAd لعرض الصور والنصوص وغيرها بالشكل الذي تريده.

   ```java
   private void populateNativeAdView(NativeAd nativeAd, NativeAdView adView) {
       // تخصيص عرض الإعلان هنا باستخدام البيانات المستلمة من NativeAd
       // مثلاً: adView.setMediaView(...);
       // مثلاً: adView.setHeadlineView(...);
       // مثلاً: adView.setBodyView(...);
       // وهكذا...
   }
   ```

6. **تجربة التطبيق:**
   - قم بتشغيل التطبيق وتأكد من أن الإعلان Native يظهر بشكل صحيح في الـ LinearLayout أو FrameLayout الذي أنشأته.

تذكر أن تتبع سياسات AdMob والقوانين المتعلقة بالإعلانات الـ Native وأن تقوم بتجربة التطبيق جيدًا قبل نشره للجمهور.

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...