Where to set it up
Open Control panel → My school → For developers → Custom code (in a corporate school — Control panel → Company → For developers → Custom code). A staff member with the School settings management permission (in a corporate school — Company settings management) can edit the code. Custom code is available on any tariff. The page has two tabs:How to add code
1
Choose a tab
Switch to HTML or CSS in the top right corner.
2
Paste the code
Paste the code into the editor. The code in each field can be no longer than 3000 characters.
3
Save
Click Save • HTML or Save • CSS at the bottom of the page. The Cancel button brings back the last saved version.
4
Refresh the page
Changes apply after the page is refreshed. Click Refresh in the Changes apply after a refresh notification.
<script src="...">.
If you switch the tab or leave the page with unsaved changes, the platform asks you to confirm.
Where the code works
The code loads on all pages of the school website — both on your own domain and on the school’s base address on the platform. Exode mobile and desktop apps open the same school website, so the code loads in them too. Learn more about the apps in Mobile app.Interface settings
With custom HTML, you can change how some platform elements behave.Hide video watch progress
Hides the bar of watched segments under the video player in a lesson and the video watch progress in the student card in the management section.Hide the “The app is more convenient” banner
Removes the banner suggesting to download the app, which visitors of the mobile website see.Counters and goal events
Paste the counter or ad pixel code into the HTML tab. The platform sends goal events to it automatically — you do not need to write extra code for goals.
In Yandex Metrica and VK Ads, create goals of the “JavaScript event” type with the identifiers from the table.
For goals to reach Yandex Metrica, set the counter number in the
window.YM_ID variable after the counter code. For VK Ads, set the pixel number in the window.VK_PIXEL_ID variable. Without these variables, goals are not sent to these systems. Google Analytics and Meta Pixel work right after you paste their standard code.- Purchase is sent once per invoice. Sending it again from the same device is blocked for 90 days. If the successful payment page was opened more than 5 minutes after the payment — for example, from a link in an email or on another device — the event is not sent.
- The purchase event includes the invoice amount and currency. Google Analytics and Meta Pixel receive a purchase only if the invoice was paid in a real currency. Meta Pixel and Google Analytics also receive the invoice ID — it protects against duplicates.
- Sign-up is sent only for sign-up by email or phone. For sign-in through social networks, Telegram or a code from a message, the event is not sent: the platform cannot tell a new account from a repeat sign-in.
- If the user is signed in, the platform passes their ID to Yandex Metrica in the visitor parameters.
- The Chose a tariff and went to checkout action is not sent if the tariff has an external payment link.
Frequently asked questions
I saved the code, but nothing changed. Why?
I saved the code, but nothing changed. Why?
Changes apply only after the page is refreshed. Click Refresh in the notification after saving or reload the page. Keep in mind that students see the changes when they open or refresh the page.
What is the maximum code size?
What is the maximum code size?
Up to 3000 characters in each field — separately for HTML and for CSS. If that is not enough, move the script to an external file and load it with the
<script src="..."> tag.Do I need a special tariff for custom code?
Do I need a special tariff for custom code?
No. Custom code is available on any tariff. You only need the School settings management permission (in a corporate school — Company settings management).
Why are Yandex Metrica goals not firing?
Why are Yandex Metrica goals not firing?
Check three things: the counter code is pasted into the HTML tab, the
window.YM_ID variable with the counter number is set after it, and goals of the “JavaScript event” type with the identifiers from the table above are created in Metrica.Why did a purchase not reach the ad system's analytics?
Why did a purchase not reach the ad system's analytics?
The purchase event is sent only if the buyer saw the successful payment page no later than 5 minutes after the payment. If they closed the page earlier or opened it later, the event is not sent. Check sales against the Sales → Payments section.
Can I add a chat widget or another external script?
Can I add a chat widget or another external script?
Yes. Paste the widget code into the HTML tab. The code loads on all school pages before the app starts.
My script broke the school website. What should I do?
My script broke the school website. What should I do?
Open For developers → Custom code, delete or fix the code and save it. Then refresh the page.
Updated: 2026-10-15 18:08 UTC