ย้ายข้อมูลโฆษณาเนทีฟ

หน้านี้จะเปรียบเทียบการติดตั้งใช้งานโฆษณาเนทีฟระหว่าง SDK ปัจจุบันกับ Google Mobile Ads SDK (เบต้า)

โหลดโฆษณา

ตารางต่อไปนี้จะเปรียบเทียบการติดตั้งใช้งานที่สำคัญเมื่อโหลดโฆษณาเนทีฟ

เป้าหมายการติดตั้งใช้งาน ปัจจุบัน Google Mobile Ads SDK (เบต้า)
ระบุประเภทโฆษณาเนทีฟ ผ่านวิธีการที่ไม่ซ้ำกันใน AdLoader ภายในคำขอโฆษณา
จัดการ Callback ของการโหลดโฆษณาสำเร็จ โฆษณาเนทีฟแต่ละประเภทจะมีแฮนเดิลการเรียกกลับแยกกัน อินเทอร์เฟซเดียวNativeAdLoaderCallbackจัดการการโหลดโฆษณา สําเร็จสําหรับโฆษณาเนทีฟทุกประเภท
จัดการ Callback ของการโหลดโฆษณาไม่สำเร็จ ใน Listener แยกต่างหาก ภายใน NativeAdLoaderCallback

โหลดโฆษณาเนทีฟ

ตัวอย่างต่อไปนี้จะโหลดโฆษณาเนทีฟ

ปัจจุบัน

Kotlin

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(object : NativeAd.OnNativeAdLoadedListener {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(
      object : AdListener() {
        override fun onAdFailedToLoad(loadAdError: LoadAdError) {
          // Native ad failed to load.
        }
      }
    )
    .build()

adLoader.loadAd(AdRequest.Builder().build())

Java

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Native ad failed to load.
      }
    })
    .build();

adLoader.loadAd(new AdRequest.Builder().build());
Google Mobile Ads SDK (เบต้า)

Kotlin

NativeAdLoader.load(
  NativeAdRequest.Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE)).build(),
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Native ad loaded.
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // Native ad failed to load.
    }
  }
)

Java

NativeAdLoader.load(
  new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAd.NativeAdType.NATIVE)).build(),
  new NativeAdLoaderCallback() {
    @Override
    public void onNativeAdLoaded(NativeAd nativeAd) {
      // Native ad loaded.
    }

    @Override
    public void onAdFailedToLoad(LoadAdError adError) {
      // Native ad failed to load.
    }
  }
);

โหลดโฆษณาเนทีฟที่กำหนดเอง

ตัวอย่างต่อไปนี้จะโหลดโฆษณาเนทีฟที่กำหนดเอง

ปัจจุบัน

Kotlin

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .forCustomFormatAd(CUSTOM_FORMAT_ID,
      object: NativeCustomFormatAd.OnCustomFormatAdLoadedListener {
        override fun onCustomFormatAdLoaded(nativeCustomFormatAd: NativeCustomFormatAd) {
          // Custom native ad loaded.
        }
      },
      object: NativeCustomFormatAd.OnCustomClickListener {
        override fun onCustomClick(
          nativeCustomFormatAd: NativeCustomFormatAd,
          assetName: String
        ) {
          // Custom native ad recorded a click.
        }
      })
    .withAdListener(
      object : AdListener() {
        override fun onAdFailedToLoad(loadAdError: LoadAdError) {
          // Custom native ad failed to load.
        }
      }
    )
    .build()

adLoader.loadAd(AdRequest.Builder().build())

Java

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .forCustomFormatAd(CUSTOM_FORMAT_ID,
        new NativeCustomFormatAd.OnCustomFormatAdLoadedListener() {
          @Override
          public void onCustomFormatAdLoaded(NativeCustomFormatAd nativeCustomFormatAd) {
            // Custom native ad loaded.
          }
        },
        new NativeCustomFormatAd.OnCustomClickListener() {
          @Override
          public void onCustomClick(NativeCustomFormatAd nativeCustomFormatAd, String assetName) {
            // Custom native ad recorded a click.
          }
        })
    .withAdListener(new AdListener() {
      @Override
      public void onAdFailedToLoad(@NonNull LoadAdError loadAdError) {
        // Custom native ad failed to load.
      }
    })
    .build();

adLoader.loadAd(new AdRequest.Builder().build());
Google Mobile Ads SDK (เบต้า)

Kotlin

NativeAdLoader.load(
  NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.CUSTOM_NATIVE))
    .setCustomFormatIds(listOf(CUSTOM_FORMAT_ID))
    .build(),
  object : NativeAdLoaderCallback {
    override fun onCustomNativeAdLoaded(customNativeAd: CustomNativeAd) {
      // Custom native ad loaded.
    }

    override fun onAdFailedToLoad(adError: LoadAdError) {
      // Custom native ad failed to load.
    }
  }
)

Java

