Mobile SDKDeep Link
React Native
คู่มือการรวม AdStage DeepLink (React Native)
สารบัญ
- ภาพรวม
- การติดตั้ง
- การตั้งค่าตามแพลตฟอร์ม
- การเริ่มต้น SDK
- การจัดการ Deep Link ที่เข้ามา
- การสร้าง Deep Link
- การแก้ไขปัญหา
ภาพรวม
AdStage DeepLink SDK สำหรับ React Native มีฟีเจอร์ดังนี้:
- Deep Link แบบเรียลไทม์: จัดการทันทีผ่าน URL Scheme, App Link/Universal Links
- Deferred Deep Link: กู้คืนอัตโนมัติเมื่อเปิดแอปครั้งแรกหลังติดตั้ง
- สร้าง Deep Link แบบไดนามิก: สร้างลิงก์ที่ติดตามได้ผ่าน API เซิร์ฟเวอร์
- การติดตาม Attribution: วิเคราะห์การตลาดตามพารามิเตอร์ UTM
- ข้ามแพลตฟอร์ม: API เดียวกันสำหรับ Android/iOS
ประเภท Deep Link ที่รองรับ
- URL Scheme:
myapp://promo/summer - Android App Links:
https://go.myapp.com/abc123 - iOS Universal Links:
https://go.myapp.com/abc123 - Deferred Deep Link: เมื่อไม่ได้ติดตั้งแอป → Store → ติดตั้ง → กู้คืนเมื่อเปิดแอป
การติดตั้ง
ติดตั้งผ่าน npm / yarn
ติดตั้ง Dependencies สำหรับ iOS
การตั้งค่าตามแพลตฟอร์ม
การตั้งค่า iOS
1. สิทธิ์ ATT (App Tracking Transparency) (จำเป็น)
เพิ่มในไฟล์ ios/YourApp/Info.plist:
2. การตั้งค่า URL Scheme
เพิ่มในไฟล์ ios/YourApp/Info.plist:
3. การตั้งค่า Universal Links (ไม่บังคับ)
เพิ่มในไฟล์ ios/YourApp/YourApp.entitlements:
4. แก้ไข AppDelegate.mm
เพิ่มเมธอดสำหรับจัดการ Deep Link ในไฟล์ ios/YourApp/AppDelegate.mm:
การตั้งค่า Android
1. เพิ่ม Maven Repository (จำเป็น)
เพิ่มใน android/settings.gradle หรือ android/build.gradle:
2. การตั้งค่า minSdkVersion
ตรวจสอบใน android/build.gradle:
3. การตั้งค่า AndroidManifest.xml
เพิ่ม Intent Filter ใน android/app/src/main/AndroidManifest.xml:
4. ข้อควรระวังเรื่อง launchMode
- ✅ singleTask: ใช้ Activity ที่มีอยู่ซ้ำ (แนะนำ)
- ⚠️ singleTop: ใช้ซ้ำเมื่ออยู่บนสุดของ Stack เท่านั้น
- ❌ standard: สร้าง Instance ใหม่ทุกครั้ง (ทำให้ Deep Link ซ้ำ)
การเริ่มต้น SDK
การเริ่มต้นพื้นฐาน
การจัดการ Deep Link ที่เข้ามา
1. ตั้งค่า Deep Link Listener
2. โครงสร้าง DeepLinkData
3. การจัดการ Pending Deep Link
เมื่อแอปถูกเปิดจาก Deep Link ขณะที่ปิดอยู่สนิท:
4. ตัวอย่างจริง: การรวมกับ React Navigation
การสร้าง Deep Link
การสร้าง Deep Link พื้นฐาน
พารามิเตอร์ CreateDeepLinkRequest
| พารามิเตอร์ | ประเภท | จำเป็น | คำอธิบาย |
|---|---|---|---|
name | string | ✅ | ชื่อ Deep Link |
description | string | - | คำอธิบาย Deep Link |
shortPath | string | - | กำหนด Short Path เอง |
channel | string | - | ช่องทาง |
subChannel | string | - | ช่องทางย่อย |
campaign | string | - | แคมเปญ |
adGroup | string | - | กลุ่มโฆษณา |
creative | string | - | ครีเอทีฟโฆษณา |
content | string | - | เนื้อหา |
keyword | string | - | คีย์เวิร์ด |
redirectConfig | RedirectConfig | - | การตั้งค่า Redirect |
parameters | object | - | พารามิเตอร์กำหนดเอง |
โครงสร้าง RedirectConfig
| ประเภท | ติดตั้งแอปแล้ว | ไม่ได้ติดตั้งแอป |
|---|---|---|
STORE | ไป Store | ไป Store |
APP | เปิดแอป (Deep Link เรียลไทม์) | ไป Store → Deferred Deep Link หลังติดตั้ง |
WEB | ไป URL เว็บ | ไป URL เว็บ |
ฟังก์ชันยูทิลิตี้
ดึง Short Path
จัดการ Intent ของ Android แบบ Manual
การแก้ไขปัญหา
ปัญหา iOS
ไม่ได้รับ Deep Link
- ตรวจสอบว่า URL Scheme ถูกตั้งค่าอย่างถูกต้องใน Info.plist
- ตรวจสอบว่าเมธอดจัดการ Deep Link ถูกเพิ่มใน AppDelegate.mm
- สำหรับ Universal Links ตรวจสอบว่า Associated Domains ถูกตั้งค่าแล้ว
Popup ขอสิทธิ์ ATT ไม่แสดง
- ตรวจสอบว่ามี Key
NSUserTrackingUsageDescriptionใน Info.plist
ปัญหา Android
ได้รับ Deep Link ซ้ำ
- ตรวจสอบการตั้งค่า
android:launchMode="singleTask"
ไม่ได้รับ Deep Link
- ตรวจสอบ Intent Filter ใน AndroidManifest.xml
- ตรวจสอบการตั้งค่า
android:exported="true" - สำหรับ App Links ตรวจสอบไฟล์ Digital Asset Links
ปัญหาทั่วไป
Deferred Deep Link ไม่ทำงาน
- ตรวจสอบว่า Listener ถูกตั้งค่าหลังจากเริ่มต้น SDK เสร็จสมบูรณ์
- ตรวจสอบว่าเรียกใช้
checkPendingDeepLink()แล้วหรือไม่ - ตรวจสอบสถานะการเชื่อมต่อเครือข่าย
พารามิเตอร์ไม่ถูกส่ง
- ตรวจสอบว่าค่าถูกตั้งค่าอย่างถูกต้องในอ็อบเจกต์
parametersเมื่อสร้าง Deep Link

