Advertisement
Guest User

Code for landing page

a guest
Nov 28th, 2024
22
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. <script>
  2. function getUrlParams() {
  3. const params = new URLSearchParams(window.location.search);
  4. const allowedParams = {
  5. 'campaign_id': 'campaign_id_fb',
  6. 'adset_id': 'adset_id',
  7. 'ad_id': 'ad_id',
  8. 'campaign_name': 'campaign_name_fb',
  9. 'adset_name': 'adset_name',
  10. 'ad_name': 'ad_name',
  11. 'placement': 'placement',
  12. 'site_source_name': 'site_source_name',
  13. 'fbclid': 'fbclid',
  14. 'pixel_id': 'pixel_id',
  15. 'access_token': 'access_token'
  16. };
  17. const result = {};
  18.  
  19. Object.keys(allowedParams).forEach(param => {
  20. if (params.has(param)) {
  21. result[allowedParams[param]] = params.get(param);
  22. }
  23. });
  24.  
  25. return result;
  26. }
  27.  
  28. function createEventSourceUrl() {
  29. const protocol = window.location.protocol;
  30. const host = window.location.host;
  31. const path = window.location.pathname;
  32.  
  33. return `${protocol}//${host}${path}`;
  34. }
  35.  
  36. function updateLinks(params) {
  37. document.querySelectorAll('a').forEach(link => {
  38. const url = new URL(link.href);
  39. Object.keys(params).forEach(key => url.searchParams.set(key, params[key]));
  40. link.href = url.toString();
  41. });
  42. }
  43.  
  44. function addExternalIdFromLocalStorage() {
  45. const subid = localStorage.getItem('subId');
  46. if (subid) {
  47. updateLinks({ external_id: subid });
  48. clearInterval(checkStorageInterval); // Остановить проверку, если _subid найден
  49. }
  50. }
  51.  
  52. // Инициализация
  53. const params = getUrlParams();
  54. if (Object.keys(params).length > 0) {
  55. params.event_source_url = createEventSourceUrl();
  56. updateLinks(params);
  57. }
  58.  
  59. // Проверка на появление _subid в localStorage каждые 500 мс
  60. const checkStorageInterval = setInterval(addExternalIdFromLocalStorage, 100);
  61. </script>
  62.  
  63.  
  64.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement