ข้อกำหนดเบื้องต้น
คู่มือการติดตั้งใช้งานนี้ถือว่าคุณมีความคุ้นเคยกับสิ่งต่อไปนี้
- การใช้งานโฆษณาที่กำหนดเองในเครือข่ายการค้นหา (CSA) ของ AFS โปรโตคอล
- การพัฒนาแอป Android
- การเชื่อมโยงโฆษณาบนอุปกรณ์เคลื่อนที่ของ Google SDK สำหรับ Android (ซึ่งปัจจุบันเป็นส่วนหนึ่งของบริการ Google Play) ด้วยโปรเจ็กต์ Android Studio ต้องใช้บริการ Google Play เวอร์ชัน 9.0.0
ชั้นเรียน
ในการแสดงโฆษณา AFSMA (หรือเรียกว่า โฆษณา Search ที่มีความสูงแบบไดนามิก) ในแอปของคุณ ใช้คลาสต่อไปนี้
- คลาสนี้รับค่ามาจากคลาส Android
ViewGroup
และแสดงโฆษณา 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 จะได้รับการกําหนดค่าในลักษณะเดียวกันกับโฆษณา 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());
ตัวเลือกขั้นสูง
พารามิเตอร์คำขอโฆษณาส่วนใหญ่สามารถตั้งค่าผ่านเมธอด Setter
ในออบเจ็กต์ 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);
}
});
ค่าคงที่ที่ใช้ในเมธอด Callback 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 วัดเวลาในการตอบสนองสำหรับการแสดงโฆษณาเพื่อให้ใช้งานและวัดผลการปรับปรุงผลิตภัณฑ์ได้ นอกจากนี้ เรายังส่งรายงานข้อขัดข้อง/ข้อผิดพลาด และจะเพิ่มเครื่องมืออื่นๆ เป็นครั้งคราวตามที่จำเป็นเพื่อทำความเข้าใจวิธีที่ผู้เผยแพร่โฆษณาใช้ฟังก์ชันการทำงานดังกล่าว |
อุปกรณ์หรือตัวระบุอื่นๆ |
สรุป:
รหัสอุปกรณ์ใช้เพื่อช่วยในการตรวจสอบการประพฤติมิชอบและการละเมิด รวมถึงการวัดประสิทธิภาพโฆษณา |