# Server-to-server integration(Multi-Step Tasks)

We’re excited to introduce multi-step tasks! Now advertisers can set up progressive rewards, like:

✅ Open the app → Get a reward \
🎯 Reach Level 2 → Get a bigger reward\
🏆 Reach Level 10 → Get an even bigger reward

This is a game-changer for advertisers who want to drive deeper user engagement and maximize conversions.\
\
\
We need to pass two variables — {publisher} and {clickid} — into the "start" or "startapp" parameter of the referral link that leads to your app/bot.

The link can have any type, the main thing is that you can extract {publisher} and {clickid} variables from it.

Link examples:

```
https://t.me/the_bot?start=tappads_{publisher}_{clickid}

or

https://t.me/the_bot/app?startapp=tappads_{publisher}_{clickid}

or

https://t.me/the_bot/app?startapp=source-tappads_sub1-{publisher}_sub2-{clickid}
```

* {clickid} is filled on our side and contains a string of numbers up to 50 characters long.
* {publisher} is also filled on our side and contains the ID of the specific platform from which the traffic is coming.



_Example:_

```
https://t.me/the_bot?start=tappads_42_123456
```

When the target event occurs, you must call a postback (HTTP GET) to the address:

```
https://wallapi.tappads.io/v1/tapp-cpa?pubid={PUBLISHER}&m=2&advert_id={ADVERT_ID}&click_id={CLICKID}&offer_id={OFFER_ID}&telegram_id={TELEGRAM_ID}&startapp={STARTAPP}&is_old={IS_OLD}&event_name={event_name}
```

{PUBLISHER} — the value we provided to you in {publisher} within the startapp field.

{CLICKID} — the value we provided to you in {clickid} within the startapp field.

{ADVERT\_ID} — a unique identifier we issue to you when registering a personal account.

{OFFER\_ID} — a unique identifier we issue to you when creating an offer.

{EVENT\_NAME} :&#x20;

* You can give the name of the event any lowercase name. Example: init, install, level\_1
* It is desirable to keep the first event as simple as possible. Ideally: start the application

{TELEGRAM\_ID} — the telegram ID of the user, filled by the advertiser when the user completes an offer.

{STARTAPP} — the entire referral tail that we provided to you in startapp= (filled by the advertiser).

{IS\_OLD} — filled by the advertiser, where is\_old = true if the user has already been in your app / the conversion has already occurred. is\_old = false if it is a new user. Payment will only be made for new users, but we need to receive postbacks for all.