NativeAdLoader.load(
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAdType.CUSTOM_NATIVE))
        .setCustomFormatIds(List.of(CUSTOM_FORMAT_ID))
        .build(),
    new NativeAdLoaderCallback() {
      @Override
      public void onCustomNativeAdLoaded(CustomNativeAd customNativeAd) {
        // Custom native ad loaded.
      }

      @Override
      public void onAdFailedToLoad(LoadAdError adError) {
        // Custom native ad failed to load.
      }
    }
);

ตั้งค่าตัวเลือกโฆษณาเนทีฟ

ตัวอย่างต่อไปนี้จะตั้งค่าตัวเลือกโฆษณาเนทีฟ

ปัจจุบัน

ใน Mobile Ads SDK ปัจจุบัน ให้ตั้งค่าตัวเลือกโฆษณาเนทีฟเป็น AdLoader.Builder

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(true).build()

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .withNativeAdOptions(NativeAdOptions.Builder().setVideoOptions(videoOptions).build())
    .build()

Java

VideoOptions videoOptions = new VideoOptions.Builder()
    .setStartMuted(true)
    .build();

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .withNativeAdOptions(new NativeAdOptions.Builder()
        .setVideoOptions(videoOptions)
        .build())
    .build();
Google Mobile Ads SDK (เบต้า)

ใน Google Mobile Ads SDK (เบต้า) ให้ตั้งค่าตัวเลือกโฆษณาเนทีฟเป็นเปิดใน NativeAdRequest.Builder

Kotlin

val videoOptions = VideoOptions.Builder().setStartMuted(true).build()

val nativeAdRequest = NativeAdRequest
  .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
  .setVideoOptions(videoOptions)
  .build()

Java

VideoOptions videoOptions = new VideoOptions.Builder().setStartMuted(true).build();

NativeAdRequest nativeAdRequest = new NativeAdRequest
    .Builder(AD_UNIT_ID, List.of(NativeAd.NativeAdType.NATIVE))
    .setVideoOptions(videoOptions)
    .build();

ตั้งค่า Callback ของเหตุการณ์โฆษณาเนทีฟ

ตัวอย่างต่อไปนี้จะตั้งค่าการเรียกกลับของเหตุการณ์โฆษณาเนทีฟ

ปัจจุบัน

ต้องลงทะเบียนการเรียกกลับของเหตุการณ์โฆษณาเนทีฟก่อนที่จะโหลดโฆษณา

Kotlin

