The VK and Telegram combination is often built out of habit: advertising brings a person to a channel, content then “warms them up,” and sales are assessed through overall growth. This is easy to explain but hard to manage. Too many transitions lie between an impression and money, and every advertising platform claims success by its own rules.

Performance begins with the final event. It may be a paid order, a qualified inquiry, a booking, or the start of a useful bot workflow. A subscription is an intermediate state. It has value only when you know what share of subscribers reaches the final action and how long that takes.

Separate the platforms' roles

VK is useful for scalable acquisition and reconnecting with an audience. Telegram is suited to rich context, regular communication, a channel, or a bot. Do not make one creative simultaneously explain the product, sell a subscription, and close a complex purchase. Each transition should have one promise.

Example: a VK ad promises a specific analysis, the landing page or post delivers on that promise, Telegram offers a continuation, and the bot collects an inquiry. If a direct link to the bot converts better, there is no need to insert a channel just to increase subscriber counts.

Map events before launch

  • Ad impression and click.
  • Opening a page, channel, or bot.
  • Subscribing or starting the bot with a source parameter.
  • Target action: inquiry, order, booking, or payment.
  • Qualification and confirmed revenue after returns.

Assign a system of record and a campaign identifier to every event. UTM tags help on websites, start parameters in Telegram bots, and promo codes as an additional signal. Do not put personal data in tags. If a manager closes the sale, the source must enter the CRM when the lead is created, rather than being reconstructed from memory.

Metrics by level, rather than in one line

At the top, look at CPM, CTR, and cost per click: they show whether the creative can buy attention. In the middle, track the cost of a bot start, subscription, or key-page view. At the bottom, track cost per qualified lead, cost per sale, and advertising spend as a share of revenue. Improving a top-level metric does not necessarily improve one below it.

Telegram Ads shows views, channel joins, and bot starts after viewing. This is useful but does not replace inquiry and payment data. In VK, the pixel and events help the algorithm find website conversions; a Telegram channel needs a bridge of your own through links, a bot, or a promo code.

Test a hypothesis, rather than every element at once

One test answers one question: whether a new audience, promise, or landing flow works. Keep other elements unchanged and define a minimum volume of data in advance. If the creative, targeting, post, and offer change simultaneously, the winner cannot be reproduced.

  • The hypothesis is defined before launch and linked to one metric.
  • Campaigns follow consistent naming and have separate tags.
  • The budget is sufficient for several target conversions, beyond clicks alone.
  • The decision is made after the full sales window.
  • The result is saved with the creative, audience, and date.

Use cohorts when the cycle is long

If a person subscribes today and buys two weeks later, a daily report will keep misleading you: new costs are already counted, while future revenue is not. Group users by the week of first contact and compare cohorts after the same number of days.

For media and expert-led products, intermediate signals help: completion rates, bot replies, saves, and visits to commercial material. But they should not automatically be assigned monetary value. Use them to diagnose the journey, and scale the budget based on confirmed results.

A weekly working rhythm

Once a week, consolidate spending, events, and sales by source and cohort. Stop campaigns with broken tracking: cheap clicks without an observable next step are no reason to continue. For combinations that work, identify the scaling limit: how price and quality change as the budget grows.

A strong VK/Telegram funnel is not defined by its length or subscriber count. It is one where every step has a clear promise, data source, and decision. Content then remains meaningful, and performance remains verifiable.

An example of a unified calculation

VK spent 60,000 rubles and generated 1,200 visits to Telegram. Of these, 540 people joined the channel, 180 started the bot, 45 submitted an inquiry, and 15 paid. The cost per click is 50 rubles; per subscriber, 111; per bot start, 333; per inquiry, 1,333; and per customer, 4,000. If the contribution of a first sale after variable costs is 3,200 rubles, the campaign does not pay for itself on the first order. The decision depends on confirmed repeat purchases, rather than the subscriber being cheap.

For Telegram Ads, run the same calculation from spending to payment and use the same window. Do not add post-view joins to users the bot linked to a specific tag as though they were two independent groups. Each level must have one deduplicated entity: session, user, inquiry, or order. Otherwise, conversions can exceed the actual number of people.

A minimal data schema

  • Campaign and creative identifiers, source, and date of first contact.
  • Visit, join, bot start, and key action with event timestamps.
  • Inquiry and order identifiers without unnecessary personal data.
  • Spending, revenue, variable costs, refund, and payment status.
  • The attribution window and the rule for choosing a source when there are multiple touchpoints.

Start with a simple attribution rule and do not change it halfway through the test. It does not need to describe every touchpoint's contribution perfectly, but it must count the campaigns being compared consistently. Also maintain a control budget or geography where promotion stays unchanged: this helps reveal whether payments are growing faster than the natural baseline.