What is FSA
Full Stream Attribution (FSA) is a technology that directly transmits events from your website or app to the VK advertising system, without the use of intermediaries or tracking platforms. This increases attribution accuracy and accelerates advertising campaign optimization.
FSA events complement existing events—mobile (from a tracker) or web events (from the VK Ads pixel). In other words, FSA doesn't replace, but rather enriches, your current dynamic retargeting audience by transmitting events directly to the VK advertising system for more accurate attribution and advertising optimization.
What are the targeted activities for which the FSA is available
FSA is used when running ads for websites and mobile apps with the "Dynamic Retargeting" campaign type
This campaign type allows you to display personalized ads to users based on their actions (viewing a product, adding to cart, making a purchase, etc.).
To enable this feature, your website or app should have a unique monthly audience of at least 500,000 users.
Since the ad campaign optimization will be focused solely on Purchases, it's important to have a broad enough dynamic retargeting audience.
Benefits of FSA
Improved audience collection and matching
- A stable user identifier (phone number) is used
- Expanding the audience by bypassing Privacy restrictions (works without cookies or device_id)
- As a result, we track more user actions, avoid losing conversions, and target ads more precisely
Fast data transfer
- Events are transferred to the user profile within 90 seconds, while with standard integration it takes 4 to 6 hours
- Faster data transfer speeds up the training of advertising algorithms and the generation of signals for impression optimization
Increasing the effectiveness of advertising campaigns
- Advertising optimization is accelerated, reducing campaign training time
- Audience targeting accuracy is increased
- The amount of data available for training the advertising model increases, resulting in faster return on investment for advertising launches.
How to connect FSA
To enable FSA, please contact your VK account manager or submit a request to VK Advertising support
You will gain access after completing the technical integration and we verify the incoming events.
Integration stages and connection process
1. Preparing an advertising account
- The partner creates a separate new advertising account specifically for integration with FSA. It includes special formats that ensure accurate attribution by phone number (FSA) and conversion data transfer.
- Link mobile apps and/or the VK pixel in the account.
- Add a product feed.
- Transfer the advertising account ID to the responsible VK manager (personal or assigned based on the request). Account preparation instructions
2. Generating a token
- VK generates an FSA token, which is used for authorization when transferring events on the partner's side.
- The token is transferred to the partner via a one-time link valid for 4 days — be sure to save it promptly.
3. Linking the account and setting up attribution
- On the VK side, the advertising account is linked to FSA events.
- The attribution window for the purchase event is configured. The default is 7 days, but a different number of days can be configured at the partner's request.
4. Configuring Events at the Partner's End
- After receiving the token, the partner configures event transmission. Detailed instructions for configuring and sending events are provided below.
- If the transmission is successful, the event receives the "200 OK" status.
If errors occur during transmission, please check the request on the partner's end or contact the responsible VK manager. Instructions for configuring and transmitting events
5. Connecting Formats and Launching Advertising Campaigns
- VK checks incoming events.
- If the integration is successful, the FSA will be enabled.
- After this, the partner can launch advertising campaigns.
6. Launching Advertising Campaigns
Preparing an advertising account
Web-placement
1. Creating an advertising account
- Create a separate advertising account for working with FSA.
- It is possible to use a shared account with FSA Mobile placement.
2. Adding a VK Ads pixel
- Add an active VK Ads pixel with dynamic retargeting events already configured.
- If there is no active pixel, create a new one in your advertising account. There is no need to install a pixel on your website, as events will be transmitted through FSA.
If an active pixel is used, optimization will be performed simultaneously based on pixel events and FSA attribution, which will speed up campaign learning and improve the accuracy of the algorithms.
If a new pixel is created, optimization will only occur based on events transmitted through FSA.
For dynamic retargeting on websites, it is recommended to use an active pixel with events already configured.
This is important for accurately collecting a retargeting audience, since when integrating via FSA, the phone number is only transmitted at the checkout or purchase stage—that is, at a late stage of the funnel—and without a pixel, the audience may be too narrow.
3. Configuring Pixel Events
The pixel must contain the following JavaScript events:
| Event name | Purpose |
|---|---|
| viewOffer | View product card |
| addToCart | Adding to cart |
| addToWishlist | Add to wishlist |
| purchase | Purchase |
If such events already exist, there's no need to recreate them.
Event names must strictly match those specified.
4. Adding a Product Catalog
- In the Commerce Center section, add a product catalog.
- It's recommended to use a full feed with all products.
- Link the catalog to the event source—the VK Ads pixel.
Mobile-placement
1. Creating an advertising account
- Create an advertising account for integration with FSA.
- It is possible to use a shared account with web hosting.
2. Connecting mobile apps
- Link mobile apps to the VK advertising account.
- The mobile tracker must have events from the following categories pre-configured:
- View product card
- Adding to cart
- Add to wishlist
- Purchase
These events are necessary for dynamic retargeting to work correctly.
Events must be active and transmitted correctly from the tracker.
3. Adding a product catalog
- Add a product catalog with mobile parameters (tracking links, deep links, and mobile app IDs) to the advertising account.
- It is recommended to use a full feed with all products.
- Link the catalog to the event source – mobile apps.
Instructions for transferring events to VK
Setup and implementation
- All integration is performed on the partner's side.
- Implementation will require the assistance of a backend developer to:
- implement event collection on the website or app;
- hashing phone numbers;
- generating valid JSON;
- sending events via POST to https://ad.mail.ru/fsa/
General principles
- Events are transmitted via a POST request to the address: https://ad.mail.ru/fsa/
- Each event is transmitted as a separate JSON file.
Arrays or multiple products in a single request are not supported. - All data is transmitted in UTC using a Unix timestamp.
Time can be checked at epochconverter.com.
Authorization
An authorization token is used to transmit events:
Authorization: Token <ACCESS_TOKEN>
The token is provided by VK via a one-time link and must be added to the request header.
Phone number format
The phone number is hashed by the partner before sending:
- MD5 or SHA-256
- The phone number format before hashing is 79XXXXXXXXXX. No "+" or "-" signs, spaces, or parentheses. The number must start with 7.
Fields to be transmitted:
- phone_md5 — if MD5 is used
- phone_sha256 — if SHA-256 is used
Numbers are not stored in cleartext. Identical numbers produce the same hash, which is used to generate the universal identifier (hid).
Event structure
Each event contains:
| Field | Description |
|---|---|
| phone_md5 / phone_sha256 | The user's phone number hash (in the format 79XXXXXXXXXX. Without the "+" and "-" signs, spaces, and parentheses. The number must start with 7.) |
| platform | Event source — ios, android or web. |
| customEventName | The name of the event is strictly according to the documentation (for example, "purchase") |
| productId | Product ID — a string; only one product is passed per request. The value must match the product ID in your product catalog. Typically, the parameter is passed as a macro, such as {{PRODUCT_ID}} (each partner may have a unique macro format). |
| value | The price of an item or transaction is specified in the value parameter. The value is passed in rubles as a string — either as an integer or with a decimal point, for example, "value": "289.00" |
| eventTimestamp | The timestamp is in Unix timestamp format (UTC). You can check it at epochconverter.com |
Preparing events to be transferred
1. View product card
Event: viewOffer
Sent when the user views the product card.
{
"phone_md5": "820b5ef76357a7c4eda34c5f9a7f4e06",
"platform": "ios",
"event": {
"customEventName": "viewOffer",
"customEventParams": {
"productId": "PRODUCT_ID"
},
"eventTimestamp": "1712220038"
}
}
2. Adding to cart
Event: addToCart
Sent when the user adds an item to the cart.
{
"phone_md5": "820b5ef76357a7c4eda34c5f9a7f4e06",
"platform": "ios",
"event": {
"customEventName": "addToCart",
"customEventParams": {
"productId": "PRODUCT_ID"
},
"eventTimestamp": "1712220038"
}
}
3. Add to wishlist
Event: addToWishlist
Sent when a user adds a product to their Wishlist.
{
"phone_md5": "820b5ef76357a7c4eda34c5f9a7f4e06",
"platform": "ios",
"event": {
"customEventName": "addToWishlist",
"customEventParams": {
"productId": "PRODUCT_ID"
},
"eventTimestamp": "1712220038"
}
}
4. Purchase
Event: purchase
Sent when the user completes a purchase.
{
"phone_md5": "820b5ef76357a7c4eda34c5f9a7f4e06",
"platform": "ios",
"event": {
"customEventName": "purchase",
"customEventParams": {
"productId": "447358737",
"value": "VALUE"
},
"eventTimestamp": "1712220038"
}
}
Request example (cURL)
curl -X POST "https://ad.mail.ru/fsa/" \
-H "Content-Type: application/json" \
-H "Authorization: Token <ACCESS_TOKEN>" \
-d '{
"phone_md5": "820b5ef76357a7c4eda34c5f9a7f4e06",
"platform": "ios",
"event": {
"customEventName": "purchase",
"customEventParams": {
"productId": "447358737",
"value": "289.00"
},
"eventTimestamp": "1732204800"
}
}'
Creation of advertising campaigns
After setting up event sending, the partner must contact the responsible VK manager (either a personal one or one assigned via the form) to verify that events are being received correctly on the VK side.
If events are received correctly, access to creating FSA campaigns will be granted in the advertising account.
When creating an advertising campaign, enable the "Phone Number Attribution (FSA)" slider. This activates the connection to the transmitted events and ensures correct user attribution.

All other parameters and setup steps are consistent with the standard process for creating product campaigns in VK Advertising. When creating them, follow the instructions
Cases
Examples of advertisers who have successfully used FSA:
Lamoda
https://ads.vk.com/cases/povyshaem-okupaemost-reklamy-s-full-stream-attribution-kejs-lamoda
Chitai-gorod
https://ads.vk.com/cases/uvelichivaem-prodazhi-v-2-raza-s-full-stream-attribution-kejs-chitaj-gorod
Other insights and useful materials: https://ads.vk.com/insights