ÿÿ Onboarding | Unity SDK | Tài liệu Adapty

Xử lý dữ liệu từ onboarding trong Unity SDK

Khi ngưá»i dùng trả lá»i câu há»i trong quiz hoặc nhập dữ liệu vào trưá»ng nhập liệu, phương thức OnboardingViewOnStateUpdatedAction sẽ được gá»i. Bạn có thể lưu hoặc xá»­ lý loại trưá»ng đó trong code cá»§a mình.

Triển khai phương thức OnboardingViewOnStateUpdatedAction trong class của bạn:

public class OnboardingManager : MonoBehaviour, AdaptyOnboardingsEventsListener
{
    public void OnboardingViewOnStateUpdatedAction(
        AdaptyUIOnboardingView view,
        AdaptyUIOnboardingMeta meta,
        string elementId,
        AdaptyOnboardingsStateUpdatedParams @params
    )
    {
        switch (@params) {
            case AdaptyOnboardingsSelectParams selectParams:
                // handle single selection
                break;
            case AdaptyOnboardingsMultiSelectParams multiSelectParams:
                // handle multiple selections
                break;
            case AdaptyOnboardingsInputParams inputParams:
                // handle text input
                break;
            case AdaptyOnboardingsDatePickerParams datePickerParams:
                // handle date selection
                break;
        }
    }
    
    // ... other interface methods
}

Các tham số bao gồm:

Tham sốMô tả
elementIdMã định danh duy nhất cho phần tá»­ nhập liệu. Bạn có thể dùng nó để liên kết câu há»i vá»›i câu trả lá»i khi lưu dữ liệu.
@paramsÄối tượng dữ liệu đầu vào cá»§a ngưá»i dùng. Có thể là má»™t trong các kiểu sau.
AdaptyOnboardingsSelectParamsChá»n má»™t tùy chá»n. Chứa Id, Value, Label
AdaptyOnboardingsMultiSelectParamsChá»n nhiá»u tùy chá»n. Chứa danh sách Params (má»—i phần tá»­ có Id, Value, Label)
• input: Äối tượng vá»›i type, value
• datePicker: Äối tượng vá»›i day, month, year
AdaptyOnboardingsInputParamsTrưá»ng nhập văn bản. Chứa Input có thể là AdaptyOnboardingsTextInput, AdaptyOnboardingsEmailInput, hoặc AdaptyOnboardingsNumberInput
AdaptyOnboardingsDatePickerParamsChá»n ngày tháng. Chứa Day, Month, Year (có thể null)
Ví dụ dữ liệu đã lưu (có thể khác trong triển khai của bạn)
// Example of a saved select action
{
    "elementId": "preference_selector",
    "meta": {
        "onboardingId": "onboarding_123",
        "screenClientId": "preferences_screen",
        "screenIndex": 1,
        "screensTotal": 3
    },
    "params": {
        "type": "select",
        "value": {
            "id": "option_1",
            "value": "premium",
            "label": "Premium Plan"
        }
    }
}

// Example of a saved multi-select action
{
    "elementId": "interests_selector",
    "meta": {
        "onboardingId": "onboarding_123",
        "screenClientId": "interests_screen",
        "screenIndex": 2,
        "screensTotal": 3
    },
    "params": {
        "type": "multiSelect",
        "value": [
            {
                "id": "interest_1",
                "value": "sports",
                "label": "Sports"
            },
            {
                "id": "interest_2",
                "value": "music",
                "label": "Music"
            }
        ]
    }
}

// Example of a saved input action
{
    "elementId": "name_input",
    "meta": {
        "onboardingId": "onboarding_123",
        "screenClientId": "profile_screen",
        "screenIndex": 0,
        "screensTotal": 3
    },
    "params": {
        "type": "input",
        "value": {
            "type": "text",
            "value": "John Doe"
        }
    }
}

// Example of a saved date picker action
{
    "elementId": "birthday_picker",
    "meta": {
        "onboardingId": "onboarding_123",
        "screenClientId": "profile_screen",
        "screenIndex": 0,
        "screensTotal": 3
    },
"params": {
    "type": "datePicker",
    "value": {
        "day": 15,
        "month": 6,
        "year": 1990
        }
    }
}

