> For the complete documentation index, see [llms.txt](https://docs.agnosticdata.ai/agnosticdata.ai-or-documentation/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.agnosticdata.ai/agnosticdata.ai-or-documentation/use-cases/for-creatives.md).

# For Creatives

### Criando campos para um data view

Vamos lá pessoa!&#x20;

Muitas vezes precisamos de um campo para representar uma informação extraída de outra, por exemplo, um expressão regular que retornar um verdadeiro ou false se determinada informação existir, uma computação para retornar um valor monetário ou número ou mesmo retornar um valor de uma URL.&#x20;

#### Desafio&#x20;

Neste post, o desafio será capturar uma informação de uma URL. Dado que temos o campo relative\_view e que esse campo contém o caminho relativo de uma página acessada em seu site, queremos capturar a informação que agrupa essas páginas em categoria.&#x20;

```
relative_view
/seguranca/mulher-que-foi-flagrada-andando-nua-na-br-280-tirou-a-roupa-em-centro-de-recreacao-infantil-em-jaragua-do-sul
```

{% hint style="info" %}

Lembre-se que é possível passar aos eventos do AgnosticData a variável event.content\_category. Essa variável é automaticamente preenchida sempre que existir em sua página o meta atributo "agnostic\_content\_category", conforme o exemplo a seguir onde temos a categoria "Hidráulica".&#x20;

````
// Some code
```html
<meta name="agnostic_content_category" 
content="Hidráulica" charset="UTF-8">
```
````

{% endhint %}

**Obs**: Aprenda mais sobre personalização de meta-tags para capturas automáticas [clicando aqui](/agnosticdata.ai-or-documentation/fundamentals/conceitos-tecnicos.md#id-2-personalizacao-comece-pelas-meta-tags).&#x20;

Dado que não vamos esperar a implementação da meta-tag em nossa página, podemos partir para um campo personalizado.&#x20;

**Passo 1: Acesso o painel discover no seu elasticsearch**

<figure><img src="/files/y6FD6JuQmwKXtMkGPemj" alt=""><figcaption></figcaption></figure>

**Passo 2: Vamos adicionar um novo campo**

Clique em "**Add a field to this data view**". Estamos utilizando o data view "events\_all", no seu caso podem existir outros. Sinta-se livre para escolher o data-view apropriado.&#x20;

{% hint style="warning" %}
Existem data views que são específicos de determinados eventos e os campos que o algoritmo necessita pode não existir, logo para evitar erros de campos runtime (ou campos em tempo de execução) é necessário colocar testes como no exemplo a seguir, por exemplo: containsKey e doc\['YOUR\_FIELD'].empty.

````javascript
```painless
if (doc.containsKey('relative_view.keyword') 
&& !doc['relative_view.keyword'].empty) 
```
````

{% endhint %}

<figure><img src="/files/rfJo5QK8fWzTYFOQWy9J" alt=""><figcaption></figcaption></figure>

**Passo 3: Implementar o código e contornar os erros (converse com o GPT)**

A dica é usar o prompt do ChatGPT para gerer esse código.&#x20;

{% hint style="success" %}
Você pode consultar uma consulta como essas diretamente no ChatGPT. Basta usar o prompt:&#x20;

*"Tenho um campo chamado **relative\_view** que contém links relativos, como /economia/brasil-registra-superavit-primario-positivo-pela-primeira-vez-desde-2013, onde economia é a categoria. Gostaria de **criar um script de runtime** no Elasticsearch que verifique se o campo **relative\_view*** ***existe** e, **se existir,** extraia e retorne a categoria, que é a primeira parte do caminho após a barra inicial.* Retorne apenas o código para copiar e colocar no input da interface, pois não foi usar o devtools.*"*
{% endhint %}

Dado que recebemos a resposta do chatGPT temos algo como a imagem a seguir onde em source temos o script que iremos copiar.&#x20;

<figure><img src="/files/hfy9Lvu6sKz4YBuVd1Pt" alt=""><figcaption></figcaption></figure>

Neste trecho, vamos selecionar tudo que está dentro de source, das aspas triplas (da imagem acima) e sem as aspas vamos colocar em **"Set Value"**.

<figure><img src="/files/eO0jAwLgG1taVm5KOyNA" alt=""><figcaption></figcaption></figure>

Ao final temos neste exemplo o campo **category\_content** como um campo adicional ao *data view* que contém apenas o conteúdo desejado para classificar as urls em categorias, neste exemplo.&#x20;

**Note:** ao verificar os dados percebemos que todas as urls de conteúdo são concebidas seguindo um mesmo padrão o que nos permitiu criar a instrução contemplada neste exemplo.&#x20;

**Passo 4: Gerar os insights com os gráficos.**&#x20;

<figure><img src="/files/lBzyuigQB5UyrUFUSnsW" alt=""><figcaption></figcaption></figure>
