GAID (Google Advertising ID) และ AAID (Android Advertising ID) เป็นตัวระบุโฆษณาเฉพาะของอุปกรณ์ Android ที่ใช้สำหรับการระบุแหล่งที่มาของการติดตั้งและการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคล GAID เป็นชื่อทางการสำหรับอุปกรณ์ที่มี Google Play Services ส่วน AAID เป็นคำสากลสำหรับอุปกรณ์ Android ทั้งหมด รวมถึงบิลด์ที่ไม่มีบริการของ Google ตาม เอกสารสำหรับนักพัฒนา Google, 2025 การรับ GAID จำเป็นต้องมี Google Play Services AdvertisingIdClient เป็น API หลักสำหรับรับตัวระบุโฆษณาบน Android
ประเด็นสำคัญ
GAID (Google Advertising ID) เป็นตัวระบุเฉพาะที่กำหนดให้กับอุปกรณ์ Android แต่ละเครื่องที่ติดตั้ง Google Play Services ไว้ มีวัตถุประสงค์เพื่อการโฆษณา: การระบุแหล่งที่มาของการติดตั้ง การวัดประสิทธิภาพแคมเปญ และการแสดงโฆษณาที่ปรับเปลี่ยนในแบบเฉพาะบุคคล AAID (Android Advertising ID) เป็นคำที่กว้างกว่าซึ่งครอบคลุมตัวระบุโฆษณาบนอุปกรณ์ Android ทั้งหมด รวมถึงอุปกรณ์ Huawei ที่มี HMS, Amazon Fire และบิลด์ AOSP ที่ไม่มีบริการของ Google
ความแตกต่างหลักระหว่าง GAID และ IDFA บน iOS คือ GAID สามารถใช้งานได้โดยไม่ต้องขออนุญาตอย่างชัดแจ้ง แต่ตั้งแต่ Android 14 แอปต้องประกาศการใช้ตัวระบุโฆษณาในแมนิเฟสต์และได้รับความยินยอมจากผู้ใช้ตามนโยบายความเป็นส่วนตัวของ Google Play Google ไม่ต้องการให้มีไดอะล็อกของระบบ (เช่น ATT บน iOS) แต่นักพัฒนาต้องปฏิบัติตามกฎความยินยอมของผู้ใช้
ตามสถิติ Google Play Console (2025) อุปกรณ์ Android ที่ใช้งานอยู่มากกว่า 95% รองรับ GAID ผ่าน Google Play Services บนอุปกรณ์ที่ไม่มีบริการของ Google (ตลาดจีน, Huawei AppGallery) จะใช้ AAID จากร้านค้าแอปที่เกี่ยวข้องหรือตัวระบุทางเลือก เช่น OAID (Open Anonymous ID) สำหรับผู้ผลิตจีน
ข้อได้เปรียบหลักของ GAID เหนือ IDFA คือความสามารถในการรับตัวระบุโดยไม่มีไดอะล็อกของระบบที่ปิดกั้น อย่างไรก็ตาม Google กำลังเพิ่มข้อกำหนดอย่างต่อเนื่อง: ตั้งแต่ Android 14 แอปที่กำหนดเป้าหมาย API 34 ขึ้นไปต้องประกาศสิทธิ์ AD_ID ในแมนิเฟสต์อย่างชัดแจ้ง
บน Android การรับตัวระบุโฆษณาถูกดำเนินการผ่าน Google Play Services และคลาส AdvertisingIdClient แตกต่างจาก iOS ที่ IDFA ต้องมีไดอะล็อก ATT ที่ชัดแจ้ง GAID พร้อมใช้งานสำหรับแอปโดยค่าเริ่มต้น เว้นแต่ผู้ใช้จะปิดการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคลในการตั้งค่าอุปกรณ์
คลาส AdvertisingIdClient จากแพ็คเกจ com.google.android.gms.ads.identifier มีเมธอดหลักสองเมธอด: getAdvertisingIdInfo (บริบท) และ start (บริบท) เมธอดส่งคืนออบเจ็กต์ AdvertisingIdInfo ที่ประกอบด้วยตัวระบุ (สตริง UUID) และแฟล็ก isLimitAdTrackingEnabled ซึ่งบ่งชี้ว่าผู้ใช้ได้ปิดการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคลหรือไม่
การเรียก AdvertisingIdClient ต้องดำเนินการในเธรดพื้นหลัง เนื่องจากเมธอดเข้าถึงบริการ Google Play ระยะไกล ขอแนะนำให้ใช้ coroutines หรือ AsyncTask สำหรับการรับตัวระบุแบบอะซิงโครนัส หาก Google Play Services ไม่พร้อมใช้งานบนอุปกรณ์ เมธอดจะโยนข้อยกเว้น GooglePlayServicesNotAvailableException — ในกรณีนี้ นักพัฒนาต้องใช้วิธีการระบุตัวตนทางเลือก
ผู้ใช้สามารถรีเซ็ต GAID ได้ตลอดเวลาผ่านการตั้งค่า — Google — โฆษณา — รีเซ็ตตัวระบุโฆษณา หลังจากการรีเซ็ต แอปจะได้รับตัวระบุใหม่และการเชื่อมต่อกับข้อมูลก่อนหน้าจะสูญหาย ผู้ใช้ยังสามารถเปิดใช้งานตัวเลือก «ปิดการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคล» ซึ่งตั้งค่าแฟล็ก isLimitAdTrackingEnabled เป็น true
นักพัฒนาต้องเคารพแฟล็ก isLimitAdTrackingEnabled: หากเป็น true แอปต้องไม่ใช้ GAID เพื่อการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคล แต่สามารถใช้เพื่อวัตถุประสงค์ที่จำกัด เช่น การวัดคอนเวอร์ชัน การป้องกันการฉ้อโกง และการจำกัดความถี่ การละเมิดกฎนี้นำไปสู่การระงับแอปบน Google Play
เริ่มตั้งแต่ Android 14 (API 34) Google ได้แนะนำข้อจำกัดใหม่ในการเข้าถึงตัวระบุโฆษณา สิทธิ์ AD_ID ต้องถูกประกาศอย่างชัดแจ้งในแมนิเฟสต์ของแอปเพื่อรับ GAID หากแอปไม่ประกาศสิทธิ์และกำหนดเป้าหมาย API 34+ การเรียก AdvertisingIdClient จะส่งคืนตัวระบุที่เป็นค่าว่าง
นโยบาย Google Play กำหนดให้แอปที่ใช้ GAID ปฏิบัติตามกฎหลายข้อ: ตัวระบุสามารถใช้เพื่อวัตถุประสงค์ในการโฆษณาและการวิเคราะห์เท่านั้น แอปต้องไม่เชื่อมโยง GAID กับข้อมูลส่วนบุคคลโดยไม่ได้รับความยินยอมอย่างชัดแจ้งจากผู้ใช้ GAID ต้องไม่ถูกแชร์กับบุคคลที่สามโดยไม่ได้ระบุในนโยบายความเป็นส่วนตัว ตั้งแต่ปี 2025 Google Play เริ่มสแกนแอปโดยอัตโนมัติเพื่อตรวจสอบการปฏิบัติตามกฎเหล่านี้โดยใช้Play Integrity API
ความสนใจเป็นพิเศษมอบให้กับแอปสำหรับเด็ก: ตามนโยบายครอบครัวของ Google Play แอปที่กำหนดเป้าหมายเด็กไม่สามารถใช้ GAID เพื่อการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคลไม่ว่าในกรณีใดๆ นักพัฒนาต้องใช้เครือข่ายโฆษณาที่ได้รับการรับรองสำหรับผู้ชมที่เป็นเด็ก
แฟล็ก isLimitAdTrackingEnabled แจ้งให้แอปทราบถึงตัวเลือกของผู้ใช้ หากแฟล็กเป็น true แอปสามารถใช้ GAID สำหรับการดำเนินการพื้นฐานเท่านั้น: การระบุแหล่งที่มาของการติดตั้ง การวิเคราะห์ การป้องกันการฉ้อโกง การจำกัดความถี่ การปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคล การสร้างโปรไฟล์ผู้ใช้ และรีทาร์เก็ตติ้งตาม GAID เป็นสิ่งต้องห้ามในกรณีนี้
Google แนะนำว่าอย่าพยายามหลีกเลี่ยงแฟล็ก isLimitAdTrackingEnabled ผ่านตัวระบุทางเลือก (IMEI, ที่อยู่ MAC, Android ID) การใช้ตัวระบุฮาร์ดแวร์ถาวรเป็นสิ่งต้องห้ามอย่างเคร่งครัดโดยนโยบาย Google Play และนำไปสู่การระงับแอปทันทีโดยไม่มีสิทธิอุทธรณ์
การรับ GAID บน Android จำเป็นต้องเรียก AdvertisingIdClient แบบอะซิงโครนัสพร้อมจัดการข้อยกเว้นที่อาจเกิดขึ้น ด้านล่างเป็นตัวอย่างที่สมบูรณ์ใน Kotlin โดยใช้ coroutines
ตัวอย่างสาธิตการรับตัวระบุโฆษณาและการตรวจสอบแฟล็ก isLimitAdTrackingEnabled โดยใช้ coroutines และ try-catch เพื่อจัดการข้อผิดพลาดของ Google Play Services
import com.google.android.gms.ads.identifier.AdvertisingIdClient
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
data class AdvertisingInfo(
val gaid: String,
val isLimitAdTrackingEnabled: Boolean
)
suspend fun getAdvertisingInfo(context: Context): AdvertisingInfo? {
return withContext(Dispatchers.IO) {
try {
val adInfo = AdvertisingIdClient.getAdvertisingIdInfo(context)
AdvertisingInfo(
gaid = adInfo.id,
isLimitAdTrackingEnabled = adInfo.isLimitAdTrackingEnabled(true)
)
} catch (e: GooglePlayServicesNotAvailableException) {
// Google Play Services ไมṓพรṉอมใชṉงาน — ใช้ ID ทดแทน
null
} catch (e: IOException) {
// ข้อผิดพลาดเครือข่ายเมื่อเข้าถึงบริการ
null
}
}
}
// การใช้ใน Activity หรือ ViewModel
fun onGaidRequested() {
lifecycleScope.launch {
val info = getAdvertisingInfo(this@MainActivity)
setupAdNetwork(
gaid = info?.gaid,
limitTracking = info?.isLimitAdTrackingEnabled ?: true
)
}
}
การทำความเข้าใจความแตกต่างระหว่างตัวระบุโฆษณาบนแพลตฟอร์มต่างๆ เป็นสิ่งสำคัญอย่างยิ่งสำหรับนักพัฒนาที่ทำงานเกี่ยวกับการระบุแหล่งที่มาของโฆษณาบนทั้งสอง OS ด้านล่างเป็นการเปรียบเทียบประเด็นสำคัญของ GAID, AAID และ IDFA
ความแตกต่างหลักระหว่าง GAID และ IDFA คือกลไกการรับ IDFA ต้องได้รับความยินยอมอย่างชัดแจ้งผ่าน ATT โดยที่ไม่มีการยินยอมจะส่งคืนตัวระบุที่เป็นค่าว่าง GAID พร้อมใช้งานโดยไม่มีไดอะล็อกของระบบ แต่ตั้งแต่ Android 14+ ต้องประกาศสิทธิ์ AD_ID ในแมนิเฟสต์ GAID ยังมีระบบแฟล็กที่ยืดหยุ่นกว่า: isLimitAdTrackingEnabled ไม่ปิดกั้นการรับตัวระบุ แต่เพียงแจ้งให้แอปจำกัดการใช้งาน
ตามAdjust (2025) ความพร้อมใช้งานของ GAID บน Android คือ 98% ของอุปกรณ์ที่ใช้งานอยู่ เทียบกับ 20–35% ของ IDFA บน iOS ทำให้ Android เป็นแพลตฟอร์มที่คาดเดาได้มากขึ้นสำหรับการระบุแหล่งที่มาของโฆษณา แต่นโยบายของ Google ที่เข้มงวดขึ้นกำลังลดช่องว่างนี้ลงเรื่อยๆ
AAID แตกต่างจาก GAID ตรงที่ไม่ผูกติดกับ Google Play Services และสามารถใช้บนอุปกรณ์ Huawei (HMS), Amazon Fire OS และผู้ผลิตจีน บนอุปกรณ์ Huawei AAID ถูกดำเนินการผ่าน Huawei Mobile Services (HMS) ด้วยคลาส AdvertisingIdClient จากแพ็คเกจ com.huawei.hms.ads.identifier สำหรับตลาดจีน OAID (Open Anonymous ID) ก็เป็นที่แพร่หลายเช่นกัน — มาตรฐานที่พัฒนาโดยพันธมิตรผู้ผลิตจีนเพื่อแทนที่ GAID บนอุปกรณ์ที่ไม่มีบริการของ Google การเลือก API ที่ถูกต้องสำหรับรับตัวระบุส่งผลโดยตรงต่อความพร้อมใช้งานของการระบุแหล่งที่มาของโฆษณาในตลาดต่างๆ
คำถามที่พบบ่อย
GAID (Google Advertising ID) เป็นตัวระบุโฆษณาสำหรับอุปกรณ์ที่มี Google Play Services AAID (Android Advertising ID) เป็นคำทั่วไปสำหรับตัวระบุโฆษณา Android รวมถึงอุปกรณ์ที่ไม่มีบริการของ Google (Huawei, Amazon Fire) GAID ได้รับผ่าน Google Play ส่วน AAID ได้รับผ่าน SDK ของร้านค้าแอปที่เกี่ยวข้อง
ใช่ เริ่มตั้งแต่ Android 14 (API 34) จำเป็นต้องระบุสิทธิ์ AD_ID ในแมนิเฟสต์ หากแอปมี targetSdkVersion 34+ และไม่ระบุ AD_ID AdvertisingIdClient จะส่งคืนตัวระบุที่เป็นค่าว่าง สิทธิ์ถูกระบุผ่านแท็ก
ใช่ ผู้ใช้สามารถรีเซ็ต GAID ได้ตลอดเวลาผ่าน การตั้งค่า — Google — โฆษณา — รีเซ็ตตัวระบุโฆษณา หลังจากการรีเซ็ต แอปทั้งหมดจะได้รับตัวระบุใหม่และการเชื่อมต่อกับประวัติการโต้ตอบโฆษณาจะสูญหาย
OAID (Open Anonymous ID) เป็นมาตรฐานตัวระบุโฆษณาที่พัฒนาโดยพันธมิตรผู้ผลิตสมาร์ทโฟนจีน (Xiaomi, OPPO, vivo, Huawei) ใช้บนอุปกรณ์ที่ไม่มี Google Play Services สำหรับตลาดจีน แตกต่างจาก GAID ตรงที่ OAID ไม่ต้องการ Google Play และทำงานผ่าน SDK ของผู้ผลิตอุปกรณ์
หาก isLimitAdTrackingEnabled เป็น true แอปไม่สามารถใช้ GAID สำหรับการปรับเปลี่ยนโฆษณาในแบบเฉพาะบุคคล การสร้างโปรไฟล์ผู้ใช้ และรีทาร์เก็ตติ้ง อย่างไรก็ตาม ตัวระบุสามารถใช้เพื่อวัตถุประสงค์ที่จำกัด: การระบุแหล่งที่มาของการติดตั้ง การวิเคราะห์ การป้องกันการฉ้อโกง และการจำกัดความถี่
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ
อ่านเพิ่มเติม