Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <script>
- function getUrlParams() {
- const params = new URLSearchParams(window.location.search);
- const allowedParams = {
- 'campaign_id': 'campaign_id_fb',
- 'adset_id': 'adset_id',
- 'ad_id': 'ad_id',
- 'campaign_name': 'campaign_name_fb',
- 'adset_name': 'adset_name',
- 'ad_name': 'ad_name',
- 'placement': 'placement',
- 'site_source_name': 'site_source_name',
- 'fbclid': 'fbclid',
- 'pixel_id': 'pixel_id',
- 'access_token': 'access_token'
- };
- const result = {};
- Object.keys(allowedParams).forEach(param => {
- if (params.has(param)) {
- result[allowedParams[param]] = params.get(param);
- }
- });
- return result;
- }
- function createEventSourceUrl() {
- const protocol = window.location.protocol;
- const host = window.location.host;
- const path = window.location.pathname;
- return `${protocol}//${host}${path}`;
- }
- function updateLinks(params) {
- document.querySelectorAll('a').forEach(link => {
- const url = new URL(link.href);
- Object.keys(params).forEach(key => url.searchParams.set(key, params[key]));
- link.href = url.toString();
- });
- }
- function addExternalIdFromLocalStorage() {
- const subid = localStorage.getItem('subId');
- if (subid) {
- updateLinks({ external_id: subid });
- clearInterval(checkStorageInterval); // Остановить проверку, если _subid найден
- }
- }
- // Инициализация
- const params = getUrlParams();
- if (Object.keys(params).length > 0) {
- params.event_source_url = createEventSourceUrl();
- updateLinks(params);
- }
- // Проверка на появление _subid в localStorage каждые 500 мс
- const checkStorageInterval = setInterval(addExternalIdFromLocalStorage, 100);
- </script>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement