# How to Verify App Installs with Callback Verification

**Follow the steps to enable the callback verification:**

**Step 1**

Enter the name of your app and at least one of download URLs for the Apple App Store and Google Play Store, and the Android APK URL.&#x20;

<figure><img src="https://content.gitbook.com/content/LIfMHqDEB5rVHERvbUyz/blobs/A7kIZEyeznuQjLJNTgMd/image%20136.png" alt=""><figcaption></figcaption></figure>

**Step 2**

After that, you will need to get deep link params (something like <mark style="color:green;">track\_id=4wmmHtD4rSA</mark>) from your app and parse out the trackId.

<figure><img src="https://content.gitbook.com/content/LIfMHqDEB5rVHERvbUyz/blobs/bzLV1ei1w0L49awgzhVr/Frame%20514336%20(7).png" alt=""><figcaption></figcaption></figure>

<mark style="color:blue;">**About track\_id:**</mark>

* TrackId is necessary to detect the user's participation in the task and to verify it. We will detect when a user clicks to participate in the task, the <mark style="color:green;">?trackId={{trackId}}</mark> will be used for detection.
* You will see the <mark style="color:green;">?trackId={{trackId}}\&send={{download}}</mark> applied to your app deep link:

If your app deep link is

<figure><img src="https://content.gitbook.com/content/LIfMHqDEB5rVHERvbUyz/blobs/ODl8ZNgoTr5nHuChp1dj/Frame%20514336%20(8).png" alt=""><figcaption></figcaption></figure>

the users may open your app via the link

<figure><img src="https://content.gitbook.com/content/LIfMHqDEB5rVHERvbUyz/blobs/n1JNI81WINhEGPjs8bJS/Frame%20514337.png" alt=""><figcaption></figcaption></figure>

**Step 3**

Next, please copy the API key we provide you to integrate it with your app.

<figure><img src="https://content.gitbook.com/content/LIfMHqDEB5rVHERvbUyz/blobs/jPRXFZFREPEetiPjNTOr/image%20144.png" alt=""><figcaption></figcaption></figure>

Then enter the parameters according to the rules of const data, and encrypt the whole const data using the standard **HmacSHA256** algorithm.

<figure><img src="https://content.gitbook.com/content/LIfMHqDEB5rVHERvbUyz/blobs/IWs41POLe6BIaOc7D5wb/Frame%20514335%20(16).png" alt=""><figcaption></figcaption></figure>

**Note:** Remark is optional.

**Step 4**

Use our official API below and pass the corresponding parameters in the following code.

**Official API:** <https://cwallet.com/cctip/v1/giveaway/task/callback>

```javascript
const { track_id, send } = queryString.parse(deepLink.search); // your deepLink params

const remark = "remark"; // optional

const event = "app_download";

const data = `track_id=${track_id}&event=${event}&remark=${remark}`; // optional

const sign = crypto.HmacSHA256(data, api_key).toString(); // HmacSHA256

fetch("https://cwallet.com/public/v1/giveaway/task/callback", {
method: "POST",
headers: {
"Content-Type": "application/json",
},

body: JSON.stringify({
track_id,
sign,
event,
remark,
}),
}).then(async (res) => {
console.log(await res.json());
});
```

**Step 5**

After the above steps are completed, enter your url-scheme and click the ‘**Check API callback**’ to test it.

<figure><img src="https://content.gitbook.com/content/LIfMHqDEB5rVHERvbUyz/blobs/lVGTlcw3qrPi2O3T9G1t/image%2023.png" alt=""><figcaption></figcaption></figure>

**Note:**

Each project you created on Cwallet Giveaway Tool will have a unique API key, and it will not change. Additionally, each app must be integrated separately.
