Loading
App di email in Marketing Cloud Engagement
Content syndication nell'API

Content syndication nell'API

Riferimento per informazioni sulla content syndication di Email Studio nell'API.

Comando HTTPGet

Scopo

Includere nel corpo del messaggio email per inviare il contenuto dell'URL specificato all'email al momento dell'invio. Se il contenuto è inserito nella cache, il sistema include la copia inserita nella cache; in caso contrario, accede all'URL. Utilizzare questo comando per includere contenuto specifico dell'abbonato in ogni email della campagna.

Se il syndicated content non è specifico dell'abbonato, utilizzare il comando Before;HTTPGet.

Sintassi

%%httpget "URL"%%

Argomenti

URL

Esempio
Esempio Chiamata di uno script con HTTPGet

Si supponga di avere più inserzioni sul proprio server Web e di usare uno script che ne sceglie una in modo casuale in modo che ogni abbonato riceva un'inserzione selezionata casualmente.

L'indirizzo del sito Web è https://www.example.com. Il nome file dello script scritto per generare pagine Web personalizzate è getdata.pl, che utilizza l'attributo Email Studio con etichetta Indirizzo email per determinare quale pagina visualizzare. Questo codice viene immesso nel corpo dell'email nel punto in cui viene visualizzato il contenuto della pagina Web:

%%httpget "https://www.example.com/cgi-bin/getdata.pl?id=[Email Address]"%%

Quando viene generata l'email, l'applicazione sostituisce l'indirizzo email dell'abbonato con l'URL (ad esempio, https://www.example.com/cgibin/getdat...heirDomain.com). Il contenuto visualizzato in quella posizione del corpo dell'email è la pagina Web specifica dell'indirizzo email dell'abbonato.

Anche se il tag di unione HTTPGet non richiede un output specifico dall'URL, si consiglia di includere una riga di stato standard HTTP/1.0 200 OK, una riga Content-Type: text/plain o Content-Type: text/html seguita da una riga vuota e quindi il contenuto del testo da inserire. Ad esempio, uno script Perl include codice simile a quello indicato di seguito:

print "HTTP/1.0 200 OK\r\n";

print "Content-Type: text/plain\r\n";

print "\r\n";

print "Welcome to the Northern Trail newsletter!";

Questa funzione funziona con HTTP sulla porta 80 e HTTPS sulla porta 443. Le assegnazioni di porte non standard causano errori.

Comando HTTPGetWrap

Scopo

Includere nei tag <a> dei link nel syndicated content per tracciare i link visualizzati nel contenuto inviato ai messaggi email con HTTPGet o con la funzione AMPscript TreatAsContent().

Nota
Nota solo i messaggi email di content syndication a livello abbonato richiedono l'uso di questo comando. Tutti gli altri messaggi email che utilizzano la content syndication includono automaticamente il codice necessario per tracciare i link.

Sintassi

<a href="httpgetwrap|URL">Click here</a>

Argomenti

URL

Comando Before;HTTPGet

Scopo

Includere nel corpo dell'email per inviare il contenuto dell'URL specificato una sola volta all'inizio di un invio email da includere in ogni email della campagna. Utilizzare questo comando per risparmiare tempo rispetto all'uso di HTTPGet quando non è necessario inviare il contenuto separatamente per ogni istanza dell'email. Questo comando si può usare anche per ottenere una notifica dell'inizio di un invio email. Se il syndicated content è specifico dell'abbonato, utilizzare il comando HTTPGet al posto di questo comando.

Sintassi

%%before;httpget "URL"%%

Argomenti

URL

Esempio
Esempio

Inclusione della stessa inserzione in ogni email

Si supponga di avere più inserzioni sul server Web ma di volere che ogni abbonato a un particolare invio di email visualizzi lo stesso messaggio. L'indirizzo del sito Web è https://www.example.com e il nome file dello script che invia l'inserzione è getmailad.pl. Questo codice viene immesso nel corpo dell'email nel punto in cui viene visualizzata l'inserzione:

%%before;httpget "https://www.example.com/cgi-bin/getmailad.pl"%%

Esempio
Esempio

Richiesta di notifica dell'inizio di un invio email

È stato scritto uno script che registra l'ora di inizio dell'invio di email. L'indirizzo del sito Web dove si trova lo script è https://www.example.com e il nome file dello script è recordevent.pl. Inserire questo codice all'inizio del corpo del messaggio email:

%%before;httpget "https://www.example.com/cgi-bin/recordevent.pl"%%

