# 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.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://tappadsdocs.gitbook.io/tappads/advertisers/instructions-for-integration/server-to-server-integration-multi-step-tasks.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
