สิ่งที่ต้องดำเนินการก่อน
คู่มือการนําไปใช้นี้จะถือว่าคุณคุ้นเคยกับสิ่งต่อไปนี้
- โปรโตคอลการใช้งานโฆษณา Search ที่กําหนดเอง (CSA) ของ AFS
- การพัฒนาแอป 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 Ads ของ 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());
ตัวเลือกขั้นสูง
พารามิเตอร์คําขอโฆษณาส่วนใหญ่ตั้งค่าผ่านเมธอด Setter ในออบเจ็กต์ DynamicHeightSearchAdRequest.Builder
ได้
พารามิเตอร์ที่ไม่มีเมธอด setter ใน DynamicHeightSearchAdRequest.Builder
จะตั้งค่าได้โดยใช้คู่คีย์-ค่าที่มีเมธอด setAdvancedOptionValue()
ได้
ดูข้อมูลอ้างอิงของโฆษณา Search ที่กําหนดเองของ 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");
หากคุณใช้เมธอด setter ของพารามิเตอร์และตั้งค่าโดยใช้ 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 จะวัดเวลาในการตอบสนองของการแสดงผลสําหรับโฆษณาเพื่ออนุญาตให้ใช้งานและวัดผลการปรับปรุงผลิตภัณฑ์ได้ นอกจากนี้ เรายังส่งรายงานข้อขัดข้อง/ข้อผิดพลาด และจะเพิ่มเครื่องมืออื่นๆ เป็นครั้งคราวเพื่อทําความเข้าใจวิธีที่ผู้เผยแพร่โฆษณาใช้ฟังก์ชันการทํางาน |
อุปกรณ์และตัวระบุอื่นๆ |
สรุป:
รหัสอุปกรณ์ใช้เพื่อช่วยในการตรวจสอบการประพฤติมิชอบและการละเมิด รวมถึงการวัดผลประสิทธิภาพโฆษณา |