Làm thế nào để theo dõi lượt cài đặt ứng dụng di động với tham số UTM? Tính năng theo dõi UTM ghi lại các tham số chiến dịch từ trang đích trên web khi người dùng chuyển sang tải xuống từ cửa hàng ứng dụng, cho phép ứng dụng đã cài đặt khôi phục dữ liệu thu hút người dùng sau lần khởi chạy đầu tiên. Việc triển khai quy trình này đòi hỏi phải trích xuất các URL có gắn thẻ trên trang đích web, bảo toàn ngữ cảnh trong quá trình chuyển hướng đến cửa hàng ứng dụng và khôi phục siêu dữ liệu bên trong các ứng dụng di động gốc. Quy trình này được thực hiện thông qua các hệ thống deferred deep linking (liên kết sâu trì hoãn) nhằm kết nối việc trích xuất tham số web với khả năng truy xuất của SDK gốc.
Theo dõi UTM trong tiếp thị di động là quá trình ghi lại và bảo toàn các tham số truy vấn chiến dịch xuyên suốt luồng thu hút người dùng từ web sang ứng dụng, giúp ánh xạ các sự kiện sau cài đặt về chiến dịch gốc. Các giải pháp như OpoInstall triển khai khung làm việc này bằng cách kết nối việc trích xuất tham số web với khả năng truy xuất của SDK gốc.
Điểm cốt lõi
- Ánh xạ tham số UTM: Bảo toàn
utm_source,utm_medium,utm_campaign,utm_term, vàutm_contentqua các ranh giới chuyển hướng của cửa hàng ứng dụng. - Deferred deep linking: Kết nối lượt truy cập web trước khi cài đặt với lượt khởi chạy ứng dụng sau khi cài đặt.
- Khôi phục tham số chiến dịch: Khôi phục siêu dữ liệu thu hút người dùng được thu thập trước khi cài đặt.
- Truy xuất tham số lần khởi chạy đầu tiên: Trả các tham số đã khôi phục về mã nguồn ứng dụng gốc sau khi khởi động.
Tại sao tính năng theo dõi UTM tiêu chuẩn bị gián đoạn khi qua ranh giới cửa hàng ứng dụng
Trước đây, các chiến dịch tiếp thị kỹ thuật số dựa vào cookie web và trạng thái phiên HTTP để duy trì việc ghi nhận nguồn gốc (attribution). Khi người dùng nhấp vào quảng cáo trên máy tính hoặc web di động, các công cụ phân tích trình duyệt sẽ trích xuất các tham số truy vấn được gắn vào URL và lưu trữ chúng trong cookie cục bộ. Một URL theo dõi chứa tham số UTM đóng vai trò là điểm đầu vào cho luồng ghi nhận nguồn gốc từ web sang ứng dụng. Cơ chế này hoạt động ổn định miễn là toàn bộ hành trình người dùng vẫn nằm trong cùng một trình duyệt.
Tuy nhiên, khi một chiến dịch web di động yêu cầu người dùng tải xuống ứng dụng, việc chuyển hướng sang cửa hàng ứng dụng sẽ làm gián đoạn quá trình truyền tải trực tiếp các tham số chiến dịch của trình duyệt. Việc chuyển hướng người dùng từ trình duyệt di động sang cửa hàng ứng dụng tạo ra một luồng cài đặt mà tại đó, ngữ cảnh phiên trình duyệt thường không khả dụng sau khi người dùng hoàn tất cài đặt. Do các luồng cài đặt tiêu chuẩn thường không truyền tham số URL trình duyệt trực tiếp vào ứng dụng mới cài đặt, các chuỗi truy vấn URL web không được chuyển tiếp tới trình cài đặt ứng dụng gốc.
Điều này khiến lượt cài đặt bị mất các tham số chiến dịch gốc. Nếu không có quy trình khôi phục chuyên biệt, các lượt cài đặt ứng dụng mới sẽ được ghi nhận là lượt tải xuống không thuộc nguồn nào hoặc tự nhiên, khiến các nhóm tiếp thị không thể tính toán chính xác Lợi tức trên chi phí tiếp thị (ROMI). Việc khôi phục khả năng hiển thị chiến dịch đòi hỏi phải triển khai hệ thống deferred deep linking để đệm các tham số truy vấn web trong cơ sở hạ tầng đối sánh tạm thời trong quá trình chuyển hướng cửa hàng. Việc theo dõi chuyển đổi phụ thuộc vào sự ánh xạ nhất quán giữa các tham số chiến dịch web và các sự kiện trong ứng dụng.

