Задать вопрос
  • Как сделать JS, что бы он запускался только при первом визите на сайт?

    ronnie85
    @ronnie85
    Fullstack Dev
    Могу предложить свой API по работе с Cookie:
    var Cookie = {
    
        _params: {
            domain: '',
            path: '/',
            expires: '',
            maxAge: -1,
            sameSite: false,
            secure: false
        },
    
        _lastCookie: '',
    
        setDefaultParams (params) {
            this._params = {...this._params, ...params};
        },
    
        getDefaultParams () {
            return this._params;
        },
    
        getLastCookie () {
           return this._lastCookie;
        },
    
        set (key, value, params={}) {
    
            value = encodeURIComponent(value);
            params = {...this._params, ...params};
    
            if (params.expires) {
                if (params.expires instanceof Date) {
                    params.expires = params.expires.toUTCString();
                } else if (typeof params.expires === 'string') {
                    const date = new Date(params.expires);
                    params.expires = date.toUTCString();
                }
            }
    
            let cookie = `${key}=${value};`;
            cookie += params.path ? ` Path=${params.path};` : '';
            cookie += params.domain ? ` Domain=${params.domain};` : '';
            cookie += params.expires ? ` Expires=${params.expires};` : '';
            cookie += params.maxAge > -1 ? ` Max-Age=${params.maxAge};` : '';
            cookie += params.sameSite !== false ? ` SameSite=${params.sameSite};` : '';
            cookie += params.secure === true ? ` Secure;` : '';
    
            this._lastCookie = cookie;
            document.cookie = cookie;
    
            return true;
        },
    
        has (key) {
            return this.getAll().hasOwnProperty(key);
        },
    
        get (key) {
            return this.getAll()[key];
        },
    
        getAll () {
            const cookies = {};
            this.getString().split(';').forEach(val => {
                const params = val.split('=').map(el => el.trim());
                cookies[params[0]] = params[1];
            });
            return cookies;
        },
    
        getString () {
            return document.cookie;
        },
    
        delete (key) {
            if (!this.has(key)) return false;
            return this.set(key, '', { expires: 'Thu, 01 Jan 1970 00:00:01 GMT', maxAge: 0 });
        }
        
    };
    
    if (!Cookie.has('key')) {
        if (confirm('Are you want to save a cookie?')) {
            Cookie.set('key', true, { expires: '2022-12-01T00:00:00' });
        }
    } else {
        if (confirm('Are you want to delete a cookie?')) {
            Cookie.delete('key');
        }
    }
    Ответ написан
    Комментировать
  • Как сделать JS, что бы он запускался только при первом визите на сайт?

    sergiks
    @sergiks Куратор тега JavaScript
    ♬♬
    Код ждёт 30 секунд, прежде, чем отправить в Яндекс.Метрику событие.

    Если надо, чтобы единственный раз именно дождался 30 секунд на странице, то так:
    const KEY = 'TIMECOUNTER';
    
    if (!localStorage.getItem(KEY)) {
      setTimeout(() => {
        yaCounterХХХХХХХХ.reachGoal('TIME');
        localStorage.setItem(KEY, KEY);
      }, 30000);
    }


    Ещё возможно, что единственный раз должна лишь даваться попытка провести 30 секунд на сайте. Тогда стоило задавать вопрос более осмысленно.
    Ответ написан
    2 комментария
  • Какой ноут посоветуете?

    yakovlev_13
    @yakovlev_13
    Шаманство, экзорцизм и некромантия.
    Да не особо сильно и отличится в автономности. Зато отлично скажется на производительности.
    Ответ написан
    1 комментарий
  • Как пофиксить кодировку csv файла?

    daruvayc0
    @daruvayc0
    Открываете Excel на вкладке "Данные" находите кнопку "Получение внешних данных", из выпадающего списка выбираете "Из текста", выбираете свой файл csv, и дальше по инструкции которая будет во всплывающем окне. После всех манипуляций сохраняете как Вам будет удобно.
    Ответ написан
    1 комментарий
  • Как проставить кавычки массово в Excel или строках txt?

    ZeLib0ba
    @ZeLib0ba
    [IT]ишник | http://surin.ru
    Можно еще проще. Копируете все в первый столбец, построчно
    Во втором пишите
    =""""&A1&""""
    И тяните эту запись до последней.
    Ответ написан
    Комментировать
  • Бутстрап 3, как сделать чтобы одна из ссылок выглядела как обычный текст, без стандартного оформления?

    NooBiToo
    @NooBiToo
    написать свой стиль?
    <a href="#" class="my-link">link</a>
    .my-link, .my-link:hover {
      text-decoration: none;
      color: #000;
    }
    Ответ написан
    2 комментария
  • Почему списываемая цена в прогнозаторе бюджета и в самом директе отличается?

    DeoZ
    @DeoZ Куратор тега Яндекс.Директ
    Веб-разработка и Реклама
    В прогнозе бюджета указана средняя цена у рекламодателей по этому запросу за последние 30 дней без учёта временных ограничений конкурентов и качества Вашей кампании.
    В интерфейсе кампании Вы видите уже цену на текущий момент времени, в том числе вычисленную, исходя из параметров Вашей кампании, Ваших объявлений, их релевантности запросам. К тому же эта цена обычно существенно снижается спустя час-два после запуска рекламной кампании, потому что для вычисления подключается больше параметров, отрабатывающих уже в режиме реальной работы кампании.
    Ответ написан
    2 комментария
  • Как массово убрать водяные знаки?

    maaGames
    @maaGames
    Погроммирую программы
    Можно создать action в фотошопе, выделяя область с текстом. Или прямоугольником или какой-то сложной формы - как хочешь и выполнить заливку content aware. Результат зависит от изображения, моет как более менее прилично получиться, так и очевидно убого. Экшен потом через batch для всех иображений запускаешь и радуешься. Или не радуешься, как повезёт. Если сразу поверх "исправления" писать новый водяной знак, то может не так заметны косяки будут.

    5bd19daccb7cd138094524.jpeg
    Ответ написан
    Комментировать
  • Как установить Windows на чужой жёсткий диск?

    chupasaurus
    @chupasaurus
    Сею рефлекторное, злое, временное
    Вы можете у себя начать установку, и остановить её на первой перезагрузке. Все файлы для установки уже на диске, процесс с настройкой под конечную систему начнётся при загрузке.
    Ответ написан
    2 комментария
  • Как отправить в API Яндекс.Метрику данные о звонках?

    @marxxt
    понравился ответ - поставь ✔
    А, вы вынесли в отдельный вопрос)

    Вобщем, StaticCall,UserId - обязательные колонки

    Заголовки
    Content-Type: multipart/form-data; boundary=------------------------boundary
    Content-Length: 12345


    Тело
    --------------------------boundary\r\n
    Content-Disposition: form-data; name="file"; filename="file.csv"\r\n
    Content-Type: text/csv\r\n\r\n
    ДАННЫЕ\r\n\r
    --------------------------boundary--


    Пример(для curl все тоже самое)
    function request($url, $data, $headers){
      $opt = array(
        'http' => array(
          'method' => 'POST',
          'content' => $data,
          'header' => $headers
        )
      );
    
      $context = stream_context_create($opt);
    
      $response = @file_get_contents($url, FALSE, $context);
      
      return $response;
      
    }
    
    $oauth_token='xxx';
    $boundary = "7zDUQOAIAE9hEWoV";
    $filename = 'data.csv';
    
    $calls = "StaticCall,UserId,DateTime,Price,Currency,PhoneNumber,TalkDuration,HoldDuration,CallMissed,Tag,FirstTimeCaller,URL,CallTrackerURL".PHP_EOL;
    $calls .= "1,133591247640966458,1481714026,678.90,RUB,+71234567890,136,17,0,,1,https://test.com/,https://test.com/".PHP_EOL;
    $calls .= "1,579124169844706072,1481718066,123.45,RUB,+70987654321,17,23,0,,2,https://test.com/,https://test.com/".PHP_EOL;
    $calls .= "1,148059425477661429,1481718126,678.90,RUB,+71234509876,72,11,0,,0,https://test.com/,https://test.com/";
    
    $data = "--------------------------$boundary\x0D\x0A";
    $data .= "Content-Disposition: form-data; name=\"file\"; filename=\"$filename\"\x0D\x0A";
    $data .= "Content-Type: text/csv\x0D\x0A\x0D\x0A";
    $data .= $calls . "\x0A\x0D\x0A";
    $data .= "--------------------------$boundary--";
    
    
    $headers = array();
    $headers[] = "Content-Type: multipart/form-data; boundary=------------------------$boundary";
    $headers[] = 'Content-Length: '.strlen($data);
    $headers = implode(PHP_EOL, $headers);
    
    $url = "https://api-metrika.yandex.ru/management/v1/counter/39764535/offline_conversions/upload_calls?client_id_type=USER_ID&oauth_token=$oauth_token";
    
    $result = request($url, $data, $headers);
    
    var_dump($result);


    Для curl типа того
    CURLOPT_POSTFIELDS => $data
    CURLOPT_HTTPHEADER => array(
        "Content-Type: multipart/form-data; boundary=------------------------$boundary",
        "Content-Length: " . strlen($data)
    Ответ написан
  • Отключить показ на мобильных в Яндекс Директ?

    DeoZ
    @DeoZ Куратор тега Яндекс.Директ
    Веб-разработка и Реклама
    Нет, такой возможности они, к сожалению, не предоставляют.
    Для кампаний РСЯ можно добавить в минус-площадки несколько сервисов, чтобы исключить показы в мобильных приложениях. Но это всё, что можно сделать.
    Ответ написан
    Комментировать
  • Интеграция Амо и Директа?

    @start-crm
    Интеграция и внедрение CRM систем
    выгружайте в аудиторию сделки из CRM и загружайте в яндекс)
    Все делается без проблем особых)

    https://yandex.ru/support/audience/file.html#file__crm
    Ответ написан
    Комментировать
  • Как использовать фразы для РК в контекстной рекламе с точным вхождением ("!") или нет(с минус словами)?

    DeoZ
    @DeoZ Куратор тега Яндекс.Директ
    Веб-разработка и Реклама
    Не используйте в контекстных рекламных кампаниях фразы с оператором "!". Только если его использование оправдано для исключения двоякого толкования определённых слов. Это не SEO.
    Некоторые любят использовать фразы в кавычках, набирая большой пул запросов. Но я бы не рекомендовал такой подход. Лучше добавлять фразы частотностью от 10 до 2000 с использованием минус-слов. И в дальнейшем, при ведении, этот список минус-слов постоянно пополнять.
    Ответ написан
    Комментировать
  • Как получить данную информацию из Яндекс.метрики?

    @alexustinova
    Специализация: интернет-маркетинг
    По поводу 2-го вопроса:

    если у вашего сайта большая посещаемость, то есть вероятность того, что часть страниц у людей остаются открытыми в браузере и по прошествии длительного времени они возвращаются к этим страницам и закрывают. Данная сессию (возвращения) считывается в том же источнике, но как новая и со 100% отказом (при закрытии до 15 сек)
    Ответ написан
    Комментировать
  • Как ответить json'ом?

    Shutik
    @Shutik
    Погромист халявщик
    ммм ... указать этот самый header() в ответе ?
    header('Content-Type: application/json');
    Ответ написан
    Комментировать
  • Как перегруппировать массив?

    @antonowano
    Профессиональный самоучка
    $result = array();
    foreach($data as $val) {
        foreach($val as $key => $type) {
            $result[$key][] = $type;
        }
    }
    Ответ написан
    2 комментария
  • Сколько процентов от заказа берет человек, который нашел заказ?

    zoozag
    @zoozag
    Opencart
    Участвую в проектах и в качестве менеджера и в качестве разработчика

    Ведь программисту нужно потратить больше времени, сил и энергии.

    Далеко не всегда так. Трудозатраты менеджера сильно зависят от проекта и от ролей, которые он в этом проекте выполняет.

    Какая разница сколько в процентах возьмет себе менеджер, главное чтобы вас устраивало, то сколько абсолютно получите вы за конкретный проект.
    Ответ написан
    Комментировать
  • Как сделать открытие внешней ссылки в всплывающем окне?

    @f_u_s_s
    Любопытный кодер
    Если нужно прям вот именно окно браузера отдельное, то как-то так например:
    <!DOCTYPE html>
    <html lang="ru">
    <head>
      <meta charset="UTF-8">
      <title>Document</title>
    
      <script>
        function setOnclick(a) {
        a.setAttribute("onclick","popupWin = window.open(this.href,'contacts','width=820px,height=700px,top=50,left=200px,toolbar=0, location=0, directories=0, menubar=0, scrollbars=0, resizable=0, status=0'); popupWin.focus(); return false");
        }
    
        function externalLinks() {
        var links = document.getElementsByTagName("a");
          for (i=0; i<links.length; i++) {
            if (links[i].getAttribute("href") && links[i].getAttribute("rel") == "external") {
              setOnclick(links[i])
            }
          }
        }
        window.onload = externalLinks;
      </script>
    </head>
    <body>
    <a rel="external" href='file.html'>ТЫК</a>
    </body>
    </html>


    А если модальное окно - то например fancybox можно использовать.
    Ответ написан
    1 комментарий
  • Если цена у запроса "iphone" меньше, чем у "iphone купить", так может оставить только "iphone"?

    DeoZ
    @DeoZ Куратор тега Яндекс.Директ
    Веб-разработка и Реклама
    Во-первых, да, при добавлении минус-слов цена будет менять. Но главное, что цена клика по позиции у запроса, что Вы видите в интерфейсе - это средняя цена, которая включает все возможные комбинации с этим запросам, включая все средне и низкочастотные, а также различные параметры аудитории и геотаргетинга.
    То есть непосредственно во время аукциона на запрос "iphone купить" ваша ставка по запросу "iphone" будет участвовать на общих основаниях с другими конкурентами. И если они изначально нацеливались на этот запрос и назначили достаточно высокие ставки, а Вы поставили свою цену, исходя из недорогого общего запроса, то Ваша ставка просто проиграет остальным участникам аукциона.
    Поэтому при составлении семантического ядра важно подбирать как можно больше наиболее релевантных запросов, чтобы иметь возможность назначать им индивидуальные ставки и иметь больше шансов на победу в аукционах.
    Ответ написан
    1 комментарий