เทมเพลตเนทีฟเป็นมุมมองที่สมบูรณ์ของโค้ดสำหรับโฆษณาเนทีฟ ซึ่งออกแบบมาให้ทำงานรวดเร็ว และการใช้งานที่ง่าย เมื่อใช้เทมเพลตแบบเนทีฟ ปลั๊กอินจะมี การจัดวาง Android และ iOS ที่สร้างไว้ล่วงหน้าสำหรับคุณ และคุณสามารถปรับแต่งสไตล์ของ เนื้อหาแบบเนทีฟที่ใช้ Dart API
คู่มือนี้จะแสดงวิธีใช้ Dart API เพื่อปรับแต่ง การดูแพลตฟอร์มและเพื่อ การแสดงโฆษณา
ข้อกำหนดเบื้องต้น
- Flutter 2.4.0 ขึ้นไป
- ทำตามคู่มือเริ่มต้นใช้งานจนจบ
- ทำความคุ้นเคยกับตัวเลือกโฆษณาเนทีฟ
ทดสอบด้วยโฆษณาทดสอบเสมอ
เมื่อสร้างและทดสอบแอป โปรดตรวจสอบว่าคุณใช้โฆษณาทดสอบแทน โฆษณาที่ใช้งานจริง วิธีที่ง่ายที่สุดในการโหลดโฆษณาทดสอบคือการใช้ รหัสหน่วยโฆษณาทดสอบสำหรับโฆษณาเนทีฟ:
/6499/example/native
หน่วยโฆษณาทดสอบจะได้รับการกำหนดค่าให้แสดงโฆษณาทดสอบในทุกๆ คำขอ ดังนั้น คุณสามารถใช้เทมเพลตเหล่านี้ในแอป ของคุณเองขณะเขียนโค้ด ทดสอบ เพียงแทนที่รหัสหน่วยโฆษณาด้วยรหัสหน่วยโฆษณาของคุณเอง การเผยแพร่แอปของคุณ
โหลดโฆษณา
ตัวอย่างต่อไปนี้โหลดโฆษณาเนทีฟโดยใช้โฆษณาเนทีฟขนาด medium
เทมเพลต:
class NativeExampleState extends State<NativeExample> {
NativeAd? nativeAd;
bool _nativeAdIsLoaded = false;
// TODO: replace this test ad unit with your own ad unit.
final _adUnitId = '/6499/example/native';
/// Loads a native ad.
void loadAd() {
_nativeAd = NativeAd(
adUnitId: _adUnitId,
listener: NativeAdListener(
onAdLoaded: (ad) {
debugPrint('$NativeAd loaded.');
setState(() {
_nativeAdIsLoaded = true;
});
},
onAdFailedToLoad: (ad, error) {
// Dispose the ad here to free resources.
debugPrint('$NativeAd failed to load: $error');
ad.dispose();
},
),
request: const AdManagerAdRequest(),
// Styling
nativeTemplateStyle: NativeTemplateStyle(
// Required: Choose a template.
templateType: TemplateType.medium,
// Optional: Customize the ad's style.
mainBackgroundColor: Colors.purple,
cornerRadius: 10.0,
callToActionTextStyle: NativeTemplateTextStyle(
textColor: Colors.cyan,
backgroundColor: Colors.red,
style: NativeTemplateFontStyle.monospace,
size: 16.0),
primaryTextStyle: NativeTemplateTextStyle(
textColor: Colors.red,
backgroundColor: Colors.cyan,
style: NativeTemplateFontStyle.italic,
size: 16.0),
secondaryTextStyle: NativeTemplateTextStyle(
textColor: Colors.green,
backgroundColor: Colors.black,
style: NativeTemplateFontStyle.bold,
size: 16.0),
tertiaryTextStyle: NativeTemplateTextStyle(
textColor: Colors.brown,
backgroundColor: Colors.amber,
style: NativeTemplateFontStyle.normal,
size: 16.0)))
..load();
}
}
โปรดดู
NativeTemplateStyle
และ
NativeTemplateTextStyle
เพื่อดูตัวเลือกการจัดรูปแบบที่ใช้ได้
ปรับแต่งโฆษณา
การกำหนดค่า UI ของโฆษณาเมื่อปรับแต่งโฆษณาเนทีฟโดยใช้เทมเพลตเนทีฟ
จะอยู่ในคลาส NativeTemplateStyle
ซึ่งจะช่วยให้คุณจัดรูปแบบ
ในโค้ดของ DART
ขนาดเทมเพลต
เทมเพลตโฆษณาเนทีฟ Flutter มี 2 ประเภท ได้แก่ TemplateType.small
และ
TemplateType.medium
เทมเพลตขนาดเล็กเหมาะสําหรับ TableView
หรือ
GridView
สำหรับโฆษณาในฟีดหรือที่ใดก็ตามที่คุณต้องการมุมมองโฆษณาสี่เหลี่ยมผืนผ้าแบบบาง
เทมเพลตสื่อควรเป็นการดูหน้าเว็บขนาด 5-3 ส่วน 4
เหมาะสำหรับหน้า Landing Page หรือหน้าแนะนํา
เล็ก | |
---|---|
Android |
iOS |
ปานกลาง | |
Android |
iOS |
เหตุการณ์โฆษณาเนทีฟ
หากต้องการรับการแจ้งเตือนเหตุการณ์ที่เกี่ยวข้องกับการโต้ตอบกับโฆษณาเนทีฟ ให้ใช้
listener
คุณสมบัติของโฆษณา จากนั้นติดตั้งใช้งาน
NativeAdListener
เพื่อรับ Callback ของเหตุการณ์โฆษณา
class NativeExampleState extends State<NativeExample> {
NativeAd? _nativeAd;
bool _nativeAdIsLoaded = false;
// TODO: replace this test ad unit with your own ad unit.
final _adUnitId = '/6499/example/native';
/// Loads a native ad.
void loadAd() {
_nativeAd = NativeAd(
adUnitId: _adUnitId,
listener: NativeAdListener(
onAdLoaded: (ad) {
print('$NativeAd loaded.');
setState(() {
_nativeAdIsLoaded = true;
});
},
onAdFailedToLoad: (ad, error) {
// Dispose the ad here to free resources.
print('$NativeAd failedToLoad: $error');
ad.dispose();
},
// Called when a click is recorded for a NativeAd.
onAdClicked: (ad) {},
// Called when an impression occurs on the ad.
onAdImpression: (ad) {},
// Called when an ad removes an overlay that covers the screen.
onAdClosed: (ad) {},
// Called when an ad opens an overlay that covers the screen.
onAdOpened: (ad) {},
// For iOS only. Called before dismissing a full screen view
onAdWillDismissScreen: (ad) {},
// Called when an ad receives revenue value.
onPaidEvent: (ad, valueMicros, precision, currencyCode) {},
),
request: const AdManagerAdRequest(),
// Styling
nativeTemplateStyle: NativeTemplateStyle(
// Required: Choose a template.
templateType: TemplateType.medium,
// Optional: Customize the ad's style.
mainBackgroundColor: Colors.purple,
cornerRadius: 10.0,
callToActionTextStyle: NativeTemplateTextStyle(
textColor: Colors.cyan,
backgroundColor: Colors.red,
style: NativeTemplateFontStyle.monospace,
size: 16.0),
primaryTextStyle: NativeTemplateTextStyle(
textColor: Colors.red,
backgroundColor: Colors.cyan,
style: NativeTemplateFontStyle.italic,
size: 16.0),
secondaryTextStyle: NativeTemplateTextStyle(
textColor: Colors.green,
backgroundColor: Colors.black,
style: NativeTemplateFontStyle.bold,
size: 16.0),
tertiaryTextStyle: NativeTemplateTextStyle(
textColor: Colors.brown,
backgroundColor: Colors.amber,
style: NativeTemplateFontStyle.normal,
size: 16.0)))
..load();
}
}
โฆษณาแบบดิสเพลย์
หากต้องการแสดง NativeAd
เป็นวิดเจ็ต คุณจะต้องสร้างอินสแตนซ์
AdWidget
ด้วยโฆษณาที่รองรับหลังจากเรียก load()
คุณจะสร้างวิดเจ็ตก่อนเวลา
กำลังโทรหา load()
แต่ต้องเรียกใช้ load()
ก่อนที่จะเพิ่มลงในวิดเจ็ต
ต้นไม้
AdWidget
จะรับค่ามาจากคลาส Widget
ของ Flutter และสามารถใช้งานได้เหมือนกับฟังก์ชันอื่นๆ
วิดเจ็ต บน iOS ตรวจสอบว่าคุณได้วางวิดเจ็ตไว้ในคอนเทนเนอร์ที่มี
ความกว้างและความสูง มิฉะนั้น โฆษณาของคุณอาจไม่แสดง
// Small template
final adContainer = ConstrainedBox(
constraints: const BoxConstraints(
minWidth: 320, // minimum recommended width
minHeight: 90, // minimum recommended height
maxWidth: 400,
maxHeight: 200,
),
child: AdWidget(ad: _nativeAd!),
);
// Medium template
final adContainer = ConstrainedBox(
constraints: const BoxConstraints(
minWidth: 320, // minimum recommended width
minHeight: 320, // minimum recommended height
maxWidth: 400,
maxHeight: 400,
),
child: AdWidget(ad: _nativeAd!),
);
กำจัดโฆษณา
ต
NativeAd
ต้องทิ้งเมื่อไม่จำเป็นต้องเข้าถึงอุปกรณ์อีกต่อไป แนวทางปฏิบัติแนะนำสำหรับ
เวลาที่ควรเรียก dispose()
อยู่หลัง AdWidget
ที่เชื่อมโยงกับโฆษณาเนทีฟ
จะถูกนำออกจากแผนผังวิดเจ็ตและใน AdListener.onAdFailedToLoad()
Callback