Các trưá»ng hợp sá»­ dụng

Bổ sung thông tin vào hồ sÆ¡ ngưá»i dùng

Nếu bạn muốn liên kết ngay dữ liệu đầu vào vá»›i hồ sÆ¡ ngưá»i dùng và tránh há»i lại cùng má»™t thông tin, bạn cần cập nhật hồ sÆ¡ ngưá»i dùng vá»›i dữ liệu đó khi xá»­ lý hành động.

Ví dụ: bạn yêu cầu ngưá»i dùng nhập tên vào trưá»ng văn bản có ID là name và muốn đặt giá trị đó làm tên cá»§a há». Ngoài ra, bạn yêu cầu há» nhập email vào trưá»ng email. Trong code ứng dụng, nó có thể trông như thế này:

public class OnboardingManager : MonoBehaviour, AdaptyOnboardingsEventsListener
{
    public void OnboardingViewOnStateUpdatedAction(
        AdaptyUIOnboardingView view,
        AdaptyUIOnboardingMeta meta,
        string elementId,
        AdaptyOnboardingsStateUpdatedParams @params
    )
    {
        if (@params is AdaptyOnboardingsInputParams inputParams) {
            var builder = new AdaptyProfileParameters.Builder();
            
            switch (elementId) {
                case "name":
                    if (inputParams.Input is AdaptyOnboardingsTextInput textInput) {
                        builder.SetFirstName(textInput.Value);
                    }
                    break;
                case "email":
                    if (inputParams.Input is AdaptyOnboardingsEmailInput emailInput) {
                        builder.SetEmail(emailInput.Value);
                    }
                    break;
            }
            
            Adapty.UpdateProfile(builder.Build(), (error) => {
                if (error != null) {
                    // handle the error
                }
            });
        }
    }
    
    // ... other interface methods
}

Tùy chỉnh paywall dá»±a trên câu trả lá»i

Bằng cách sá»­ dụng quiz trong onboarding, bạn cÅ©ng có thể tùy chỉnh paywall hiển thị cho ngưá»i dùng sau khi há» hoàn thành onboarding.

Ví dụ: bạn có thể há»i ngưá»i dùng vá» kinh nghiệm thể thao cá»§a há» và hiển thị các CTA và sản phẩm khác nhau cho từng nhóm ngưá»i dùng.

  1. Thêm quiz trong onboarding builder và gán các ID có ý nghÄ©a cho các tùy chá»n.
experience.webp
  1. Xá»­ lý các phản hồi từ quiz dá»±a trên ID cá»§a chúng và đặt thuá»™c tính tùy chỉnh cho ngưá»i dùng.
public class OnboardingManager : MonoBehaviour, AdaptyOnboardingsEventsListener
{
    public void OnboardingViewOnStateUpdatedAction(
        AdaptyUIOnboardingView view,
        AdaptyUIOnboardingMeta meta,
        string elementId,
        AdaptyOnboardingsStateUpdatedParams @params
    )
    {
        if (@params is AdaptyOnboardingsSelectParams selectParams) {
            var builder = new AdaptyProfileParameters.Builder();
            
            switch (elementId) {
                case "experience":
                    // set custom attribute 'experience' with the selected value (beginner, amateur, pro)
                    builder.SetCustomStringAttribute("experience", selectParams.Value);
                    break;
            }
            
            Adapty.UpdateProfile(builder.Build(), (error) => {
                if (error != null) {
                    // handle the error
                }
            });
        }
    }
    
    // ... other interface methods
}
  1. Tạo phân khúc cho từng giá trị thuộc tính tùy chỉnh.
  2. Tạo một placement và thêm đối tượng cho từng phân khúc bạn đã tạo.
  3. Hiển thị paywall cho placement trong code ứng dụng của bạn. Nếu onboarding của bạn có nút mở paywall, hãy triển khai code paywall như một phản hồi cho hành động của nút đó.
ÿÿÿÿ