---
title: "Pushwoosh"
description: "Tích hợp Pushwoosh với Adapty để theo dõi thông báo đẩy một cách liền mạch."
---

Adapty sử dụng các sự kiện gói đăng ký để cập nhật tags cho hồ sơ người dùng [Pushwoosh](https://www.pushwoosh.com/), giúp bạn xây dựng chiến lược giao tiếp có mục tiêu với khách hàng thông qua thông báo đẩy sau khi hoàn tất thiết lập tích hợp đơn giản như mô tả bên dưới.

## Cách thiết lập tích hợp Pushwoosh \{#how-to-set-up-pushwoosh-integration\}

Để tích hợp Pushwoosh, hãy truy cập [**Integrations** -> **Pushwoosh**](https://app.adapty.io/integrations/pushwoosh), bật toggle từ tắt sang bật, và điền vào các trường thông tin.

Trước tiên, hãy cài đặt thông tin xác thực để thiết lập kết nối giữa hồ sơ Pushwoosh và Adapty của bạn.
Cần có Pushwoosh App ID và auth token.

  <img src="/assets/shared/img/64e48a1-CleanShot_2023-08-18_at_11.13.212x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

1. **App ID** có thể tìm thấy trong dashboard Pushwoosh của bạn.

  <img src="/assets/shared/img/ee27687-CleanShot_2023-08-18_at_14.37.442x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

2. **Auth token** có thể tìm thấy trong phần API Access của Pushwoosh Settings.

  <img src="/assets/shared/img/50e634b-CleanShot_2023-08-18_at_14.35.022x.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

## Sự kiện và tags \{#events-and-tags\}

Bên dưới phần thông tin xác thực có ba nhóm sự kiện bạn có thể gửi từ Adapty đến Pushwoosh. Chỉ cần bật những sự kiện bạn cần. Bạn cũng có thể thay đổi tên sự kiện theo nhu cầu trước khi gửi sang Pushwoosh. Xem danh sách đầy đủ các sự kiện mà Adapty cung cấp [tại đây](events).

  <img src="/assets/shared/img/392dc31-screencapture-app-adapty-io-integrations-pushwoosh-2023-08-22-13_31_07.webp"
  style={{
    border: '1px solid #727272', /* border width and color */
    width: '700px', /* image width */
    display: 'block', /* for alignment */
    margin: '0 auto' /* center alignment */
  }}
/>

Adapty sẽ gửi các sự kiện gói đăng ký đến Pushwoosh thông qua tích hợp server-to-server, cho phép bạn xem tất cả sự kiện gói đăng ký trong Pushwoosh Dashboard.

:::note
Custom tags

Với Adapty, bạn cũng có thể sử dụng custom tags cho tích hợp Pushwoosh. Bạn có thể tham khảo danh sách tags bên dưới để xác định tag nào phù hợp nhất với nhu cầu của mình.
:::

| Tag | Kiểu | Giá trị |
|---|----|-----|
| `adapty_customer_user_id` | String | Chứa giá trị định danh duy nhất của người dùng, có thể tìm thấy ở phía Pushwoosh. |
| `adapty_profile_id` | String | Chứa giá trị ID hồ sơ người dùng Adapty duy nhất của người dùng, có thể tìm thấy trong [dashboard](profiles-crm) Adapty của bạn. |
| `environment` | String | <p>Cho biết người dùng đang hoạt động trong môi trường sandbox hay production.</p><p></p><p>Giá trị là `Sandbox` hoặc `Production`</p> |
| `store` | String | <p>Chứa tên cửa hàng được sử dụng để thực hiện giao dịch mua.</p><p></p><p>Các giá trị có thể có:</p><p>`app_store` hoặc `play_store`.</p> |
| `vendor_product_id` | String | <p>Chứa giá trị Product ID trong cửa hàng Apple/Google.</p><p></p><p>Ví dụ: org.locals.12345</p> |
| `subscription_expires_at` | String | <p>Chứa ngày hết hạn của gói đăng ký mới nhất.</p><p></p><p>Định dạng giá trị:</p><p>year-month dayThour:minute:second</p><p>Ví dụ: 2023-02-10T17:22:03.000000+0000</p> |
| `last_event_type` | String | Cho biết loại sự kiện cuối cùng nhận được từ danh sách [sự kiện Adapty](events) tiêu chuẩn mà bạn đã bật cho tích hợp. |
| `purchase_date` | String | <p>Chứa ngày của giao dịch cuối cùng (mua lần đầu hoặc gia hạn).</p><p></p><p>Định dạng giá trị:</p><p>year-month dayThour:minute:second</p><p>Ví dụ: 2023-02-10T17:22:03.000000+0000</p> |
| `original_purchase_date` | String | <p>Chứa ngày mua lần đầu tiên theo giao dịch.</p><p></p><p>Định dạng giá trị:</p><p>year-month dayThour:minute:second</p><p>Ví dụ: 2023-02-10T17:22:03.000000+0000</p> |
| `active_subscription` | String | Giá trị sẽ được đặt thành `true` khi có sự kiện mua/gia hạn, hoặc `false` nếu gói đăng ký đã hết hạn. |
| `period_type` | String | <p>Cho biết loại kỳ mới nhất cho giao dịch mua hoặc gia hạn.</p><p></p><p>Các giá trị có thể có:</p><p>`trial` cho giai đoạn dùng thử hoặc `normal` cho các trường hợp còn lại.</p> |

Tất cả giá trị float sẽ được làm tròn thành int. Chuỗi string giữ nguyên.

Ngoài danh sách tags có sẵn, bạn còn có thể gửi [thuộc tính tùy chỉnh](segments#custom-attributes) bằng tags. Điều này mang lại sự linh hoạt hơn về loại dữ liệu có thể đưa vào tag và hữu ích cho việc theo dõi thông tin cụ thể liên quan đến sản phẩm hoặc dịch vụ. Tất cả thuộc tính tùy chỉnh của người dùng sẽ được tự động gửi đến Pushwoosh nếu người dùng đánh dấu vào ô **Send user custom attributes** trên [trang tích hợp](https://app.adapty.io/integrations/pushwoosh).

## Cấu hình SDK \{#sdk-configuration\}

Để liên kết Adapty với Pushwoosh, bạn cần gửi cho chúng tôi giá trị `HWID`:

<Tabs groupId="current-os" queryString>
<TabItem value="swift" label="iOS (Swift)" default>
```swift showLineNumbers
do {
    try await Adapty.setIntegrationIdentifier(
        key: "pushwoosh_hwid", 
        value: Pushwoosh.sharedInstance().getHWID()
    )
} catch {
    // handle the error
}
```
</TabItem>
<TabItem value="kotlin" label="Android (Kotlin)" default>
```kotlin showLineNumbers
Adapty.setIntegrationIdentifier("pushwoosh_hwid", Pushwoosh.getInstance().hwid) { error ->
    if (error != null) {
        // handle the error
    }
}
```
</TabItem>
<TabItem value="java" label="Android (Java)" default>
```java showLineNumbers
Adapty.setIntegrationIdentifier("pushwoosh_hwid", Pushwoosh.getInstance().getHwid(), error -> {
    if (error != null) {
        // handle the error
    }
});
```
</TabItem>
<TabItem value="flutter" label="Flutter (Dart)" default>
```javascript showLineNumbers

final hwid = await Pushwoosh.getInstance.getHWID;

try {
    await Adapty().setIntegrationIdentifier(
        key: "pushwoosh_hwid", 
        value: hwid,
    );
} on AdaptyError catch (adaptyError) {
    // handle the error
} catch (e) {
    // handle the error
}
```
</TabItem>
<TabItem value="unity" label="Unity (C#)" default>
```csharp showLineNumbers
using AdaptySDK;

Adapty.SetIntegrationIdentifier(
  "pushwoosh_hwid", 
  Pushwoosh.Instance.HWID, 
  (error) => {
  // handle the error
});
```
</TabItem>
<TabItem value="rn" label="React Native (TS)" default>
```typescript showLineNumbers

// ...
try {
  await adapty.setIntegrationIdentifier("pushwoosh_hwid", hwid);
} catch (error) {
  // handle `AdaptyError`
}
```
</TabItem>
</Tabs>