ข้อกำหนดเบื้องต้น
คู่มือการติดตั้งใช้งานนี้จะถือว่าคุณคุ้นเคยกับสิ่งต่อไปนี้ดี
- โปรโตคอลการติดตั้งใช้งานโฆษณา Search ที่กำหนดเองของ AFS (CSA)
- การพัฒนาแอป Android
- การเชื่อมโยง SDK โฆษณาในอุปกรณ์เคลื่อนที่ของ Google สำหรับ Android (ปัจจุบันเป็นส่วนหนึ่งของบริการ Google Play) กับโปรเจ็กต์ Android Studio ต้องใช้บริการ Google Play เวอร์ชัน 9.0.0
คลาส
หากต้องการแสดงโฆษณา AFSMA (หรือที่เรียกว่าโฆษณา Search ตามความสูงแบบไดนามิก) ในแอป ให้ใช้คลาสต่อไปนี้
- คลาสนี้รับค่ามาจากคลาส
ViewGroup
ของ Android และแสดงโฆษณา AFSMASearchAdView
จะขอโฆษณาที่มีDynamicHeightSearchAdRequest
และแสดงโฆษณาที่ส่งกลับมา ควรเพิ่มSearchAdView
ลงในกลุ่มข้อมูลพร็อพเพอร์ตี้ที่มีอยู่ของแอป - ต้องสร้างอินสแตนซ์
SearchAdView
ด้วยบริบทที่SearchAdView
ทำงานอยู่ ซึ่งโดยทั่วไปจะเป็นActivity
- เมื่อสร้างอินสแตนซ์
SearchAdView
แล้ว คุณต้องเรียกใช้เมธอดsetAdSize()
ด้วยAdSize.SEARCH
เพื่อขอโฆษณา AFSMA ค่า enum อื่นๆ จะขอโฆษณาที่เข้ากันไม่ได้กับ AFS สำหรับแอปบนอุปกรณ์เคลื่อนที่ - เรียกใช้เมธอด
setAdUnitId()
ในออบเจ็กต์นี้ด้วยรหัสพร็อพเพอร์ตี้
DynamicHeightSearchAdRequest.Builder
- คลาสนี้สรุปพารามิเตอร์คำขอโฆษณา ซึ่งเทียบได้กับการตั้งค่าพารามิเตอร์ในออบเจ็กต์คำขอโฆษณา JavaScript (ตัวเลือกหน้าเว็บ ตัวเลือกหน่วยโฆษณา) สำหรับ AFS บนเดสก์ท็อปและเว็บบนอุปกรณ์เคลื่อนที่
- ตั้งค่าพารามิเตอร์ด้วยตัวตั้งค่าที่เหมาะสม (กล่าวคือ เรียกใช้
setQuery()
เพื่อตั้งค่าพารามิเตอร์การค้นหา)
ตัวอย่างการใช้งาน
ตัวอย่างด้านล่างสาธิตการใช้ Activity
เพื่อสร้าง SearchAdView
เป็นมุมมองย่อยของ ViewGroup
หากต้องการขอโฆษณา AFSMA ได้อย่างถูกต้อง ออบเจ็กต์ SearchAdView
ต้องเรียกใช้เมธอด setAdSize()
ด้วย AdSize.SEARCH
// MainActivity.java implementation
// (MainActivity is a subclass of Activity)
// Create the SearchAdView
final SearchAdView searchAdView = new SearchAdView(this);
// Set parameter to request for dynamic height search ads
searchAdView.setAdSize(AdSize.SEARCH); // Important!
// Replace with your pub ID (e.g. ms-app-pub-9616389000213823)
searchAdView.setAdUnitId("ms-app-pub-################");
// Add searchAdView to parent view group
...
ภายใน Activity
เดียวกัน ให้สร้าง DynamicHeightSearchAdRequest.Builder
ที่กำหนดพารามิเตอร์ของโฆษณาที่จะแสดงใน SearchAdView
โฆษณา AFSMA ได้รับการกําหนดค่าในลักษณะเดียวกับโฆษณา Custom Search ของ AFS
ดูรายละเอียดได้ที่ข้อมูลอ้างอิงของ AFS
// Create the ad request
DynamicHeightSearchAdRequest.Builder builder =
new DynamicHeightSearchAdRequest.Builder();
builder.setQuery("flowers");
builder.setNumber(2);
// Replace with the ID of a style from your custom search styles
builder.setAdvancedOptionValue("csa_styleId", "0000000001");
// Customization options (set using setters on
// DynamicHeightSearchAdRequest.Builder)
builder.setAdTest(true);
คุณใช้ตัวเลือกการปรับแต่งอื่นๆ ได้โดยการตั้งค่าพร็อพเพอร์ตี้เพิ่มเติมบนออบเจ็กต์ DynamicHeightSearchAdRequest.Builder
หากต้องการสร้างคำขอโฆษณา ให้เรียกใช้เมธอด loadAd()
ที่มีออบเจ็กต์ DynamicHeightSearchAdRequest.Builder
จากออบเจ็กต์ SearchAdView
ดังนี้
searchAdView.loadAd(builder.build());
ตัวเลือกขั้นสูง
พารามิเตอร์คำขอโฆษณาส่วนใหญ่ตั้งค่าผ่านเมธอดตัวตั้งค่าในออบเจ็กต์ DynamicHeightSearchAdRequest.Builder
ได้
พารามิเตอร์ที่ไม่มีเมธอด Setter ใน DynamicHeightSearchAdRequest.Builder
จะตั้งค่าได้โดยใช้คู่คีย์-ค่าด้วยเมธอด setAdvancedOptionValue()
ดูข้อมูลอ้างอิงของโฆษณาที่กำหนดเองของ AFS
สำหรับรายการการตั้งค่าทั้งหมดที่กำหนดค่าได้โดยใช้เมธอด
setAdvancedOptionValue()
พารามิเตอร์คีย์ต้องนำหน้าด้วย "csa_" เพื่อให้พร็อพเพอร์ตี้ได้รับการตั้งค่าอย่างถูกต้อง
// Advanced customization options (set using key-value pair)
// Set a parameter (parameter_name) and its value (parameter_value)
// builder.setAdvancedOptionValue("csa_parameter_name", "parameter_value");
// Example: Show visible URL below description
// (domainLinkAboveDescription: false)
builder.setAdvancedOptionValue("csa_domainLinkAboveDescription", "false");
หากคุณใช้เมธอดการตั้งค่าของพารามิเตอร์และตั้งค่าโดยใช้ setAdvancedOptionValue
การเรียกครั้งที่ 2 จะลบล้างค่าจากการเรียกครั้งแรก
การตรวจสอบข้อผิดพลาด
SearchAdView
(searchAdView
ที่นี่) มีเมธอด setAdListener()
ที่จะช่วยคุณตรวจสอบข้อผิดพลาด ภายใน Activity
เดียวกัน:
searchAdView.setAdListener(new AdListener() {
@Override
public void onAdLoaded() {
// Called when an ad is loaded
super.onAdLoaded();
Toast.makeText(MainActivity.this, "Ad Loaded",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Loaded");
}
@Override
public void onAdOpened() {
// Called when an ad opens an overlay that covers the screen
super.onAdOpened();
Toast.makeText(MainActivity.this, "Ad Opened",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Opened");
}
@Override
public void onAdLeftApplication() {
// Called when an ad leaves the application
// (to go to the browser for example)
super.onAdLeftApplication();
Toast.makeText(MainActivity.this, "Ad Left Application",
Toast.LENGTH_SHORT).show();
Log.d(MainActivity.class.getSimpleName(), "Ad Left Application");
}
@Override
public void onAdFailedToLoad(int errorCode) {
// Called when an ad request failed
super.onAdFailedToLoad(errorCode);
Toast.makeText(MainActivity.this, "Ad Failed to Load: " + errorCode,
Toast.LENGTH_SHORT).show();
Log.e(MainActivity.class.getSimpleName(), "Ad Failed to Load: " +
errorCode);
}
});
ค่าคงที่ที่ใช้ในเมธอดโค้ดเรียกกลับ onAdFailedToLoad()
มีอธิบายอยู่ในการอ้างอิง API
เตรียมพร้อมสําหรับข้อกําหนดในการเปิดเผยข้อมูลของ Google Play
เมื่อเดือนพฤษภาคม 2021 Google Play ได้ประกาศส่วนความปลอดภัยของข้อมูลส่วนใหม่ ซึ่งเป็นการเปิดเผยข้อมูลจากนักพัฒนาแอปเกี่ยวกับการรวบรวม การแชร์ และแนวทางปฏิบัติด้านการรักษาความปลอดภัยของข้อมูลของแอป
หน้านี้ช่วยให้คุณปฏิบัติตามข้อกําหนดในการเปิดเผยข้อมูลนี้เกี่ยวกับการใช้ SDK เนทีฟของ AFS ได้ (ใช้ได้กับการใช้งาน AdSense for Shopping ด้วย) ในหน้านี้ คุณจะเห็นข้อมูลว่า SDK ของเราจัดการกับข้อมูลผู้ใช้ปลายทางได้หรือไม่และอย่างไร
เรามุ่งมั่นที่จะสร้างความโปร่งใสมากที่สุดเท่าที่จะทําได้เพื่อสนับสนุนคุณ อย่างไรก็ตาม ในฐานะนักพัฒนาแอป คุณมีหน้าที่รับผิดชอบแต่เพียงผู้เดียวในการตัดสินใจว่าจะตอบกลับแบบฟอร์มส่วนความปลอดภัยของข้อมูลของ Google Play เกี่ยวกับการรวบรวม การแชร์ และแนวทางปฏิบัติด้านการรักษาความปลอดภัยของข้อมูลผู้ใช้ปลายทางของแอปอย่างไร
วิธีใช้ข้อมูลในหน้านี้
หน้านี้จะแสดงข้อมูลผู้ใช้ปลายทางที่รวบรวมโดย SDK เวอร์ชันล่าสุดเท่านั้น
ในการเปิดเผยข้อมูล คุณสามารถใช้คำแนะนำเกี่ยวกับประเภทข้อมูลของ Android เพื่อช่วยพิจารณาว่าข้อมูลประเภทใดที่จะอธิบายข้อมูลที่รวบรวมไว้ได้ดีที่สุด ในการเปิดเผยข้อมูลของคุณ โปรดพิจารณาวิธีที่แอปนั้นๆ แชร์และใช้ข้อมูลที่รวบรวมด้วย
ประเภทข้อมูลที่ SDK เข้าถึงและรวบรวม
กล่องพัสดุ:
com.google.android.gms:play-services-afs-native
com.google.ads.afsn
ข้อมูลที่รวบรวมโดยอัตโนมัติ
AFS SDK จะรวบรวมข้อมูลต่อไปนี้โดยอัตโนมัติ ข้อมูลทั้งหมดจะส่งออกจากอุปกรณ์ไปยัง Google เพื่อแสดงโฆษณา และข้อมูลทั้งหมดจะได้รับการเข้ารหัสระหว่างการรับส่งข้อมูล จะไม่มีการรวบรวมข้อมูลส่วนบุคคลของผู้ใช้ เว้นแต่ว่าแอปของคุณจะส่งมาในคำค้นหาของผู้ใช้
ข้อมูล | ข้อมูลนี้เก็บรวบรวมเพื่อวัตถุประสงค์ต่อไปนี้... |
---|---|
ที่อยู่ IP |
สรุป:
ระบบใช้ที่อยู่ IP ในการตรวจสอบการประพฤติมิชอบและการละเมิด รวมถึงใช้เพื่อหาตำแหน่งของผู้ใช้โดยประมาณ จากนั้นระบบจะใช้ตำแหน่งโดยประมาณเพื่อให้แน่ใจว่าโฆษณาที่แสดงสอดคล้องกับกฎระเบียบในท้องถิ่นและเพื่อแสดงโฆษณาที่เกี่ยวข้องกับสถานที่ตั้งทางภูมิศาสตร์คร่าวๆ ของผู้ใช้ |
กิจกรรมบนแอป
|
สรุป:
แอปของคุณให้คําค้นหาของผู้ใช้เพื่อให้เราแสดงโฆษณา Search ที่เกี่ยวข้องกับคีย์เวิร์ดนั้น เราวัดยอดดูและการมีส่วนร่วม (การแตะ) กับโฆษณาที่แสดงผล |
การวินิจฉัย |
สรุป:
SDK จะวัดเวลาในการตอบสนองของการแสดงผลสำหรับโฆษณาเพื่อให้ใช้และวัดผลการปรับปรุงผลิตภัณฑ์ได้ นอกจากนี้ เรายังส่งรายงานข้อขัดข้อง/ข้อผิดพลาด และเพิ่มเครื่องมืออื่นๆ เป็นครั้งคราวตามที่จำเป็นเพื่อทำความเข้าใจวิธีที่ผู้เผยแพร่โฆษณาใช้ฟังก์ชันการทำงาน |
อุปกรณ์หรือตัวระบุอื่นๆ |
สรุป:
รหัสอุปกรณ์ใช้เพื่อช่วยตรวจสอบการประพฤติมิชอบและการละเมิด รวมถึงวัดประสิทธิภาพโฆษณา |