Deep link FAQ
Nhiều yếu tố khác nhau có thể ảnh hưởng đến cách thức hoạt động của deep link trong quá trình kiểm thử hoặc chạy production. Tham khảo hướng dẫn dưới đây để khắc phục các lỗi thường gặp khi sử dụng Adjust deep link, universal link và deferred deep link. Nếu lỗi vẫn tiếp diễn, vui lòng liên hệ support@adjust.com.
Các vấn đề chung về deep link
Nếu deep link không mở đúng nội dung mong muốn, hoặc trả về lỗi HTTP 404 URL not found, trước tiên hãy kiểm tra lại cú pháp và cách mã hóa của URL.
URL thường có cấu trúc như sau: scheme://host:port/path?query-string#fragment-id
Mỗi thành phần của URL thực hiện một chức năng khác nhau. Scheme và host không phân biệt chữ hoa chữ thường, nhưng đường dẫn và chuỗi truy vấn thì có. Bất kỳ sai sót nào trong cấu trúc URL đều có thể khiến liên kết không mở như mong đợi.
Khi thiết lập deep link:
- Nếu bạn muốn thêm tham số Adjust vào URL đã chứa sẵn tham số truy vấn, thì cần sử dụng dấu
&. Không thêm dấu?thứ hai, vì phần thông tin sau dấu?thứ hai có thể bị trình duyệt bỏ qua (drop). - Nếu chuỗi truy vấn đã được mã hóa, bắt đầu chuỗi bằng dấu
/hoặc đảm bảo chuỗi nằm trong tham sốdeeplink. - Đảm bảo không có khoảng trắng hoặc ký tự không hợp lệ trong các tham số fallback, callback, device ID hoặc tham số chiến dịch. Lỗi mã hóa có thể khiến tham số bị cắt mất.
URL đúng:
https://example.go.link/my?path=location&client=name&adjust_t=klm012
URL sai:
https://example.go.link/my?path=location&client=name?adjust_t=klm012
Nếu ứng dụng chưa được cài đặt và cấu trúc URL không được thiết lập đúng, trình duyệt có thể bỏ qua tham số adjust_t. Adjust cần tham số này để xác định nguồn của lượt click. Nếu không có tham số, Adjust sẽ trả về lỗi 404 URL not found.
Lỗi này xảy ra khi deep link không thể mở được ứng dụng, nên người dùng được chuyển hướng đến store theo thiết lập fallback.
Để khắc phục lỗi:
- Kiểm thử liên kết với vai trò người dùng hiện hữu.
- Nếu trong quá trình kiểm thử ứng dụng vẫn mở được, hãy kiểm tra môi trường xảy ra lỗi ban đầu của liên kết.
- Kiểm tra cấu hình Universal Link / Android App Link / App scheme tùy chỉnh, đảm bảo cấu hình được thiết lập chính xác, vì đây là các tiêu chuẩn liên kết cần thiết để mở ứng dụng.
- Đảm bảo không có lỗi mã hóa trong fallback hoặc callback, vì lỗi này có thể khiến tham số bị mất và làm hỏng liên kết.
Nếu liên kết mở được ứng dụng nhưng không mở đúng nội dung mong muốn, hãy kiểm tra xem vấn đề đến từ cấu hình liên kết hay cấu hình ứng dụng.
Hãy đưa (host) liên kết lên môi trường web và mở liên kết trên thiết bị thử nghiệm. Nếu bạn đang sử dụng tên miền thương hiệu (branded domain), hãy kiểm thử trực tiếp liên kết chứa tên miền đó. Nếu đang sử dụng liên kết adj.st (liên kết cũ của Adjust), bạn có thể kiểm thử tên miền universal link (ví dụ: https://abcd.adj.st/) hoặc app scheme (ví dụ: myapp://.)
Nếu ứng dụng mở nhưng đường dẫn không đúng, hãy yêu cầu bộ phận phát triển kiểm tra lại các đường dẫn bên trong ứng dụng, đảm bảo đường dẫn đã được cấu hình chính xác.
Lưu ý: Universal link dạng adj.st là phương pháp cũ. Adjust khuyến nghị sử dụng tên miền thương hiệu cho các liên kết mới.
Phân bổ (attribution) và báo cáo
Không. Adjust chỉ nhận dữ liệu lượt click nếu deep link đó có sử dụng liên kết của Adjust hoặc chứa tham số của Adjust. Còn nếu đó là direct deep link và liên kết đó chỉ sử dụng tên miền hoặc scheme riêng của ứng dụng, thì dữ liệu lượt click sẽ không được gửi đến Adjust.
Gửi dữ liệu về lượt click
myapp://welcome?adjust_t=abc123&adjust_campaign=re-engage_my_users&adjust_adgroup=apac&adjust_creative=promo1
https://z9pm.adj.st/welcome?adjust_t=abc123&adjust_campaign=re-engage_my_users&adjust_adgroup=apac&adjust_creative=promo1Không gửi dữ liệu về lượt click:
myapp://welcomeĐể nhận dữ liệu lượt click cho các ứng dụng đã được cài đặt và hỗ trợ tái phân bổ deep link, hãy triển khai SDK click cho Adjust SDK trên nền tảng iOS hoặc Android. Những deep link kích hoạt SDK click sẽ được ghi nhận là lượt click trong Datascape và hiển thị trong dữ liệu thô thông qua click callback.
Để biết lượt click nào đến từ SDK click do deep link kích hoạt, hãy thêm trường dữ liệu {is_deeplink_click}.
Tại sao tôi không xem được dữ liệu phân bổ (attribution data) hay dữ liệu cấp chiến dịch (campaign-level data)?
Nếu bạn không tìm thấy dữ liệu phân bổ hay dữ liệu cấp chiến dịch trên deep link URL, thì có thể là do lỗi cài đặt. Vui lòng kiểm tra xem có lỗi mã hóa xảy ra với fallback hay callback hay không, vì lỗi này làm tham số device ID và tham số chiến dịch (nếu có) bị cắt ngắn bớt. Ví dụ lỗi mã hóa: URL không có khoảng trắng hay tồn tại ký tự không hợp lệ.
Các vấn đề về universal link
Nếu lượt cài đặt đã được phân bổ đúng cách, nhưng đối tác lại không nhận được callback, hãy kiểm tra lại cấu hình universal link.
Đảm bảo rằng:
Tham số click ID đã được thêm vào universal link. Không có lỗi mã hóa trong fallback hoặc callback. Tham số click ID có tiền tố adj_ hoặc adjust_.
Nếu thiếu click ID, sai định dạng hoặc bị cắt tham số do lỗi mã hóa, Adjust vẫn có thể phân bổ lượt cài đặt, nhưng không thể gửi dữ liệu callback đến đối tác.
Trước tiên, hãy kiểm tra cấu hình của universal link, đảm bảo cấu hình là chính xác.
Sau đó, kiểm tra môi trường mà Apple đang sử dụng để mở liên kết. Apple không cho phép chạy lệnh chuyển hướng (redirect) đến universal link trên môi trường khác ngoài Safari, nên bạn cần đưa (host) universal link thô hay scheme lên môi trường web, rồi nhấn vào liên kết trên web đó.
Nếu ứng dụng vẫn không mở:
- Mở trang HTML thử nghiệm trên Safari, sau đó chọn nút Chia sẻ. Nếu bạn thấy tùy chọn “Open in…” có liệt kê ứng dụng của mình, tức là Associated Domain đã được cấu hình đúng và file Apple App Site Association đã được tải xuống.
- Nếu không thấy ứng dụng xuất hiện trong danh sách, hãy gỡ cài đặt rồi cài đặt lại ứng dụng.
- Kiểm tra để đảm bảo Bundle ID giống nhau giữa môi trường thử nghiệm (testing) và môi trường triển khai (production).
- Đảm bảo iOS Bundle ID và App Prefix đã được nhập đúng trên AppView.
- Nếu ứng dụng vẫn không mở, hãy yêu cầu bộ phận phát triển kiểm tra cấu hình liên kết giữa universal link hoặc app scheme với ứng dụng.
Ngoài ra, hãy kiểm tra xem liên kết có chứa thuộc tính target="_blank" hay không. Thuộc tính này hoạt động được trong môi trường thử nghiệm nhưng thất bại trong triển khai. Nếu có, hãy xóa thuộc tính đó khỏi liên kết.
Đảm bảo universal link đã được thêm đường dẫn. Nếu không có đường dẫn được thêm vào, người dùng có thể bị chuyển hướng đến store ngay cả khi ứng dụng đã được cài đặt. Đường dẫn này không nhất thiết phải là một đường dẫn hợp lệ.
Trong phần lớn trường hợp, iOS không cho phép chuyển hướng đến universal link nằm ngoài Safari. Nghĩa là các môi trường sử dụng SFSafariViewController đều có thể bị ảnh hưởng.
Vì liên kết trong email có thể được mở trong nhiều môi trường khác nhau, bao gồm trình duyệt và ứng dụng email không hỗ trợ universal link, nên Adjust khuyến nghị sử dụng liên kết JSR hoặc tích hợp Adjust ESP.
Deep link chứa tham số deeplink
Nếu sử dụng bài đăng Facebook để truyền thông, thì chiến dịch cần sử dụng liên kết Adjust có chứa tham số deeplink. Tham số deeplink này cũng cần được bổ sung đường dẫn. Nếu không có đường dẫn, người dùng có thể bị chuyển hướng đến store ngay cả khi ứng dụng đã được cài đặt. Đường dẫn này không nhất thiết phải là một đường dẫn hợp lệ.
Ví dụ: https://app.adjust.com/abc123?deeplink=adjust%3A%2F%2Fsuch_path
Deferred deeplinks
Deferred deep link được sử dụng khi người dùng nhấn vào deep link trước khi cài đặt ứng dụng. Sau khi cài đặt, ứng dụng sẽ mở đúng nội dung mong muốn trong ứng dụng.
Nếu deferred deep link không mở đúng nội dung:
- Kiểm tra xem đường dẫn có tồn tại trong ứng dụng hay không.
- Đưa app scheme (
myapp://) lên môi trường web và nhấn vào liên kết trên trình duyệt đó. - Nếu đường dẫn không hoạt động với người dùng hiện hữu, hãy yêu cầu bộ phận phát triển kiểm tra lại các đường dẫn bên trong ứng dụng, đảm bảo đường dẫn đã được cấu hình chính xác.
- Nếu đường dẫn hoạt động với người dùng hiện hữu nhưng không hoạt động với người dùng mới, hãy kiểm tra trong Testing Console, xem liệu thiết bị có được phân bổ cho lượt click hay không.
- Nếu thiết bị không được phân bổ, hãy xóa dữ liệu thiết bị (forget) bằng Testing Console và thử lại.
- Nếu thiết bị đã được phân bổ, hãy kiểm tra xem thiết bị có chứa tham số
deeplinkhay không. - Nếu thiếu tham số
deeplink, hãy kiểm tra có lỗi mã hóa hoặc ký tự đặc biệt hay không, vì các lỗi này có thể làm cắt URL. - Nếu có tham số
deeplinknhưng thiếu đường dẫn, hãy liên hệ bộ phận hỗ trợ Adjust.
Đôi khi, trong quá trình thử nghiệm, deferred deep link vẫn tồn tại trong một khoảng thời gian sau khi xảy ra lượt click, ngay cả khi bạn đã xóa dữ liệu thiết bị bằng Testing Console.
Chuyện này có thể xảy ra trong trường hợp bạn:
- Nhấn vào deep link, cài đặt ứng dụng, rồi mở ứng dụng.
- Gỡ ứng dụng ra khỏi thiết bị.
- Xóa dữ liệu thiết bị bằng Testing Console.
- Chạy một thử nghiệm khác và deferred deep link không hoạt động.
Trong trường hợp này, hãy gỡ ứng dụng lần nữa, tiếp tục xóa dữ liệu thiết bị bằng Testing Console, rồi chạy lại thử nghiệm.