Не очевидные способы использования API Prodvigator + скрипты

(Ответов: 1, Просмотров: 2263)
  1. Новичок
    • Регистрация: 01.10.2015
    • Сообщений: 6
    • Репутация: 24
    О сервисе Prodvigator знают многие специалисты из мира интернет-маркетинга. Он может быть полезным seo’шникам, ppc’шникам и веб-аналитикам. Думаю не стоит рассказывать о его богатом функционале. В этой статье я хочу рассказать о использовании Prodvigator API для получения данных, которые довольно сложно достать или структурировать через веб-интерфейс сервиса.

    Т. к. не все форумчане владеют навыками программирования вместе с описанием возможностей я поделюсь своими скриптами* для Google Speadsheet, которые легко сможет использовать каждый.


    1. Сравнение динамики изменения позиций своего сайта и конкурентов

    Есть множество хороших сервисов, благодаря которым можно ежедневно проверять позиции сайта и сравнивать их с конкурентами. Вот только при работе с ними мы можем анализировать ограниченное и, обычно, не очень большое число фраз. В базе Продвигатора миллионы фраз. Нормально, когда система находит больше 10 тыс. фраз, по которым ранжируется сайт. Каждый день данные по части из этих фраз обновляются. Через интерфейс Prodvigator мы можем узнать какие фразы выросли, упали или появились в топ100. Но чтобы выделить общие с конкурентами фразы, изменившие свои позиции в течении одного конкретного дня, и сравнить изменения - возможностей веб-интерфейса недостаточно. В такой ситуации поможет API Prodvigator.

    Ниже вы найдете код моего скрипта, созданного для решения этой проблемы.

    Код:
    function getCompareDinamic() {
      var mysite = "mydomain.com";
      var competitors = new Array("comp1", "comp2");
      var limit = 3000;
      var key = "APIKEY";
      var engine = "g_ua";
      
      if (limit<1000)
        limit=1000;
      
      var numk = limit/1000;
      var keys = new Array();
      var dates = new Array();
      var poss = new Array();
      var dyn = new Array();
      var vol = new Array();
      var nunu = new Array();
      var upo = new Array();
      var downo = new Array();
     
      for (var z=0; z<numk; z++)
      {
        var jsondat = UrlFetchApp.fetch("http://prodvigator.ua/api/v3/domain_keywords?query="+mysite+"&token="+key+"&sort=date&order=desc&page_size=1000&page="+(z+1)+"&se="+engine);
        var object  = JSON.parse(jsondat.getContentText());
     
        for (var i = 0; i < object["result"]["hits"].length; i++) 
        {
          var cd = object["result"]["hits"][i]["date"];
          if (dates.indexOf(cd)>-1)
          {
            var ss = dates.indexOf(cd);
            var tt = keys[ss].length;
            keys[ss][tt] = object["result"]["hits"][i]["keyword"];
            poss[ss][tt] = object["result"]["hits"][i]["position"];
            dyn[ss][tt] = object["result"]["hits"][i]["dynamic"];
            vol[ss][tt] = object["result"]["hits"][i]["region_queries_count"];
            if (object["result"]["hits"][i]["dynamic"] == null)
              nunu[ss]++;
            if (object["result"]["hits"][i]["dynamic"]>0)
              upo[ss]++;
            if (object["result"]["hits"][i]["dynamic"]<0)
              downo[ss]++;
          }
          else
          {
            var ss = dates.length;
            dates[ss] = object["result"]["hits"][i]["date"];
            nunu[ss] = 0;
            upo[ss] = 0;
            downo[ss] = 0;
            keys[ss] = new Array();
            poss[ss] = new Array();
            dyn[ss] = new Array();
            vol[ss] = new Array();
            keys[ss][0] = object["result"]["hits"][i]["keyword"];
            poss[ss][0] = object["result"]["hits"][i]["position"];
            dyn[ss][0] = object["result"]["hits"][i]["dynamic"];
            vol[ss][0] = object["result"]["hits"][i]["region_queries_count"];
            if (object["result"]["hits"][i]["dynamic"] == null)
              nunu[ss]++;
            if (object["result"]["hits"][i]["dynamic"]>0)
              upo[ss]++;
            if (object["result"]["hits"][i]["dynamic"]<0)
              downo[ss]++;
          }
        }
      }
      //Logger.log("sss"+keys[1][2]);
      
      var datesC = new Array();
      var keysC = new Array();
      var possC = new Array();
      var dynC = new Array();
      var volC = new Array();
      
      for (var j=0; j<competitors.length; j++)
      {
        datesC[j] = new Array();
        keysC[j] = new Array();
        possC[j] = new Array();
        dynC[j] = new Array();
        volC[j] = new Array();
      
        for (var z=0; z<numk; z++)
        {
                
          var jsondat = UrlFetchApp.fetch("http://prodvigator.ua/api/v3/domain_keywords?query="+competitors[j]+"&token="+key+"&sort=date&order=desc&page_size=1000&page="+(z+1)+"&se="+engine);
          var object  = JSON.parse(jsondat.getContentText());
          
          for (var i = 0; i < object["result"]["hits"].length; i++) 
          {
            var cd = object["result"]["hits"][i]["date"];
            if (datesC[j].indexOf(cd)>-1)
            {
              var ss = datesC[j].indexOf(cd);
              var tt = keysC[j][ss].length;
              keysC[j][ss][tt] = object["result"]["hits"][i]["keyword"];
              possC[j][ss][tt] = object["result"]["hits"][i]["position"];
              dynC[j][ss][tt] = object["result"]["hits"][i]["dynamic"];
              volC[j][ss][tt] = object["result"]["hits"][i]["region_queries_count"];
            }
            else
            {
              var ss = datesC[j].length;
              datesC[j][ss] = object["result"]["hits"][i]["date"];
              keysC[j][ss] = new Array();
              possC[j][ss] = new Array();
              dynC[j][ss] = new Array();
              volC[j][ss] = new Array();
              keysC[j][ss][0] = object["result"]["hits"][i]["keyword"];
              possC[j][ss][0] = object["result"]["hits"][i]["position"];
              dynC[j][ss][0] = object["result"]["hits"][i]["dynamic"];
              volC[j][ss][0] = object["result"]["hits"][i]["region_queries_count"];
            }
          }
        }
      }
      
      var rez = new Array();
      var badwords = new Array();
      badwords[0] = new Array("Фраза", "Конкурент", "Частотность", "Было у нас", "Стало у нас", "Было у них", "Стало у них");
      for (var i=0; i<dates.length; i++)
      {
        rez[i] = new Array();
        rez[i][0] = dates[i];
        rez[i][1] = keys[i].length;
        rez[i][2] = nunu[i];
        rez[i][3] = upo[i];
        rez[i][4] = downo[i];
        rez[i][5] = parseFloat(getVisibility(poss[i], vol[i])*100).toFixed(2);
        
        for (var j=0; j<competitors.length; j++)
        {
          var cd = dates[i];
          var shft = j*7;
          rez[i][6+shft] = 0;
          rez[i][7+shft] = 0;
          rez[i][8+shft] = 0;
          rez[i][9+shft] = 0;
          rez[i][10+shft] = 0;
          rez[i][11+shft] = 0;
          rez[i][12+shft] = 0;
          
          if (datesC[j].indexOf(cd)>-1)
          {
            var kz = new Array();
            var vz = new Array();
            var sz = new Array();
            for (var k=0; k<keysC[j][datesC[j].indexOf(cd)].length; k++)
            {
              var ss = keysC[j][datesC[j].indexOf(cd)][k];
              if (keys[i].indexOf(ss)>-1)
              {
                var tz = kz.length;
                rez[i][6+shft]++;
                kz[tz] = possC[j][datesC[j].indexOf(cd)][k];
                vz[tz] = volC[j][datesC[j].indexOf(cd)][k];
                sz[tz] = poss[i][keys[i].indexOf(ss)];
                if (possC[j][datesC[j].indexOf(cd)][k]<poss[i][keys[i].indexOf(ss)])
                {
                  rez[i][7+shft]++;
                  if ((dyn[i][keys[i].indexOf(ss)]!=null)&&(dynC[j][datesC[j].indexOf(cd)][k]!=null))
                  {
                    var prevA = possC[j][datesC[j].indexOf(cd)][k]+dynC[j][datesC[j].indexOf(cd)][k];
                    var prevB = poss[i][keys[i].indexOf(ss)]+dyn[i][keys[i].indexOf(ss)];
                    if (prevA>prevB)
                    {
                      rez[i][9+shft]++;
                      var bs = badwords.length;
                      badwords[bs] = new Array(keysC[j][datesC[j].indexOf(cd)][k], competitors[j], vol[i][keys[i].indexOf(ss)], prevB, poss[i][keys[i].indexOf(ss)], prevA, possC[j][datesC[j].indexOf(cd)][k]);
                    }
                  }
                }
                else
                {
                  rez[i][8+shft]++;
                  if ((dyn[i][keys[i].indexOf(ss)]!=null)&&(dynC[j][datesC[j].indexOf(cd)][k]!=null))
                  {
                    var prevA = possC[j][datesC[j].indexOf(cd)][k]+dynC[j][datesC[j].indexOf(cd)][k];
                    var prevB = poss[i][keys[i].indexOf(ss)]+dyn[i][keys[i].indexOf(ss)];
                    if (prevA<prevB)
                      rez[i][10+shft]++;
                  }
                }
              }
            }
            rez[i][11+shft] = parseFloat(getVisibility(kz, vz)*100).toFixed(2);
            rez[i][12+shft] = parseFloat(getVisibility(sz, vz)*100).toFixed(2);
          }
        }
      }
      
      var intro = new Array();
      intro[0] = new Array();
      intro[1] = new Array();
      intro[0][1] = mysite;
      intro[0][0] = intro[0][2] = intro[0][3] = intro[0][4] = intro[0][5]="";
      intro[1][0] = "Дата";
      intro[1][1] = "Фраз";
      intro[1][2] = "Новых";
      intro[1][3] = "Выросло";
      intro[1][4] = "Упало";
      intro[1][5] = "Видимость";
      for (var i=0; i<competitors.length; i++)
      {
        intro[0][6+(i*7)] = competitors[i];
        intro[0][7+(i*7)] = intro[0][8+(i*7)] = intro[0][9+(i*7)] = intro[0][10+(i*7)]  = intro[0][11+(i*7)]  = intro[0][12+(i*7)] = "";
        intro[1][6+(i*7)] = "Общих фраз";
        intro[1][7+(i*7)] = "Фраз выше";
        intro[1][8+(i*7)] = "Фраз ниже";
        intro[1][11+(i*7)] = "Видимость";
        intro[1][12+(i*7)] = "Ваша видимость";
        intro[1][9+(i*7)] = "Стало выше";
        intro[1][10+(i*7)] = "Стало ниже";
      }
      SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1,1,intro.length,intro[1].length).setValues(intro);
      
      var cc = 6+(competitors.length*7);
      SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(3,1,rez.length,cc).setValues(rez);
      
      SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(rez.length+5,1,badwords.length,badwords[0].length).setValues(badwords);
    }
    
    function getVisibility(keys, vols)
    {
      var rez = 0;
      var summ = 0;
      for (var i=0; i<keys.length; i++)
      {
        rez+=getPosVis(keys[i])*vols[i];
        summ+=vols[i];
      }
      
      rez = rez/summ;
      return rez;
      
    }
    
    function getPosVis(pos)
    {
      var rez = 0;
      if (pos<=3)
        rez=1;
      if (pos==4)
        rez=0.85;
      if (pos==5)
        rez=0.6;
      if((pos>5)&&(pos<=7))
        rez=0.5;
      if((pos>7)&&(pos<=9))
        rez=0.3;
      if (pos==10)
        rez=0.2;
      
      return rez;
    }
    Сперва стоит внести небольшие изменения в код. Сверху есть несколько переменных, которые нужно поменять под себя:
    • Mysite – тут нужно вместо «mydomain.com» указать анализируемый сайт, например, kg-portal.ru
    • Competitors – вместо «comp1», «comp2» нужно указать домены конкурентов. Например, для 4х конкурентов строка может выглядеть так:
      var competitors = new Array("vk.com", "twitter.com", "facebook.com", "myspace.com");
    • Limit – указываем число фраз, которые будут анализироваться.
    • Key – вместо «APIKEY» нужно вставить свой ключ для API Prodvigator.
    • Engine – вместо «g_ua» можно указать другую поисковую систему, с которой работает Продвигатор, например, «y_213» для Яндекс по Москве.


    Чтобы его запустить нужно создать новый лист в Google Spreadsheet. Затем зайти в «Инструменты» -> «Редактор скриптов» и создать новый скрипт. Скопировать в него код. Изменить значения на нужные. Над полем кода выбрать функцию “getCompareDinamic” и запустить выполнение.

    В результате выполнения скрипта в активном листе Spreadsheet появится две таблицы. В первой таблице отображены данные о динамике позиций. Во второй – фразы, по которым конкурент стал выше.


    Давайте более детально рассмотрим столбцы первой таблицы:
    • Дата – календарный день, для которого зафиксированы события.
    • Фраз – количество фраза анализируемого сайта, для которых в этот день обновились данные в Продвигаторе.
    • Новых – количество фраз анализируемого сайта, которые впервые попали в топ-100.
    • Выросло – количество фраз анализируемого сайта, которые улучшили свою позицию.
    • Упало - количество фраз анализируемого сайта, которые ухудшили свою позицию.
    • Видимость – показатель видимости анализируемого сайта исходя из позиций для фраз текущего дня. Видимость определяется по такой-же формуле, как и на Allpositions.ru.


    Далее для каждого конкурента из массива идет по семь одинаковых столбцов:
    • Общих фраз – число одинаковых фраз, которые обновились в этот день для обоих сайтов.
    • Фраз выше – число общих фраз текущего дня, по которым у конкурента позиция выше, чем у анализируемого сайта.
    • Фраз ниже - число общих фраз текущего дня, по которым у конкурента позиция ниже, чем у анализируемого сайта.
    • Стало выше – количество общих фраз, по которым конкурент стал ранжироваться выше анализируемого сайта.
    • Стало ниже – количество общих фраз, по которым анализируемый сайт стал ранжироваться выше данного конкурента.
    • Видимость – видимость конкурента только по общим фразам текущего дня. Определяется по той же формуле.
    • Ваша видимость – видимость анализируемого сайта только по общим с данным конкурентом фразам.

    По этой таблице можно определять текущую динамику изменения позиций анализируемого сайта и сравнивать эти изменения с конкурентами.

    Вторая таблица показывает перечень фраз, по которым конкуренты ранее ранжировались ниже анализируемого сайта.

    Какая польза от этого скрипта:
    • Можно отслеживать динамику изменения позиций любого сайта.
    • Можно сравнивать динамику изменения позиций с конкурентами. Например, такой график показывает, что по данным Prodvigator мы понемногу обходим конкурента.
    • Можно оперативно определять по каким фразам нас обошли конкуренты.
    • В новых нишах можно находить сайты, которые активно растут и анализировать их стратегию продвижения.

    2. Получение словаря рекламных фраз

    Кроме органической выдачи сервис фиксирует фразы, по которым были найдены объявления конкретного сайта в Google Adwords или Яндекс Директ. Причем фиксируются они независимо от статистики Google Adwords. Т.е. Google Adwords покажет ноль показов по фразам, о которых точно знает Prodvigator. В моем случае Prodvigator нашел около 1.2 тыс. фраз, по которым показываются объявления, но Adwords их не указал среди 53 тыс. фраз, по которым были показы.

    Через веб-интерфейс Prodvigator можно выгрузить весь перечень фраз, по которым показываются объявления сайта. Но для того, чтобы получить словарь (уникальные слова) нужно пошаманить. Для упрощения этой задачи я написал следующий скрипт:

    Код:
    function getPaidWords() {
      var limit = 3000;
      var key = "APIKEY";
      var dom = "mydoamin.com";
      var engine = "g_ua";
      
      if (limit<1000)
        limit=1000;
      
      var numk = limit/1000;
      var keys = new Array();
      var descs = new Array();
      for (var z=0; z<numk; z++)
      {
        var jsondata = UrlFetchApp.fetch("http://prodvigator.ua/api/v3/ad_keywords?query="+dom+"&token="+key+"&page_size=1000&page="+(z+1)+"&se="+engine);
        var object   = JSON.parse(jsondata.getContentText());
     
        for (var i = 0; i < object["result"]["hits"].length; i++) 
        {
          var ss = keys.length;
          keys[ss] = object["result"]["hits"][i]["keyword"];
          //titles[ss+1] = object["result"]["hits"][i]["text"];
        }
      }
        
      var words = new Array();
      var wc = new Array();
      
      for (var i=0; i<keys.length; i++)
      {
        var res = keys[i].split(" ");
        
        for (var j=0; j<res.length; j++)
          if ((words.indexOf(res[j].toLowerCase())>-1))
              wc[words.indexOf(res[j].toLowerCase())]++;
          else
          {
            if (res[j].length>2)
            {
              var ws = words.length;
              words[ws] = res[j].toLowerCase();
              wc[ws] = 1;
            }
          } 
      }
      
       var word1 = new Array();
      for (var i=0; i<words.length; i++)
      {
        word1[i] = new Array();
        word1[i][0] = words[i];
        word1[i][1] = wc[i];
      }
      
       SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1,1,word1.length,2).setValues(word1);
    }
    Настройка и выполнение этого скрипта аналогична предыдущему.

    В результате вы получите таблицу из двух столбцов. В первом будет перечень уникальных слов, а во втором – число фраз, в которых эти слова найдены.

    Какая польза от скрипта:
    • Удобно расширять перечень «минус-слов».
    • Можно находить слова, про которые не скажет Google Adwords.
    • При подготовке рекламной кампании можно проанализировать конкурентов и составить начальный словарь «минус-слов».

    3. Получение фраз и слов для объявлений

    Я крайне редко сталкиваюсь с созданием объявлений для контекстной рекламы. Но каждый раз эта работа выжимает все соки из моих запасов фантазии. Уже на третьем объявлении я не могу придумать как еще можно написать одно и тоже. В итоге приходится смотреть что пишут конкуренты, что занимает определенное время. Следующий скрипт позволяет определить уникальные слова и словосочетания (из двух слов), которые конкуренты используют в своих объявлениях.

    Код:
    function getAlpha() {
      var limit = 1000;
      var key = "APIKEY";
      var dom = "mydomain.com";
      var engine = "g_ua";
      
      if (limit<1000)
        limit=1000;
      
      var numk = limit/1000;
      var titles = new Array();
      var descs = new Array();
      for (var z=0; z<numk; z++)
      {
        var jsondata = UrlFetchApp.fetch("http://prodvigator.ua/api/v3/ad_keywords?query="+dom+"&token="+key+"&page_size=1000&page="+(z+1)+"&se="+engine);
        var object   = JSON.parse(jsondata.getContentText());
     
        for (var i = 0; i < object["result"]["hits"].length; i++) 
        {
          var ss = titles.length;
          titles[ss] = object["result"]["hits"][i]["title"];
          titles[ss+1] = object["result"]["hits"][i]["text"];
        }
      }
      
      var words = new Array();
      var phras = new Array();
      var wc = new Array();
      var pc = new Array();
      
      for (var i=0; i<titles.length; i++)
      {
        var res = titles[i].split(" ");
        for (var j=0; j<res.length; j++)
          if (words.indexOf(res[j].toLowerCase())>-1)
            wc[words.indexOf(res[j].toLowerCase())]++;
          else
          {
            var ws = words.length;
            words[ws] = res[j].toLowerCase();
            wc[ws] = 1;
          }
        
        for (j=0; j<res.length-1; j++)
          if (phras.indexOf(res[j].toLowerCase()+" "+res[j+1].toLowerCase())>-1)
          {
            pc[phras.indexOf(res[j].toLowerCase()+" "+res[j+1].toLowerCase())]++;
          }
          else
          {
            var ps = phras.length;
            phras[ps] = res[j].toLowerCase()+" "+res[j+1].toLowerCase();
            pc[ps] = 1;
          }
      }
      
      var word1 = new Array();
      for (var i=0; i<words.length; i++)
      {
        word1[i] = new Array();
        word1[i][0] = words[i];
        word1[i][1] = wc[i];
      }
      
      var word2 = new Array();
      for (var i=0; i<phras.length; i++)
      {
        word2[i] = new Array();
        word2[i][0] = phras[i];
        word2[i][1] = pc[i];
      }
      SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1,1,word1.length,2).setValues(word1);
      SpreadsheetApp.getActiveSpreadsheet().getActiveSheet().getRange(1,4,word2.length,2).setValues(word2);
    }
    Настройка и выполнение этого скрипта аналогична предыдущему.

    В результате мы получаем две таблицы. В первой отображены уникальные слова из объявлений сайта и число их упоминаний. Во второй – уникальные словосочетания и число их упоминаний.

    Какая польза от скрипта:
    • Можно быстро определить слова и словосочетания, которые используют конкуренты в своих объявлениях. Если слабая фантазия, то так можно легко получить новые слова и фразы для новых объявлений.

    4. Анализ видимости ссылающихся страниц

    Действия Google и Яндекс заставили сеошников по-другому относиться к ссылкам на сайт. Изменился подход оценки их качества. Последние несколько месяцев, при анализе ссылочного сайта, я предпочитаю учитывать видимость всех ссылающихся страниц. Prodvigator позволяет определить фразы и их количество, по которым ранжируется конкретная страница. Через веб-интерфейс это делать очень долго. Поэтому я расскажу, как быстро получать данные через API и Google Spreadsheets.

    Делаем следующие действия:
    1. Заходим в «Редактор скриптов» в Google Spreadsheet.
    2. Создаем новый скрипт. Код берем отсюда: https://gist.github.com/paulgambill/...da95a1421d3164
    3. Переименовываем скрипт на ImportJSON.gs, сохраняем и возвращаемся в таблицу.
    4. Достаем страницы, которые ссылаются на сайт (из Google Webmaster Tools, Яндекс Вебмастер, … не важно) и вставляем в левый столбец.
    5. Справа от верхнего адреса (предположим, ячейка А1) вставляем следующий код:
    =ImportJSON(CONCATENATE("http://prodvigator.ua/api/v3/url_keywords?query=";A1;"&token=API_КЛЮЧ&se=g_ ua"); "/result/total"; "noHeaders")
    6. Растягиваем эту формулу на всю высоту таблицы до самого последнего адреса.

    В итоге вы должны получить приблизительно такую таблицу:


    Справа от каждого адреса появится число фраз, по которым они ранжируются. Значение «#REF!» эквивалентно нулю.

    Польза от такого использования API Prodvigator:
    • Можно выявить ссылающиеся страницы, которые вообще не ранжируются в ПС.


    В этой статье я не пытался показать возможности API Prodvigator. Я лишь показал четыре реальных метода его использования. Надеюсь вы найдете в моей статье какую-то пользу для себя.

    *данные скрипты сложно назвать скриптами. Я почти никогда не прожу на JS, да и писал их всего час-другой. Так что за гламурность кода не ругайте.


    Дмитрий Мазурян
    mz.kiev.ua
    Последний раз редактировалось dmazya; 04.10.2015 в 18:47.
    • 13

    Спасибо сказали:

    blazhnov(07.10.2015), DOleg(24.01.2016), Dvoryashin(04.10.2015), freem@n(24.01.2016), grazer(24.10.2015), isachenko(24.01.2016), Matsa(26.10.2015), narolskay(05.10.2015), Norder(10.10.2015), ViTaXa(22.04.2016), zloberman(15.11.2015), zxgame(08.10.2015), Думка(04.10.2015),
  2. Новичок
    • Регистрация: 18.09.2012
    • Сообщений: 4
    • Репутация: 1
    Спасибо за скрипты! Скажите, пожалуйста, Вы случайно не писали скрипт для сохранения у файл фраз, по которым поисковые системы видят ту или иную страницу? Это отчет по странице https://prodvigator.ua/keywords/urls?query=site.com
    • 0

Похожие темы

Темы Раздел Ответов Последний пост
Бесплатный купон в Prodvigator.ru
Бесплатное на форуме 104 25.02.2020 17:54
Нужна выгрузка с сервиса prodvigator.ua
Прочее 0 16.03.2015 20:24
Prodvigator.ua доступен теперь и в России!
Реклама партнерских программ 12 19.02.2014 19:20
Бесплатно: Анализ конкурентов через prodvigator.ua
Бесплатное на форуме 6 02.12.2013 14:39
Prodvigator.ua доступен теперь и в России!
Софт, скрипты, сервисы 0 27.11.2013 12:16

У кого попросить инвайт?

Вы можете попросить инвайт у любого модератора:

Информеры