Universal link FAQ
Có nhiều yếu tố có thể ảnh hưởng đến hoạt động của universal link. Nếu universal link mang đến kết quả không mong muốn, dù là trong quá trình thử nghiệm (testing) hay triển khai thực tế (production), vui lòng tham khảo hướng dẫn sau để khắc phục lỗi. Nếu lỗi vẫn tiếp tục xảy ra, vui lòng liên hệ với chúng tôi.
Vấn đề thường gặp
Cú pháp và mã hóa URL có chính xác không?
Nếu deep link không đưa bạn đến một trang nhất định hoặc trả về lỗi HTTP 404, trước tiên hãy kiểm tra mã hóa và cú pháp URL.
URL thường sử dụng cú pháp: 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 và dùng các ký tự nhất định để xác định và phân tách giá trị. 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ó. Sai sót trong thành phần của URL sẽ làm xuất hiện lỗi không mở được URL.
Khi cài đặt deep link, hãy chú ý đến các điều kiện sau:
- Nếu bạn muốn thêm tham số Adjust vào chuỗi truy vấn URL đã chứa sẵn tham số truy vấn, sử dụng dấu
&
. Nếu bạn không sử dụng, thì bất kỳ thông tin nào xuất hiện sau dấu?
thứ hai của URL sẽ bị trình duyệt bỏ qua (drop).- URL đúng:
https://abcd.adj.st/my?path=location&client=name&adjust_t=klm012
- URL sai:
https://z9pm.adj.st/my?path=location&client=name?adjust_t=klm012
- URL đúng:
- 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
.
Nếu ứng dụng chưa được cài đặt và các điều kiện trên không được đáp ứng, thì tham số adjust_t
sẽ bị trình duyệt bỏ qua. Adjust cần tham số này để xác định nguồn của lượt click; nếu không có tham số, chúng tôi sẽ trả về lỗi HTTP 404 là URL not found
.
Ví dụ
Tùy vào cài đặt URL của bạn, deep link có thể hoạt động theo các cách sau:
Cài đặt deep link | Ví dụ link URL | Hoạt động |
---|---|---|
Link URL + tham số deep_link | https://app.adjust.com/r40ncx7?deep_link=adjust%3A%2F%2F%3Fpath | Mở ứng dụng và dẫn đến một trang cụ thể trong ứng dụng |
Universal link | https://abcd.adj.st/%3Fpath?adjust_t=r40ncx7 | Mở ứng dụng và dẫn đến một trang cụ thể trong ứng dụng |
Universal link | https://abcd.adj.st/?path&adjust_t=r40ncx7 | Mở ứng dụng nếu ứng dụng đã được cài, nhưng không dẫn đến một trang cụ thể trong ứng dụng. |
Universal link | https://abcd.adj.st%3Fpath?adjust_t=r40ncx7 | Không hợp lệ và trả về thông báo lỗi |
Tại sao tôi không xem được dữ liệu phân bổ (attribution data) và/hoặc 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ệ.
Tại sao link chuyển hướng đến store dù ứng dụng đã được cài đặt?
Lỗi này xảy ra khi deep link không thể mở được ứng dụng, nên lệnh fallback chuyển hướng đến store đã được chạy. Vui lòng thực hiện các bước sau để kiểm tra vấn đề này:
Thực hiện theo hướng dẫn kiểm tra, đóng vai là người dùng hiện tại, sử dụng universal link và liên kết chứa tham số deep_link.
Nếu kiểm tra thành công và bạn mở được ứng dụng, thì vui lòng kiểm tra, thời điểm deep link bị lỗi, link được click vào từ môi trường nào. Sau đó kiểm tra liệu bạn có cần phải bổ sung tham số hay không.
- Ví dụ: nếu một JSR universal link được click vào từ Slack, thì flag
adjust_deeplink_js=1
nên xuất hiện. Việc này giúp nạp scheme trước khi chuyển hướng người dùng đến store. Nếu link không hoạt động ngay cả khi có flagadjust_deeplink_js
, thì rất có thể App Scheme đã bị nhập sai trên Campaign Lab.
- Ví dụ: nếu một JSR universal link được click vào từ Slack, thì flag
Đảm bảo không có lỗi mã hóa xảy ra với fallback hay callback trên link URL. Vấn đề trên sẽ khiến tham số bị trình duyệt bỏ qua. Khi tham số bị bỏ qua, liên kết sẽ không hoạt động như dự kiến.
Tại sao deep link không mở đúng trang trong ứng dụng?
Nếu link không chuyển hướng đến đúng trang nhưng vẫn mở được ứng dụng, vui lòng kiểm tra liệu lỗi đến từ đường link hay phần cài đặt ứng dụng.
- Đưa (host) tên miền universal link (
https://abcd.adj.st/
) hoặc scheme (myapp://
) lên một môi trường web và click vào link từ môi trường đó. - Vui lòng trao đổi với bộ phận phát triển để đảm bảo đường dẫn trong ứng dụng được thiết lập chính xác.
Adjust ghi nhận dữ liệu lượt click nếu deep link đó có chứa liên kết hoặc tham số của Adjust. Còn nếu đó là direct deep link và chứa tên miền ứng dụng, thì Adjust sẽ không nhận được dữ liệu.
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=promo1
Không gửi dữ liệu về lượt click:
myapp://welcome
Nếu ứng dụng đã được cài đặt và ghi nhận deep link reattribution, và bạn muốn lấy dữ liệu lượt click của ứng dụng này, vui lòng triển khai SDK click trong Adjust SDK (iOS; Android).
Nếu deep link kích hoạt một SDK click, thì sẽ được ghi nhận dưới dạng lượt click trên Datascape. Deep link này cũng được ghi nhận trong dữ liệu thô qua click
callback. Để biết lượt click nào đến từ deep link SDK click, thêm tham số {is_deeplink_click}
.
Sự cố với universal link
Tại sao universal link không mở được ứng dụng, dù ứng dụng đã được cài đặt?
Hãy kiểm tra cài đặt của universal link.
Kiểm tra môi trường mà Apple mở đường link đó. 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. Ví dụ universal link thô:
https://abcd.adj.st/
; ví dụ scheme:myapp://
. Nếu ứng dụng đã được cài trên thiết bị thử nghiệm (test device), hãy đến trang bạn đưa universal link thô và scheme lên, sau đó chọn link.
Nếu ứng dụng không mở :
- Mở trang HTML thử nghiệm trên Safari, sau đó chọn nút Chia sẻ. Menu "Open in…" sẽ hiện lên và liệt kê ứng dụng của bạn là một trong các tùy chọn. Nếu trường hợp trên xảy ra, thì Associated Domains đã được cấu hình đúng và file Apple App Site Association (AASA) đã được tải xuống chính xác. Nếu bạn không thấy ứng dụng được liệt kê trong menu, vui lòng gỡ và cài lại ứng dụng.
- Kiểm tra để đảm bảo Bundle ID trong môi trường thử nghiệm (testing) và môi trường triển khai (production) là như nhau.
- Kiểm tra iOS Bundle ID và App Prefix trên AppView, đảm bảo hai thông tin đó đã chính xác. Nếu bạn đã cài đặt đúng và ứng dụng vẫn không mở ra, thảo luận với nhà phát triển (developer) để kiểm tra universal link và scheme.
- Kiểm tra liệu thuộc tính
target=“_blank”
có nằm trong link hay không:
Việc này có thể dẫn đến tình trạng, ứng dụng mở được trong môi trường thử nghiệm, nhưng không mở được trong môi trường triển khai.
Nếu chứa thuộc tính target=“_blank”
, thì HTML code có thể có cấu trúc như sau:
<a href="[https://abcd.adj.st](https://abcd.adj.st/)" target="_blank">Universal Link to App</a>
Để giải quyết vấn đề này, hãy xóa thuộc tính, như ví dụ dưới đây:
<a href="[https://abcd.adj.st](https://abcd.adj.st/)">Universal Link to App</a>
Tại sao link chuyển hướng đến store dù ứng dụng đã được cài đặt?
- Vui lòng thực hiện theo hướng dẫn thử nghiệm universal link. Bạn cũng cần thực hiện theo các bước được đề cập trong câu hỏi "Tại sao universal link không mở được ứng dụng, dù ứng dụng đã được cài đặt?" ở trên.
- Kiểm tra, lúc universal link bị lỗi, link được click vào từ môi trường nào. Sau đó kiểm tra xem liệu bạn có cần phải bổ sung tham số hay không.
- Ví dụ: nếu một JSR universal link được click vào từ Slack, thì flag
adjust_deeplink_js=1
nên xuất hiện. Việc này giúp nạp scheme trước khi chuyển hướng người dùng đến store. Nếu link không hoạt động ngay cả khi có flagadjust_deeplink_js
, thì rất có thể App Scheme đã bị nhập sai trên AppView.
- Ví dụ: nếu một JSR universal link được click vào từ Slack, thì flag
Tại sao deep link hoặc deferred deep link không mở đúng trang trong ứng dụng, sau khi ứng dụng đã được cài đặt?
Nếu link không chuyển hướng đến đúng trang nhưng vẫn mở được ứng dụng, vui lòng kiểm tra liệu lỗi đến từ đường link hay phần cài đặt ứng dụng.
- Đưa (host) tên miền universal link (
https://abcd.adj.st/
) hoặc scheme (myapp://
) lên một môi trường web và click vào link từ môi trường đó. - Vui lòng trao đổi với bộ phận phát triển để đảm bảo đường dẫn trong ứng dụng được thiết lập chính xác.
Nếu bạn được đưa đến đúng trang trong ứng dụng, nhưng với danh nghĩa là người dùng hiện hữu, không phải người dùng mới, hãy kiểm tra thiết bị qua Testing Console và đảm bảo rằng bạn đã được phân bổ cho lượt click. Nếu bạn không được phân bổ, xóa dữ liệu thiết bị bằng Testing Console và thử lại lần nữa.
Nếu bạn đã được phân bổ, kiểm tra xem thiết bị có chứa tham số deeplink
hay không. Nếu thiết bị không chứa tham số, vui lòng kiểm tra xem có lỗi mã hóa hay ký tự đặc biệt nào đang cắt ngắn bớt phần URL trước tham số deeplink
hay không.
Cuối cùng, nếu tham số deeplink
đã được thêm vào, hãy đảm bảo đường dẫn được hiển thị như bạn dự kiến. Nếu đường dẫn không được hiển thị, có thể đường dẫn đã bị cắt ngắn vì một vài lý do. Vui lòng liên hệ với support@adjust.com để được hỗ trợ.
Tại sao universal link không hoạt động trên bài đăng Facebook hoặc Instagram?
Kiểm tra universal link đã được thêm đường dẫn hay chưa. Nếu chưa, người dùng sẽ được đưa đến store kể cả khi họ đã cài ứng dụng. Đường dẫn đi kèm không nhất thiết phải hợp lệ.
Ví dụ tham số có kèm đường dẫn: https://abcd.adj.st/path?adjust_t=abc123
Có thể sử dụng universal link cho chiến dịch quảng cáo qua email không?
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. Việc này áp dụng với bất kỳ môi trường nào sử dụng SFSafariViewController.
Email có thể được mở trên nhiều môi trường khác nhau, như trình duyệt hay ứng dụng mail không hỗ trợ universal link. Vì vậy, bạn nên sử dụng JSR link, hoặc lý tưởng hơn, một trong các tích hợp ESP của Adjust.
Tại sao tôi không xem được dữ liệu phân bổ (attribution data) và/hoặc dữ liệu cấp chiến dịch (campaign-level data)?
Kiểm tra liệu tham số của Adjust có chứa tiền tố adj_
hoặc adjust_
hay không. Nếu không chứa tiền tố adj_
hoặc adjust_
thì tham số sẽ bị bỏ qua, và bạn sẽ không còn thấy dữ liệu của các tham số này.
Tại sao đối tác không nhận được callback, dù rằng lượt cài đặt đã được phân bổ đúng?
- Kiểm tra liệu tham số click ID đã được thêm vào universal link hay chưa.
- Đảm bảo không có lỗi mã hóa xảy ra với fallback hay callback trên link URL.
- Kiểm tra tham số click ID có chứa một trong hai tiền tố sau không:
adj_
hoặcadjust_
Tại sao JSR universal link gặp lỗi trên trình duyệt Safari của hệ điều hành iOS 12.2 và 12.3?
Với iOS 12.2 và 12.3, JSR universal link không phải lúc nào cũng mở đúng cách khi được click vào trên Safari. Điều này đặc biệt ảnh hưởng đến các trường hợp không đọc được tiêu đề HTTP của referrer: ví dụ, khi chế độ ẩn danh đang được sử dụng.
Với chiến dịch chạy trên Safari, chúng tôi đề xuất bạn nên sử dụng universal link thô. Mặc dù universal link thô không hoạt động với chiến dịch quảng cáo qua email có bọc URL (wrapped URL).
Kể từ iOS 13 trở đi, vấn đề này không còn xảy ra vì chúng tôi có thể áp dụng fallback cho scheme. Tuy nhiên, điều này làm xuất hiện thông báo pop-up bổ sung.