> For the complete documentation index, see [llms.txt](https://docs.exoclick.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.exoclick.com/publishers/ru/exoclick-agego.md).

# Как интегрировать ExoClick с AgeGO

Это руководство призвано объяснить:

* Как добавить сайт в AgeGO.
* Как передавать параметры проверки возраста в ExoClick и блокировать рекламу в рекламных зонах.
* Как объединить рекламные зоны AgeGO и ExoClick, чтобы показывать пользователям SFW-рекламу до подтверждения возраста.

## Как добавить сайт в AgeGO

Чтобы добавить сайт в AgeGO, войдите в [панель управления AgeGO](https://dashboard.agego.com/login). Затем перейдите в «My Sites» и нажмите «New Site»:

![ExoClick AgeGO 1](/files/db7a8e300bde355a0cae9696059502262b79cd27)

В этих настройках вам нужно как минимум указать **Имя** и **Домен верхнего уровня**. После завершения этих настроек нажмите «Create». Сайт будет добавлен в вашу учетную запись.

По умолчанию при создании всем сайтам присваивается статус «Ready». Однако это не означает, что ваш сайт уже может использовать AgeGO. Чтобы включить AgeGO на вашем сайте, вам нужно [**связаться с AgeGO через их контактную форму**](https://www.agego.com/contact-us-business) **и указать Site ID, соответствующий вашему сайту.**

Вы можете найти Site ID рядом с названием вашего сайта:

![ExoClick AgeGO 2](/files/2ecb94b6a90b3127336dc2d2d7feb612ce6776ab)

После одобрения вашего сайта его статус изменится на «Running», и вы сможете следовать инструкциям по интеграции AgeGO на вашем сайте. Это решение сейчас предлагает два метода, **Modal (простой или расширенный)** и **S2S**, а инструкции по настройке каждого метода доступны в панели управления AgeGO. В этом руководстве мы будем говорить о **Modal** методе.

## Как передавать статус проверки возраста и показывать SFW-рекламу

При использовании системы проверки возраста (AgeGO или другого провайдера) вы можете захотеть продолжать показывать рекламу всем пользователям (тем, кто не подтвердил возраст, и тем, кто подтвердил).

Чтобы определить, прошел ли пользователь проверку возраста (или нет), используйте `data-ex_av` параметр в ваших рекламных зонах. Этот параметр допускает 3 значения:

* "0": Проверка возраста отсутствует (не определено)
* "1": Проверка возраста — подтверждено
* "2": Проверка возраста — не подтверждено

Затем, чтобы блокировать рекламу для определенных пользователей (в данном контексте — для тех, кто не подтвердил возраст), используйте `data-block-ad-types` параметр. Этот параметр допускает несколько значений, но в этом руководстве мы будем использовать только значение `101`.

Поэтому, если вы хотите показывать рекламу, которая является SFW, и хотите определить этого пользователя как того, кто еще не подтвердил возраст, интегрируйте параметры так:

* **Асинхронные форматы рекламы (баннер, FPI, мультиформат и т. д.):**

```html
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
 <ins class="eas6a97888e2" data-zoneid="XXXXXXXX" data-ex_av="2"  data-block-ad-types="101"></ins> 
 <script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>
```

* **In-Stream**: `https://s.magsrv.com/v1/vast.php?idzone=XXXXXX&ex_av=2&block_ad_types=101`
* **Popunder (ссылка)**: `https://s.pemsrv.com/v1/link.php?cat=&idzone=XXXXX&type=8&ex_av=2&block_ad_types=101`
* **Прямая ссылка**: `https://s.zlinkt.com/v1/d.php?z=XXXXXXX&ex_av=2&blocked_ad_types=101`

**Примечание**: Вы должны использовать оба `data-ex_av` и `data-block-ad-types` при показе SFW-рекламы, иначе пользователь не будет корректно определён, и реклама не будет заблокирована.

А если вы хотите показывать проверенному пользователю рекламу всех типов, вы будете делать это так:

* **Асинхронные форматы рекламы (баннер, FPI, мультиформат и т. д.):**

```html
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script> 
<ins class="eas6a97888e2" data-zoneid="XXXXXXX" data-ex_av="1"></ins> 
<script>(AdProvider = window.AdProvider || []).push({"serve": {}});</script>
```

* **In-Stream**: `https://s.magsrv.com/v1/vast.php?idzone=XXXXXXXX&ex_av=1`
* **Popunder (ссылка)**: `https://s.pemsrv.com/v1/link.php?cat=&idzone=XXXXXXX&type=8&ex_av=1`
* **Прямая ссылка**: `https://s.zlinkt.com/v1/d.php?z=XXXXXXX&ex_av=`

## Как создать SFW-опыт

Следующее руководство объясняет, как создать «SFW-опыт», то есть как обеспечить показ только SFW-рекламы, когда пользователь еще не подтвердил возраст. Обратите внимание, что этот метод — лишь рекомендация, и вы можете изменить настройку, если вам нужно следовать другому пользовательскому сценарию.

Для такой настройки нам нужно создать отдельный файл скрипта. В этом примере мы назвали его `main.js`:

```javascript
function getCookie(name) {
  const value = `${document.cookie};`;
  const parts = value.split(`${name}=`);
  if (parts.length !== 2) return false;
  const token = parts.pop().split(";").shift();
  const format = token.split(".");
  if (format.length !== 3) return false;
  try {
    format.slice(0, 2).forEach(part => {
      const padded = part + "=".repeat((4 - part.length % 4) % 4);
      atob(padded.replace(/-/g, "+").replace(/_/g, "/"));
    });
    return true; 
  } catch (e) {
    return false; 
  }
}

function verifier(event, container) {
    window.AGEGO = window.AGEGO || function () {
	(AGEGO.e = AGEGO.e || []).push(arguments)
	};
     AGEGO('configure', {
	siteId: XXXXXXX, // Site ID вашего сайта в AgeGo
	autoBlur: true,
	verifyMode: 'inline', 
	requireAgeVerification: true, 
	allowDirectContinue: false, 
	overlay: {
		logo: 'wlogo.png', // Логотип вашего сайта
		theme: 'auto'
		},
	events: {
		onVerificationFlowEnd() {
			console.log("Проверка успешно завершена");
			window.location.reload();
			},
            	onVerificationFlowFailed() {
			console.log("Проверка завершилась с ошибкой с кодом:" + error);
			},
            	onAgeVerify() {
			console.log("Начало процесса проверки возраста");
			},
            	onDirectContinue() {
			console.log("Действие DirectContinue");
			},
            	onUnderageSkip() {
			console.log("Пропущено");
			},
            	onVerifiedBefore() {
			console.log("Проверено ранее");
			}
		}
	       }
	);

            var n = document.createEvent("Event");
            n.initEvent("DOMContentLoaded", !0, !0),
            document.dispatchEvent(n);
}

const TARGET_SELECTOR = '.main, .footer; // замените на классы, где клик будет перехватываться

function intercept(e) {
   const container = e.target.closest(TARGET_SELECTOR);
   if (!container) return; 
        
   e.preventDefault();
   e.stopImmediatePropagation(); 
   e.stopPropagation();

   verifier(e, container);
}
```

Этот файл содержит три функции: функцию для определения cookie, функцию для загрузки оверлея AgeGO и функцию для определения клика по определенным классам. В данном случае мы используем классы `.main` и `.footer`.

Затем в HTML вашего сайта вы разместите следующее:

```html
<!--Код от AgeGo-->
<script src="https://verifycdn.agego.com/v1/verify.js"></script>

<!-- Код с пользовательскими функциями-->
<script src="main.js"></script>

<!-- Код поставщика рекламы-->
<script async type="application/javascript" src="https://a.magsrv.com/ad-provider.js"></script>

<!-- Рекламные зоны. XXXX и YYYYY соответствуют ID класса и зоны, предоставленным в панели администратора. -->
<div id="videontv">
  <ins class="XXXXXX" data-zoneid="YYYYYY" data-block-ad-types="101"  data-ex_av="2"></ins> 
  <ins class="XXXXXX" data-zoneid="YYYYYY" data-block-ad-types="101"  data-ex_av="2"></ins> 
</div>

<!-- Код для показа рекламы с правильными параметрами-->
<script>
	const agegoValue = getCookie("agego_aver");
	if (agegoValue !== false)  {
               console.log("пользователь подтвержден");
        	   const adInsElements = document.querySelectorAll("ins");
        	   adInsElements.forEach(ins => {
            	ins.setAttribute("data-ex_av", "1");
            	ins.setAttribute("data-block-ad-types", "0");
        		});
    	   }
             else {
                 console.log("пользователь не подтвержден");
                 ['pointerdown', 'click', 'touchstart'].forEach(type => {
                 document.addEventListener(type, intercept, { capture: true });
                 });
             }
	(AdProvider = window.AdProvider || []).push({"serve": {}});
</script>
```

В этом примере, **реклама по умолчанию является SFW, пока пользователь не подтвердит свой возраст**. Когда пользователь нажимает на выбранные классы, о которых мы упоминали ранее, появится оверлей AgeGO. После того как пользователь подтвердит возраст, **страница загрузится нормально, и на этот раз реклама блокироваться не будет**.

***

Несколько замечаний по этому руководству:

1. Эта настройка опирается на `agego_aver` cookie, устанавливаемый AgeGO. Однако это можно изменить: вы можете задать значение в localStorage, используя события скрипта AgeGO, а затем решать, какую рекламу показывать, исходя из этого значения.
2. Оба метода сосредоточены только на показе рекламы. Миниатюры видео и другой контент сайта в этом коде не учитываются.
3. В настоящее время в AgeGO нет встроенного определения страны. Вам нужно самостоятельно решить, когда показывать этот код.

***

Если вы хотите настроить `data-ex_av` и `data-block-ad-types` на основе различных событий по вашему выбору, ознакомьтесь с нашими другими руководствами: [динамически блокировать типы рекламы](/tutorials/tutorials/publishers-tutorials/dynamically-block-ads-using-data-block-ad-types.md), [динамически блокировать типы рекламы в рекламных зонах in-stream](/tutorials/tutorials/publishers-tutorials/dynamically-block-ad-types-for-exoclick-in-stream-zones.md).

Наконец, для более общей интеграции рекламной зоны с решением для проверки возраста, пожалуйста, ознакомьтесь [с этим другим руководством.](/tutorials/tutorials/publishers-tutorials/serve-sfw-ads.md)


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://docs.exoclick.com/publishers/ru/exoclick-agego.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
