# 5️⃣ Modalità landing page

Nel caso in cui l’Operatore abbia deciso di aderire al Programma attraverso il proprio sito web e/o e-commerce tramite il *Modello landing page*, deve comunicare:

* l’indirizzo della pagina web (URL) scelta dall’Operatore per la fruizione delle opportunità da parte dei Beneficiari;
* il relativo *Referer*, ovvero una stringa testuale di massimo 20 caratteri, anch'essa predeterminata dall’Operatore e assegnata alla singola opportunità.

{% hint style="warning" %}
La pagina dell’opportunità dev’essere coerente con la descrizione esposta in App IO e non contenere un insieme di iniziative eterogenee che potrebbero creare difficoltà di navigazione ai Beneficiari e contestazioni da parte degli stessi.
{% endhint %}

Gli Operatori che scelgono questo modello si impegnano a creare “landing” nelle quali sia chiaramente identificato che l'opportunità è riferibile al Programma CGN (innanzitutto con utilizzo del relativo logo, vedasi la sezione dedicata ai Brand) e che siano curate nel messaggio e nella definizione dei contenuti in modo tale da essere coerenti con la natura e lo spirito del Programma. Ad esempio, opportunità diverse dovrebbero essere associate a landing page diverse ed appositamente dedicate per una maggiore sicurezza e una maggiore chiarezza di intenti.

Il parametro *Referer* deve essere controllato ed accettato dai sistemi dell’Operatore per tutta la durata delle opportunità erogate ai Beneficiari.

L’identificazione del Beneficiario da parte dell’Operatore avviene secondo questi passaggi:

* Il Beneficiario accede alla sua CGN nell’App IO e seleziona l’Operatore di suo interesse nella lista esercenti visualizzata;
* il Beneficiario seleziona l’opportunità di suo interesse e preme sul pulsante "Vai all'opportunità";
* la landing page configurata dall’Operatore per la fruizione dell’opportunità viene aperta in webview valorizzando il custom header HTTP **`X-PagoPa-CGN-Referer`**.

Il controllo del relativo *header* può essere effettuato sia a livello infrastrutturale (Apache/Nginx) sia applicativo di back-end della pagina web dell’Operatore. Di seguito vengono riportati alcuni esempi implementativi per il check del *Referer* in diversi linguaggi:

* [PHP](https://stackoverflow.com/questions/541430/how-do-i-read-any-request-header-in-php)
* [JAVA](https://mkyong.com/java/how-to-get-http-request-header-in-java/)
* [NodeJ](https://www.codegrepper.com/code-examples/javascript/expressjs+custom+header)[s](https://www.codegrepper.com/code-examples/javascript/expressjs+custom+header)
* [Wordpress](https://wordpress.stackexchange.com/questions/288865/how-to-get-value-of-custom-http-header)
* [Nginx](https://www.nginx.com/resources/wiki/start/topics/examples/headers_management/)
* [Apache](https://serverfault.com/questions/751697/how-to-read-specific-character-out-of-request-header-in-apache-http-config)

{% hint style="info" %}
Il controllo dei nomi degli header NON deve essere effettuato in maniera *case-sensitive* (non deve essere effettuata distinzione tra lettere maiuscole e minuscole)
{% endhint %}

## Esperienza utente

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

<figure><img src="/files/sOqp2g2n9LAq9VTCYMC0" alt=""><figcaption><p><mark style="color:purple;">Esperienza d’uso per ricercare il codice sconto di un Operatore che aderisce all’iniziativa tramite Modello landing page</mark></p></figcaption></figure>


---

# Agent Instructions: 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:

```
GET https://docs.pagopa.it/carta-giovani-nazionale/le-opportunita/le-modalita-di-riconoscimento-e-validazione-delle-opportunita/modalita-landing-page.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
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.
