Help Center

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

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 namePurpose
viewOfferView product card
addToCartAdding to cart
addToWishlistAdd to wishlist
purchasePurchase

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:

FieldDescription
phone_md5 / phone_sha256The user's phone number hash (in the format 79XXXXXXXXXX. Without the "+" and "-" signs, spaces, and parentheses. The number must start with 7.)
platformEvent source — ios, android or web.
customEventNameThe name of the event is strictly according to the documentation (for example, "purchase")
productIdProduct 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).
valueThe 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"
eventTimestampThe 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.

image

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