JavaScript lato client

Esempio di una finestra di dialogo in cui all'abbonato viene chiesto di collegare l'abbonamento

Con il collegamento degli abbonamenti, il codice JavaScript lato client è l'unico modo per creare una nuova associazione tra un PPID e l'Account Google di un lettore. Su una pagina configurata, il lettore visualizza una finestra di dialogo in cui gli viene chiesto di collegare il suo abbonamento. Dopo aver fatto clic sul pulsante "Continua con Google", il lettore può scegliere un account a cui collegarsi e, al completamento, essere reindirizzato alla pagina configurata.

L'associazione del PPID con l'account del lettore viene eseguita tramite il metodo linkSubscription in swg.js. L'utilizzo è simile alla precedente funzionalità di collegamento degli account (esempio), ma invece di passare una promessa, il metodo accetta un oggetto contenente il PPID.

Esempi di codice

Questi esempi di codice lato client illustrano come avviare un collegamento, come appare una risposta valida e, facoltativamente, come utilizzare eventManager di swg.js per ascoltare gli eventi di analisi e indirizzarli di conseguenza.

Avviare la finestra di dialogo del collegamento degli abbonamenti

const result = await subscriptions.linkSubscription({publisherProvidedId:6789})

Esempio di risposta

Le risposte valide da un account collegato correttamente contengono sia il PPID usato nel link sia uno stato success booleano.

console.log(result) //{publisherProvidedId: 6789, success: true}

Il collegamento degli abbonamenti non richiede l'utilizzo di cookie di terze parti o di una sessione Google attiva per il lettore. Questo consente di passare in modo flessibile al collegamento in qualsiasi momento nell'esperienza del lettore, non solo dopo un acquisto. Se un lettore non ha eseguito l'accesso a un Account Google, gli viene offerta l'opportunità di farlo nell'ambito della procedura.

Esempio lato client completo

<script
  async
  type="application/javascript"
  subscriptions-control="manual"
  src="https://news.google.com/swg/js/v1/swg.js">
</script>

<script>

  function linkSubscription(ppid) {
    self.SWG.push(async (subscriptions) => {
      try {
        const result = await subscriptions.linkSubscription({
          publisherProvidedId: ppid,
        })
        console.log(result)
      } catch(e) {
        console.log(e)
      }
    })
  }

  document.addEventListener('DOMContentLoaded', function () {
    (self.SWG = self.SWG || []).push(subscriptions => {
      subscriptions.init("PUBLICATION_ID");

      //Configure the event manager for analytics integration
      subscriptions.getEventManager().then(manager => {
        manager.registerEventListener((event) => {
            // Add code here to send the event to your analytics
            // sendToAnalytics(event);
          console.log(event);
        });
      });
    });

    document
      .querySelector("SELECTOR")
      .addEventListener('click', function(){
        linkSubscription(PPID)
      })
  });
</script>

Creare un ID client OAuth

Sebbene il client OAuth non sia richiesto per il collegamento degli abbonamenti, può essere utilizzato per creare la lista consentita dei domini autorizzati per il tuo progetto. I domini autorizzati sono un elenco di domini da cui il codice JavaScript lato client è autorizzato a effettuare chiamate. È probabile che la tua pubblicazione abbia già un ID client OAuth configurato nel Centro editori per l'utilizzo con swg.js.

Test

Per testare l'implementazione lato client del collegamento degli abbonamenti, il codice deve essere eseguito da un server con un'origine JavaScript autorizzata.

  1. Per l'uso in produzione, le origini autorizzate possono provenire sia da un client OAuth configurato sia da un elenco di domini verificati nelle impostazioni della pubblicazione nel Centro editori.
  2. Per l'uso temporaneo o in fase di sviluppo, con un dominio non verificabile (ad esempio localhost o un server non pubblico), il dominio deve essere elencato nel client OAuth configurato.

Risolvere gli errori

Il problema più comune durante il test del codice JavaScript lato client è la ricezione di un errore 403 - Not Authorized quando si prova a eseguire il codice. Per risolvere il problema, assicurati di eseguire il codice JavaScript da un dominio convalidato nel Centro editori o di eseguire il codice su un host che si trova nelle origini js autorizzate del client OAuth collegato.