val adLoader =
  AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(object : NativeAd.OnNativeAdLoadedListener {
      override fun onNativeAdLoaded(nativeAd: NativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(
      object : AdListener() {
        override fun onAdOpened() {
          // Native ad opened an overlay that covered the screen.
        }

        override fun onAdClosed() {
          // Native ad closed.
        }

        override fun onAdImpression() {
          // Native ad recorded an impression.
        }

        override fun onAdClicked() {
          // Native ad recorded a click.
        }
      }
    )
    .build()

adLoader.loadAd(AdRequest.Builder().build())

Java

AdLoader adLoader = new AdLoader.Builder(this, AD_UNIT_ID)
    .forNativeAd(new NativeAd.OnNativeAdLoadedListener() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Native ad loaded.
      }
    })
    .withAdListener(new AdListener() {
      @Override
      public void onAdOpened() {
        // Native ad opened an overlay that covered the screen.
      }

      @Override
      public void onAdClosed() {
        // Native ad closed.
      }

      @Override
      public void onAdImpression() {
        // Native ad recorded an impression.
      }

      @Override
      public void onAdClicked() {
        // Native ad recorded a click.
      }
    })
    .build();

adLoader.loadAd(new AdRequest.Builder().build());
Google Mobile Ads SDK (เบต้า)

SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google (เบต้า) รองรับการลงทะเบียนการเรียกกลับของเหตุการณ์โฆษณาเมื่อโหลดโฆษณาเนทีฟแล้ว

Kotlin

NativeAdLoader.load(
  NativeAdRequest
    .Builder(AD_UNIT_ID, listOf(NativeAd.NativeAdType.NATIVE))
    .build(),
  object : NativeAdLoaderCallback {
    override fun onNativeAdLoaded(nativeAd: NativeAd) {
      // Native ad loaded.
      nativeAd.adEventCallback =
        object : NativeAdEventCallback {
          override fun onAdShowedFullScreenContent() {
            // Native ad showed full screen content.
            // Current SDK equivalent: onAdOpened()
          }

          override fun onAdDismissedFullScreenContent() {
            // Native ad dismissed full screen content.
            // Current SDK equivalent: onAdClosed()
          }

          override fun onAdFailedToShowFullScreenContent(
            fullScreenContentError: FullScreenContentError
          ) {
            // Native ad failed to show full screen content.
            // Current SDK equivalent: N/A
          }

          override fun onAdImpression() {
            // Native ad recorded an impression.
          }

          override fun onAdClicked() {
            // Native ad recorded a click.
          }
        }
    }
  }
)

Java

NativeAdLoader.load(
    new NativeAdRequest.Builder(AD_UNIT_ID, List.of(NativeAd.NativeAdType.NATIVE))
        .build(),
    new NativeAdLoaderCallback() {
      @Override
      public void onNativeAdLoaded(NativeAd nativeAd) {
        // Native ad loaded.
        nativeAd.setAdEventCallback(new NativeAdEventCallback() {
          @Override
          public void onAdShowedFullScreenContent() {
            // Native ad showed full screen content.
            // Current SDK equivalent: onAdOpened()
          }

          @Override
          public void onAdDismissedFullScreenContent() {
            // Native ad dismissed full screen content.
            // Current SDK equivalent: onAdClosed()
          }

          @Override
          public void onAdFailedToShowFullScreenContent(FullScreenContentError fullScreenContentError) {
            // Native ad failed to show full screen content.
            // Current SDK equivalent: N/A
          }

          @Override
          public void onAdImpression() {
            // Native ad recorded an impression.
          }

          @Override
          public void onAdClicked() {
            // Native ad recorded a click.
          }
        });
      }
    }
);

แสดงโฆษณา

ส่วนนี้จะอธิบายความแตกต่างในการแสดงโฆษณาเนทีฟ

ใช้ชื่อแพ็กเกจ SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google (เบต้า)

เมื่อสร้าง NativeAdView ใน XML ให้อัปเดตชื่อแพ็กเกจดังนี้

ปัจจุบัน

<com.google.android.gms.ads.nativead.NativeAdView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <!-- Layout assets such as the media view and call to action. -->
</com.google.android.gms.ads.nativead.NativeAdView>
Google Mobile Ads SDK (เบต้า)

<com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content">
    <!-- Layout assets such as the media view and call to action. -->
</com.google.android.libraries.ads.mobile.sdk.nativead.NativeAdView>

ลงทะเบียนชิ้นงานเนื้อหาสื่อกับ NativeAdView

ตัวอย่างต่อไปนี้จะลงทะเบียนเนื้อหาสื่อกับ NativeAdView

ปัจจุบัน

ปัจจุบัน SDK โฆษณาในอุปกรณ์เคลื่อนที่คาดหวังว่ามุมมองสื่อจะได้รับการลงทะเบียนกับ มุมมองโฆษณาเนทีฟก่อนที่จะลงทะเบียนโฆษณาเนทีฟ อย่างไรก็ตาม API ไม่ได้บังคับใช้ลักษณะการทำงานนี้

Kotlin

private fun displayNativeAd(nativeAd: NativeAd) {
  // Inflate the NativeAdView layout.
  val nativeAdBinding = NativeAdBinding.inflate(layoutInflater)

  // Add the NativeAdView to the view hierarchy.
  binding.nativeViewContainer.addView(nativeAdBinding.root)
  val nativeAdView = nativeAdBinding.root

  // Populate and register the asset views.
  nativeAdView.mediaView = nativeAdBinding.adMedia
  // ...

  // Register the native ad with the NativeAdView.
  nativeAdView.setNativeAd(nativeAd)
}

Java

private void displayNativeAd(NativeAd nativeAd) {
  // Inflate the NativeAdView layout
  NativeAdBinding nativeAdBinding = NativeAdBinding.inflate(getLayoutInflater());

  // Add the NativeAdView to the view hierarchy
  binding.nativeViewContainer.addView(nativeAdBinding.getRoot());
  NativeAdView nativeAdView = nativeAdBinding.getRoot();

  // Populate and register the asset views
  nativeAdView.setMediaView(nativeAdBinding.adMedia);
  // ...

  // Register the native ad with the NativeAdView
  nativeAdView.setNativeAd(nativeAd);
}
Google Mobile Ads SDK (เบต้า)

Google Mobile Ads SDK (เบต้า) บังคับให้ลงทะเบียนมุมมองสื่อกับ มุมมองโฆษณาเนทีฟพร้อมกับโฆษณาเนทีฟ

Kotlin

private fun displayNativeAd(nativeAd: NativeAd) {
  // Inflate the NativeAdView layout.
  val nativeAdBinding = NativeAdBinding.inflate(layoutInflater)

  // Add the NativeAdView to the view hierarchy.
  binding.nativeViewContainer.addView(nativeAdBinding.root)
  val nativeAdView = nativeAdBinding.root

  // Populate and register the asset views.
  // ...

  // Register the native ad and media content asset with the NativeAdView.
  val mediaView = nativeAdBinding.adMedia
  nativeAdView.registerNativeAd(nativeAd, mediaView)
}

Java

private void displayNativeAd(NativeAd nativeAd) {
  // Inflate the NativeAdView layout.
  NativeAdBinding nativeAdBinding = NativeAdBinding.inflate(getLayoutInflater());

  // Add the NativeAdView to the view hierarchy.
  binding.nativeViewContainer.addView(nativeAdBinding.getRoot());
  NativeAdView nativeAdView = nativeAdBinding.getRoot();

  // Populate and register the asset views.
  // ...

  // Register the native ad and media content asset with the NativeAdView.
  MediaView mediaView = nativeAdBinding.adMedia;
  nativeAdView.registerNativeAd(nativeAd, mediaView);
}