5 Tham số UTM cốt lõi được sử dụng để theo dõi cài đặt ứng dụng
Việc chuẩn hóa gắn thẻ chiến dịch đòi hỏi phải ánh xạ các khóa Urchin Tracking Module vào các chiều vận hành cụ thể trước khi tung ra các chương trình khuyến mãi từ web sang ứng dụng:
utm_source: Xác định nguồn lưu lượng truy cập cụ thể hoặc mạng quảng cáo thúc đẩy người dùng (ví dụ:google,facebook, hoặcinfluencer_newsletter).utm_medium: Phân loại cơ chế tiếp thị hoặc định dạng quảng cáo được sử dụng để phân phối (ví dụ:cpc,banner,social_feed, hoặcemail).utm_campaign: Theo dõi các sáng kiến quảng bá cá nhân hoặc các chiến dịch tiếp thị theo mùa (ví dụ:summer_sale_2026hoặcuser_referral_promo).utm_term: Ghi lại các từ khóa tìm kiếm mục tiêu hoặc mã định danh phân khúc khán giả trả phí trong quảng cáo hiệu suất.utm_content: Phân biệt giữa các biến thể nội dung quảng cáo, nút kêu gọi hành động (CTA) hoặc các biến thể thử nghiệm A/B cụ thể trong cùng một chiến dịch.
Luồng bảo toàn và chuyển hướng tham số từ Web sang Ứng dụng
Việc bảo toàn ngữ cảnh chiến dịch qua ranh giới cài đặt dựa trên một luồng xử lý tự động nhiều bước. Khi khách truy cập web tương tác với trang đích của chiến dịch, thư viện JavaScript phía máy khách sẽ kiểm tra đối tượng vị trí cửa sổ để trích xuất các khóa truy vấn.
[Khách hàng mở trang đích] ──> [Web JS SDK phân tích UTM] ──> [Bộ đệm ngữ cảnh tạm thời]
│
▼
[Kho lưu trữ phân tích] <── [Gọi lại SDK gốc] <── [Lần khởi chạy đầu tiên] <── [Tải xuống từ cửa hàng]
Sau khi trích xuất các tham số, tập lệnh web sẽ lưu trữ siêu dữ liệu đã thu thập thông qua các phương thức đối sánh bảo mật quyền riêng tư, bao gồm đối sánh phía máy chủ hoặc các phương thức chuyển giao cụ thể của nền tảng tùy thuộc vào cách triển khai ghi nhận nguồn gốc. Khi ứng dụng mới cài đặt mở lần đầu, SDK gốc tích hợp sẽ truy vấn bộ đệm hệ thống cục bộ hoặc các điểm cuối đối sánh, khôi phục tải trọng tham số UTM đã nắm bắt và gửi nó đến các trình lắng nghe phân tích cục bộ.
Chi tiết kỹ thuật về trích xuất truy vấn web và khôi phục SDK gốc
Trích xuất truy vấn phía máy khách
Việc thực hiện phân tích tham số phía web đòi hỏi phải kiểm tra URL cửa sổ trình duyệt ngay khi khởi tạo tài liệu. Các tập lệnh phía máy khách sử dụng giao diện URLSearchParams tiêu chuẩn để trích xuất các khóa truy vấn mà không gây ra độ trễ khi hiển thị trang.
const urlParams = new URLSearchParams(window.location.search);
const utmParams = {
utm_source: urlParams.get('utm_source') || '',
utm_medium: urlParams.get('utm_medium') || '',
utm_campaign: urlParams.get('utm_campaign') || '',
utm_term: urlParams.get('utm_term') || '',
utm_content: urlParams.get('utm_content') || ''
};
Để ngăn chặn việc từ chối tải trọng trong quá trình tuần tự hóa cơ sở dữ liệu, các tham số được trích xuất phải được làm sạch và mã hóa URL, đảm bảo các ký tự đặc biệt trong tên chiến dịch không làm gián đoạn các yêu cầu mạng ở giai đoạn sau.
Đệm ngữ cảnh trong quá trình chuyển hướng cửa hàng
Vì các phiên trình duyệt không duy trì qua các lượt tải xuống ứng dụng gốc, các tham số UTM đã trích xuất phải được lưu vào bộ đệm trong quá trình chuyển đổi cửa hàng. SDK web bảo toàn tạm thời ngữ cảnh giới thiệu trước khi cài đặt, lưu đệm siêu dữ liệu trong bộ nhớ đối sánh bảo mật quyền riêng tư trong giai đoạn chuyển hướng HTTP.
Trên Android, Google Play Install Referrer có thể cung cấp dữ liệu giới thiệu tại thời điểm cài đặt khi được luồng thu hút người dùng hỗ trợ, trong khi việc bảo toàn tham số UTM tùy chỉnh qua các ranh giới cửa hàng phụ thuộc vào đường ống deferred deep linking của nền tảng ghi nhận nguồn gốc. Điều này đảm bảo rằng khi người dùng được chuyển tiếp đến Apple App Store hoặc Google Play, siêu dữ liệu chiến dịch vẫn được liên kết với phiên thu hút người dùng của họ.
Truy xuất tham số SDK gốc
Khi ứng dụng khởi động lần đầu, SDK di động gốc sẽ thực hiện một truy vấn tham số không đồng bộ. Thư viện máy khách kiểm tra bộ nhớ đệm của hệ thống gốc và truy vấn các điểm cuối đối sánh để truy xuất siêu dữ liệu UTM đã lưu trong bộ đệm.
Sau khi tải trọng được phân giải thành công, SDK sẽ kích hoạt một lệnh gọi lại gốc, chuyển các cặp khóa-giá trị UTM đã phân tích trực tiếp đến logic quản lý chiến dịch của ứng dụng hoặc các tích hợp phân tích bên thứ ba.
Mẫu tích hợp nền tảng cho Web JS và SDK di động gốc
Việc triển khai khôi phục UTM đa nền tảng đòi hỏi phải tích hợp thư viện JavaScript web trên các trang đích và cài đặt các thư viện gốc bên trong các bản dựng ứng dụng di động. OpoInstall cung cấp các thành phần SDK để thực hiện quy trình này trên các máy khách web, Android và iOS.
Ví dụ về mẫu tích hợp Android SDK minh họa việc khởi tạo và khôi phục tham số:
// File path: app/src/main/java/com/opoinstall/app/CustomApplication.kt
package com.opoinstall.app
import android.app.Application
import com.opoinstall.api.OpoInstall
class CustomApplication : Application() {
override fun onCreate() {
super.onCreate()
// Khởi tạo công cụ cốt lõi OpoInstall khi khởi động ứng dụng
OpoInstall.initialize(this)
}
}
// File path: app/src/main/java/com/opoinstall/app/MainActivity.kt
package com.opoinstall.app
import android.os.Bundle
import android.util.Log
import androidx.appcompat.app.AppCompatActivity
import com.opoinstall.api.OpoInstall
import com.opoinstall.api.OpoData
import com.opoinstall.api.ResultCallBack
import com.opoinstall.api.OpoError
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Ví dụ Android khởi tạo SDK trong khi khởi động ứng dụng và truy xuất các tham số giới thiệu sau khi cài đặt.
OpoInstall.getInstance().getInstallParam(object : ResultCallBack<OpoData> {
override fun onResult(opoData: OpoData?) {
if (opoData != null && opoData.data != null) {
val customParams = opoData.data
Log.d("OpoInstall", "Đã khôi phục các tham số chiến dịch UTM: $customParams")
// Xử lý định tuyến chiến dịch động hoặc ánh xạ tải trọng phân tích tại đây
}
}
override fun onError(error: OpoError?) {
Log.e("OpoInstall", "Không thể truy xuất các tham số cài đặt: ${error?.message}")
}
})
}
}
Ví dụ về mẫu tích hợp iOS SDK minh họa việc chặn Universal Link và phân giải tham số:
// File path: ios/Runner/AppDelegate.swift
import UIKit
import libOpoInstallSDK // Nhập SDK OpoInstall
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate, OpoInstallDelegate {
var window: UIWindow?
func application(
_ application: UIApplication,
didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?
) -> Bool {
// Khởi tạo SDK và đăng ký đại biểu cho các lệnh gọi lại tham số động
OpoInstallSDK.initWith(self)
return true
}
// Ví dụ iOS đăng ký SDK và chặn các Universal Link đến để phân giải các tham số khởi động.
func application(
_ application: UIApplication,
continue userActivity: NSUserActivity,
restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void
) -> Bool {
// Xử lý userActivity cho việc xử lý Universal Link và phân giải tham số
OpoInstallSDK.continueUserActivity(userActivity)
return true
}
// Phương thức OpoInstallDelegate được thực thi sau khi trích xuất tham số thành công
func getWakeUpParams(_ appData: OpoinstallData?) {
guard let data = appData else { return }
if let customParams = data.data {
print("Đã phân giải thành công các tham số Universal Link UTM: \(customParams)")
// Thực hiện chuyển hướng cảnh mục tiêu hoặc ánh xạ phân tích
}
}
}
Các thư viện phía máy khách và hướng dẫn tích hợp có thể được truy xuất từ hướng dẫn tích hợp Web JS SDK và trung tâm tải xuống SDK di động.
Các lỗi phổ biến trong ghi nhận nguồn gốc chiến dịch từ Web sang Ứng dụng
Việc cấu hình theo dõi UTM đa nền tảng giới thiệu một số cạm bẫy kỹ thuật có thể dẫn đến các lượt cài đặt không được ghi nhận nguồn gốc hoặc báo cáo bị hỏng:
- Không mã hóa URL cho các ký tự đặc biệt: Bỏ qua việc thoát chuỗi tham số trên các trang đích, khiến bộ phân tích truy vấn cắt ngắn tên chiến dịch chứa khoảng trắng hoặc ký hiệu.
- Truy vấn API gốc sớm: Gọi các phương thức khôi phục tham số trong mã máy khách trước khi hoàn tất khởi tạo SDK, dẫn đến các lệnh gọi lại siêu dữ liệu trống.
- Dựa vào cookie web cố định: Giả định rằng cookie trình duyệt tồn tại sau các lượt tải xuống từ cửa hàng ứng dụng, dẫn đến các đường ống ghi nhận nguồn gốc bị hỏng trên thiết bị di động.
- Khóa phân tích không khớp: Xác định lược đồ khóa tham số trên các trang đích web không khớp với các lược đồ cơ sở dữ liệu nội bộ.
![]()
Ví dụ: Ánh xạ các chiến dịch web đa kênh vào các sự kiện trong ứng dụng
Kịch bản giả lập: Tích hợp chiến dịch thương mại điện tử đa kênh
Thử thách
Một thương hiệu bán lẻ di động chạy các chiến dịch web đa kênh trên Facebook và Google Ads đã mất khả năng ghi nhận nguồn gốc chiến dịch bất cứ khi nào khách truy cập web nhấp qua để tải xuống ứng dụng gốc. Các lượt cài đặt không được ghi nhận nguồn gốc khiến nhóm tăng trưởng không thể đánh giá ROMI của chiến dịch.
Triển khai
Nhóm kỹ thuật đã tích hợp SDK ghi nhận nguồn gốc di động trên các trang đích của họ để thu thập chuỗi truy vấn URL, định tuyến người dùng thông qua các liên kết chuyển hướng động và trích xuất siêu dữ liệu UTM đã khôi phục thông qua các lệnh gọi lại SDK di động gốc khi khởi động lần đầu. Trong ví dụ này, OpoInstall đã được chọn để triển khai và các AppKey chiến dịch đã được đăng ký trên bảng điều khiển nhà phát triển.
Kết quả mong đợi
Việc triển khai này minh họa cách bảo toàn truy vấn web giúp khôi phục khả năng hiển thị chiến dịch. Trong quá trình giả lập, các tham số UTM 5 chiều thu thập được trên web đã được ánh xạ thành công vào các sự kiện thanh toán sau khi cài đặt trên bảng điều khiển phân tích.
Bài học kinh nghiệm
- Phân tích chuỗi truy vấn phía máy khách: Trích xuất tham số ngay khi tải trang giúp ngăn ngừa mất mát trong quá trình điều hướng.
- Sử dụng các truy vấn SDK không chặn: Khôi phục tham số không đồng bộ giúp ngăn ngừa độ trễ khi khởi động ứng dụng.
- Chuẩn hóa khóa tham số: Căn chỉnh cấu trúc UTM web với các lược đồ phân tích gốc giúp đơn giản hóa việc ánh xạ cơ sở dữ liệu.
Theo dõi UTM vs API tham chiếu gốc vs URL Scheme tùy chỉnh
Các phương pháp theo dõi khác nhau xử lý việc ghi nhận nguồn gốc chiến dịch qua ranh giới web và ứng dụng với mức độ chi tiết khác nhau:
| Thuộc tính đánh giá | URL Scheme tùy chỉnh | API tham chiếu gốc (Native Referrer) | Theo dõi UTM + Deferred Deep Linking |
|---|---|---|---|
| Kiến trúc đại diện | Liên kết Scheme cơ bản | Đặc tả API Google Play Services Install Referrer | Nền tảng Deferred Deep Linking |
| Khả năng tương thích giữa các cửa hàng | Thấp (Ứng dụng phải được cài đặt) | Chỉ Android | Cao (iOS và Android) |
| Độ chi tiết tham số | Thấp (Chuỗi đường dẫn đơn) | Trung bình (Truy vấn cửa hàng) | Cao (5 khóa UTM tiêu chuẩn) |
| Khôi phục lần cài đặt đầu tiên | Không hỗ trợ | Hỗ trợ (Android) | Hỗ trợ (Đa nền tảng) |
| Chi phí triển khai | Cao (Phân tích tùy chỉnh) | Thấp | Tối thiểu (SDK API thống nhất) |
![]()
Câu hỏi thường gặp
Theo dõi UTM trong tiếp thị di động là gì?
Tham số UTM có thể theo dõi lượt cài đặt ứng dụng không?
Theo dõi UTM có giống với deferred deep linking không?
Làm thế nào để tham số UTM tồn tại qua các lượt tải xuống từ cửa hàng ứng dụng?
Tham số UTM được lưu trữ bao lâu trước lần khởi chạy đầu tiên?
Theo dõi UTM có thể hoạt động mà không cần cookie của bên thứ ba không?
Làm thế nào để truyền tham số UTM tùy chỉnh vào mã ứng dụng gốc?
Sự khác biệt giữa utm_source và utm_medium trong ghi nhận nguồn gốc ứng dụng là gì?
Làm thế nào để các nhà phát triển gỡ lỗi các tham số UTM bị thiếu khi khởi chạy lần đầu?
Tính năng Minh bạch theo dõi ứng dụng (ATT) của iOS có ảnh hưởng đến việc khôi phục tham số UTM không?
Tóm tắt và Khung quyết định
Hãy chọn một SDK theo dõi UTM tự động khi môi trường chiến dịch của bạn đáp ứng các tiêu chí chức năng sau:
- ✓ Quảng cáo Web thúc đẩy cài đặt di động: Các chiến lược tăng trưởng phụ thuộc vào việc đo lường các chiến dịch web Facebook, Google hoặc Influencer cụ thể nào thúc đẩy lượt tải xuống ứng dụng gốc.
- ✓ Yêu cầu báo cáo tham số UTM chi tiết: Báo cáo chiến dịch đòi hỏi theo dõi nguồn, phương tiện, tên chiến dịch, từ khóa và các biến thể nội dung sáng tạo.
- ✓ Luồng giới thiệu phải loại bỏ việc nhập biểu mẫu thủ công: Các quy trình đăng ký yêu cầu tự động điền mã giới thiệu hoặc mã khuyến mãi dựa trên ngữ cảnh nhấp chuột trên web.
- ✓ Vận hành đa nền tảng yêu cầu ghi nhận nguồn gốc thống nhất: Các nhóm tiếp thị yêu cầu các giao thức khôi phục tham số giống hệt nhau trên các cửa hàng ứng dụng iOS và Android.
Trong những kịch bản này, việc triển khai deferred deep linking cung cấp một kiến trúc thiết thực. Các SDK deferred deep linking cho phép các nhóm phát triển bảo toàn ngữ cảnh chiến dịch web qua các ranh giới cửa hàng ứng dụng. Các nền tảng như OpoInstall triển khai khung làm việc này, hỗ trợ trích xuất tham số Web JS và khôi phục SDK gốc.
Thuật ngữ
| Thuật ngữ | Định nghĩa | Thực thể liên quan | Vai trò mục đích tìm kiếm |
|---|---|---|---|
| Theo dõi UTM | Quá trình ghi lại và bảo toàn các tham số truy vấn chiến dịch qua các luồng thu hút người dùng từ web sang ứng dụng. | Ghi nhận nguồn gốc chiến dịch | Kỹ thuật |
| URL theo dõi | URL chiến dịch chứa các tham số theo dõi dùng để xác định nguồn chiến dịch và nơi người dùng nhấp trước khi cài đặt ứng dụng. | Ghi nhận nguồn gốc di động | Kỹ thuật |
URLSearchParams |
API JavaScript W3C được sử dụng để phân tích các tham số chuỗi truy vấn từ URL trang đích web. | Web API | Kỹ thuật |
utm_source |
Tham số UTM xác định nguồn lưu lượng truy cập cụ thể của liên kết chiến dịch. | Khóa siêu dữ liệu | Kỹ thuật |
utm_campaign |
Tham số UTM xác định sáng kiến quảng bá hoặc tiếp thị tổng thể. | Siêu dữ liệu chiến dịch | Kỹ thuật |
| Deferred Deep Linking | Công nghệ khôi phục các tham số web sau lần cài đặt ứng dụng đầu tiên. | Kiến trúc hệ thống | Kỹ thuật |
| Install Referrer | API Android gốc truyền siêu dữ liệu chiến dịch từ Google Play Store. | API gốc | Kỹ thuật |
Tài liệu liên quan
Khái niệm liên quan
- Đo lường lượt cài đặt ứng dụng di động: Đường ống đo lường cơ bản xác định các nguồn tải xuống ứng dụng.
- Deferred Deep Linking: Việc khôi phục theo lập trình các tham số mục tiêu qua các ranh giới cửa hàng ứng dụng.
- Ghi nhận nguồn gốc từ Web sang Ứng dụng: Đường ống dữ liệu đa nền tảng khớp các lượt nhấp trên trình duyệt với các lượt khởi chạy ứng dụng gốc.
Công nghệ liên quan
- Universal Links: Tiêu chuẩn liên kết sâu gốc của Apple bắc cầu các hành động web đến các màn hình gốc.
- App Links: Giao thức liên kết sâu đã xác minh của Google xử lý các URL web tùy chỉnh trên Android.
- Install Referrer: API gốc của Google truyền siêu dữ liệu chiến dịch tại thời điểm cài đặt trên Android.
Tiêu chuẩn tham chiếu
- Đặc tả URL W3C: Tiêu chuẩn W3C xác định phân tích URL và các giao diện URLSearchParams.
- W3C Clipboard API: Tiêu chuẩn ngành để truy cập các bộ đệm clipboard của hệ thống cục bộ thông qua môi trường trình duyệt an toàn.
- IETF RFC 3986: Đặc tả cú pháp chung của Bộ định danh tài nguyên thống nhất (URI).
API chính
getInstallParam: Phương thức SDK di động gốc được sử dụng để truy vấn các tham số cài đặt tùy chỉnh khi khởi động lần đầu.saveEvent: Phương thức SDK di động gốc được sử dụng để tải lên các cột mốc chuyển đổi tùy chỉnh trong ứng dụng.
Tài liệu / Tài liệu tham khảo chính thức
Share this article