Il sistema esegue lo script al momento dell'elaborazione dell'invio email. Questo comando non aggiunge contenuti al corpo dell'email. Il comando before;httpget viene elaborato al di fuori del contesto dell'abbonato perché recupera

contenuti utilizzati nell'email per tutti gli abbonati. Di conseguenza, l'unica personalizzazione valida per la stringa di query URL è la sostituzione di JobID. Ad esempio:

%%before;httpget "https://www.example.com/cgibin/record....pl?id=[jobid]"%%

Comando After;HTTPGet

Scopo

Includere alla fine di una definizione email per eseguire una sola volta un'azione alla fine di una campagna email. Questo comando non include contenuti nel corpo dell'email. Utilizzare questo comando per informare il proprio sistema CRM o CMS che l'invio email è completato.

Nota
Nota questa chiamata non può essere utilizzata con gli invii di email attivati, poiché il processo di invio di email attivato non si interrompe dopo l'invio del messaggio.

Sintassi

%%after;httpget "URL"%%

Argomenti

URL

Esempio
Esempio

Richiesta di notifica del completamento di un invio email

L'utente ha scritto uno script per registrare il completamento di un invio email.

L'indirizzo del sito Web dove si trova lo script è https://www.example.com e il nome file dello script è logsentmessage.pl. Inserire il codice seguente alla fine del corpo del messaggio email:

%%after;httpget "https://www.example.com/cgi-bin/logsentmessage.pl"%%

Il sistema esegue lo script alla fine dell'invio dell'email. Questo comando non aggiunge contenuti al corpo dell'email.

Il comando after;httpget viene elaborato al di fuori del contesto dell'abbonato perché viene richiamato una volta al termine dell'invio a tutti gli abbonati. Di conseguenza, l'unica personalizzazione valida per la stringa di query URL è la sostituzione di JobID. Ad esempio:

%%after;httpget "https://www.example.com/cgi-bin/logse...pl?jid=[jobid]"%%

Opzioni di gestione delle restituzioni vuote

La chiamata HTTPGET può avere esito positivo senza errori ma senza restituire contenuti. Per impostazione predefinita, il sistema presuppone che non siano presenti syndicated content pertinenti al contesto dell'email e continua l'invio dell'email. È possibile ignorare questo comportamento predefinito impostando un flag facoltativo.

Sintassi

%%httpget[;EmptyReturnHandlingOption] "URL"%%

Oppure

%%before;httpget[;EmptyReturnHandlingOption] "URL"%%

Valori validi

  • 0 (o nessuno): continuare la normale elaborazione
  • 1: interrompere l'elaborazione e impostare lo stato del processo su errore
  • 2 (per una chiamata a livello abbonato): ignorare l'abbonato e continuare l'invio
  • 2 (per una chiamata di livello prima dell'invio): interrompere l'invio e impostare lo stato del processo su errore

Questo flag viene ignorato per il comando After;HTTPGet.

Esempio
Esempio

Si supponga di avere più inserzioni sul proprio server Web e di usare uno script che ne sceglie una in modo casuale in modo che ogni abbonato riceva un'inserzione selezionata casualmente. Se lo script non restituisce alcuna inserzione, si desidera che il sistema ignori l'abbonato e continui con il resto dell'invio.

L'indirizzo del sito Web è https://www.example.com e il nome file dello script è ad.pl e si trova in cgi-binfolder. Inserire il codice seguente nel corpo dell'email nel punto in cui viene visualizzata l'inserzione:

%%httpget ; 2 "https://www.example.com/cgi-bin/ad.pl"%%

Gestione degli errori

La miglior difesa in caso di errori relativi alla content syndication è una buona strategia di attacco. Utilizzando AMPscript è possibile pre-convalidare i valori da utilizzare per la content syndication. Se la pagina richiede un valore per la stringa di query e genera errori in caso di mancata ricezione, è possibile controllare il valore prima che venga effettuata la chiamata.

Potenzialmente pericoloso

%%httpget "http://adomain.com/newsletter/album?...umId=[albumid]"%%

In questa chiamata di content syndication, albumid non deve restituire alcun contenuto. Se non fa parte della richiesta, restituisce un errore del server.

Approccio migliore

%%[ if length(albumid) > 0 then ]%% %%httpget "http://adomain.com/newsletter/album?...umId=[albumid]"%% %%[ endif ]%%

Questo approccio utilizza Manuscript per convalidare i dati prima di eseguire la chiamata di content syndication. Non impedisce errori isolati del server Web, ma evita problemi correlati ai dati.

 
Caricamento
Salesforce Help | Article