After completing this unit, you’ll be able to: / Après avoir terminé cette unité, vous pourrez:
Use AMPscript, SSJS, and GTL at the most appropriate times. /Utilisez AMPscript, SSJS et GTL aux moments les plus appropriés.
Troubleshoot your programmatic languages. /Dépannez vos langages de programmation.
Preserve View As A Web Page functionality for your messages. /Conservez la fonctionnalité Afficher en tant que page Web pour vos messages.
Now that you’ve been properly introduced to the different Marketing Cloud programmatic languages, you can decide when to use these tools in your development process. /Maintenant que vous avez été correctement familiarisé avec les différents langages de programmation Marketing Cloud, vous pouvez décider quand utiliser ces outils dans votre processus de développement.
Each language offers different benefits and can be more useful than the others in certain situations. But first, let’s look at some best practices for all the languages. / Chaque langue offre des avantages différents et peut être plus utile que les autres dans certaines situations. Mais d’abord, regardons quelques bonnes pratiques pour toutes les langues.
All Languages / Toutes les langues
No matter which language you use, Marketing Cloud offers send preview and markup validation in the app. / Quelle que soit la langue que vous utilisez, Marketing Cloud propose d’envoyer un aperçu et une validation du balisage dans l’application.
Always test your scripts before placing them in a send to make sure that everything works. / Testez toujours vos scripts avant de les placer dans un envoi pour vous assurer que tout fonctionne.
Marketing Cloud prevents content with errors from sending, but you also want to make sure that you’re getting the results you want. / Marketing Cloud empêche l’envoi de contenu contenant des erreurs, mais vous devez également vous assurer d’obtenir les résultats souhaités.
Perform test sends before deploying any new message or activity. / Effectuez des tests d’envoi avant de déployer tout nouveau message ou activité.
The NotSent tracking extract provides information on email messages that didn’t send, including detailed reasons for the causes that prevented the send. / L’extrait de suivi NotSent fournit des informations sur les e-mails qui n’ont pas été envoyés, y compris les raisons détaillées des causes qui ont empêché l’envoi.
Use this information to better refine your sends. / Utilisez ces informations pour affiner vos envois.
Because some AMPscript and SSJS functions allow access to API functions, make sure that the user you test and generate your scripts with has the appropriate permissions to interact with the API before you continue. / Étant donné que certaines fonctions AMPscript et SSJS autorisent l’accès aux fonctions de l’API, assurez-vous que l’utilisateur avec lequel vous testez et générez vos scripts dispose des autorisations appropriées pour interagir avec l’API avant de continuer.
Contact your Marketing Cloud admin for help if needed. / Contactez votre administrateur Marketing Cloud pour obtenir de l’aide si nécessaire.
Email messages offer a View as a Web Page option to show HTML content outside of an email client. / Les messages électroniques offrent une option Afficher en tant que page Web pour afficher le contenu HTML en dehors d’un client de messagerie.
Because programmatic languages allow dynamic content, though, a forwarded email or the same email message sent more than once can reference an earlier version of the email message and not reflect any changes you may have made. / Étant donné que les langages de programmation autorisent le contenu dynamique, un e-mail transféré ou le même e-mail envoyé plusieurs fois peut référencer une version antérieure de l’e-mail et ne pas refléter les modifications que vous avez apportées.
The web page also loads information dynamically, instead of showing a snapshot of the actual sent message. / La page Web charge également les informations de manière dynamique, au lieu d’afficher un instantané du message réellement envoyé.
To avoid this situation, reference the BatchID of the send in your scripts to ensure the correct email message is displayed as a web page. / Pour éviter cette situation, référencez le BatchID de l’envoi de vos scripts pour vous assurer que le message électronique correct est affiché sous forme de page Web.
AMPscript
AMPscript offers the most access to Marketing Cloud functionality, especially email messages. / AMPscript offre le plus d’accès aux fonctionnalités de Marketing Cloud, en particulier les e-mails.
It also offers a tight integration with the SOAP Web Service API. / Il offre également une intégration étroite avec l’API de service Web SOAP.
If you take the time to learn the intricacies of this language, you can accomplish a great deal of Marketing Cloud functionality. / Si vous prenez le temps d’apprendre les subtilités de ce langage, vous pouvez accomplir de nombreuses fonctionnalités de Marketing Cloud.
AMPscript works best with subscriber list and data extensions stored in Marketing Cloud. / AMPscript fonctionne mieux avec la liste des abonnés et les extensions de données stockées dans Marketing Cloud.
A large part of AMPscript involves pulling information from data extensions, and that usually involves Lookup() or LookupRows() functions. /Une grande partie d’AMPscript implique d’extraire des informations des extensions de données, ce qui implique généralement les fonctions Lookup () ou LookupRows ().
When you’re using these functions, remember that each call to a data extension requires time and processing power, so get as much data as possible with each call. / Lorsque vous utilisez ces fonctions, n’oubliez pas que chaque appel à une extension de données nécessite du temps et de la puissance de traitement, afin d’obtenir autant de données que possible avec chaque appel.
Instead of several Lookup() calls for multiple fields, use a single LookupRows() request to pull back entire records and get data from there. / Au lieu de plusieurs appels Lookup () pour plusieurs champs, utilisez une seule demande LookupRows () pour retirer des enregistrements entiers et obtenir des données à partir de là.
AMPscript also requires some functionality to be enabled before you can use it within an account. / AMPscript nécessite également l’activation de certaines fonctionnalités avant de pouvoir l’utiliser dans un compte.
For example, you can’t use AttachFile() unless that feature is activated for your account. /Par exemple, vous ne pouvez pas utiliser AttachFile () à moins que cette fonctionnalité ne soit activée pour votre compte.
Even then, be careful when adding attachments to messages. / Même dans ce cas, soyez prudent lorsque vous ajoutez des pièces jointes aux messages.
Some spam filters may block messages with attachments, and a send with a large attachment can cost time and processing power. / Certains filtres anti-spam peuvent bloquer les messages avec des pièces jointes, et un envoi avec une grande pièce jointe peut coûter du temps et de la puissance de traitement.
Review the documentation for a function and make sure your account can use it before including it in your activities. / Consultez la documentation d’une fonction et assurez-vous que votre compte peut l’utiliser avant de l’inclure dans vos activités.
SSJS
SSJS offers the familiarity of JavaScript with the functionality of most AMPscript functions. / SSJS offre la familiarité de JavaScript avec les fonctionnalités de la plupart des fonctions AMPscript.
That functionality includes integration with the SOAP Web Service API. / Cette fonctionnalité comprend l’intégration avec l’API du service Web SOAP.
If the data you want to use in Marketing Cloud requires arrays or comes in JSON form, SSJS gives you easy access to that data. / Si les données que vous souhaitez utiliser dans Marketing Cloud nécessitent des tableaux ou se présentent sous forme JSON, SSJS vous donne un accès facile à ces données.
Remember to use Core functions only with landing pages and apps for the best performance. / N’oubliez pas d’utiliser les fonctions de base uniquement avec des pages de destination et des applications pour de meilleures performances.
Platform functions can better handle messages and other send-time activities. / Les fonctions de la plateforme peuvent mieux gérer les messages et autres activités d’envoi.
SSJS also offers enhanced error handling functionality, such as try catch blocks. / SSJS offre également une fonctionnalité améliorée de gestion des erreurs, comme les blocs try catch.
If you require these checks, implement SSJS in your messages. / Si vous avez besoin de ces vérifications, implémentez SSJS dans vos messages.
GTL
To create lightweight templates for different types of messages, GTL has you covered. / Pour créer des modèles légers pour différents types de messages, GTL vous a couvert.
The similarity to Handlebars.js and Moustache.js libraries make the language familiar, and you can create personalized templates with just a few tags. / La similitude avec les bibliothèques Handlebars.js et Moustache.js rend le langage familier et vous pouvez créer des modèles personnalisés avec seulement quelques balises.
GTL can also access JSON data stored in data extensions or provided at send time. / GTL peut également accéder aux données JSON stockées dans des extensions de données ou fournies au moment de l’envoi.
GTL can work with AMPscript or SSJS, or you can use it on its own. / GTL peut fonctionner avec AMPscript ou SSJS, ou vous pouvez l’utiliser seul.
Wrapping It All Up / Tout emballer
Your messages, landing pages, and other assets all benefit from expanded functionality and personalization. / Vos messages, pages de destination et autres éléments bénéficient tous d’une fonctionnalité et d’une personnalisation étendues.
Use these languages to give your subscribers exactly what they need. / Utilisez ces langues pour donner à vos abonnés exactement ce dont ils ont besoin.
You can also help yourself by automating a lot of common tasks that can otherwise take a lot of time and effort. / Vous pouvez également vous aider en automatisant un grand nombre de tâches courantes qui peuvent autrement prendre beaucoup de temps et d’efforts.
Finally, the Salesforce StackExchange is a great source of help when troubleshooting your scripts. / Enfin, Salesforce StackExchange est une excellente source d’aide lors du dépannage de vos scripts.
Search for previous issues and post if you think you’ve found something different than anybody has discovered before. / Recherchez les numéros précédents et publiez si vous pensez avoir trouvé quelque chose de différent de ce que quiconque a découvert auparavant.
Chances are that somebody has even been down that trail before! / Il y a de fortes chances que quelqu’un ait déjà emprunté cette piste auparvant!
After completing this unit, you’ll be able to: / Après avoir terminé cette unité, vous pourrez:
Introduce the fundamentals and syntax for Guide Template Language (GTL). / Présentez les principes fondamentaux et la syntaxe du Guide Template Language (GTL).
Create data-driven message templates using data sources, templates, and tags. / Créez des modèles de messages basés sur les données à l’aide de sources de données, de modèles et de balises.
Work with GTL examples and best practices. / Travaillez avec des exemples et des meilleures pratiques GTL.
Guide Template Language is Marketing Cloud’s newest programmatic language, and it’s customized to work within messages to provide personalized content. / Guide Template Language est le langage de programmation le plus récent de Marketing Cloud, et il est personnalisé pour fonctionner dans les messages afin de fournir un contenu personnalisé.
GTL takes data from specified data sources and applies it within templates used to render the content. / GTL prend les données des sources de données spécifiées et les applique dans les modèles utilisés pour rendre le contenu.
Those templates contain tags that determine where to insert data. / Ces modèles contiennent des balises qui déterminent où insérer les données.
If you’ve used templating libraries like Mustatche.js or Handlebars.js, GTL will look familiar. / Si vous avez utilisé des bibliothèques de modèles comme Mustatche.js ou Handlebars.js, GTL vous semblera familier.
In fact, GTL supports templates from those sources, but Marketing Cloud provides the data instead of scripts. / En fait, GTL prend en charge les modèles de ces sources, mais Marketing Cloud fournit les données au lieu des scripts.
GTL Syntax / Syntaxe GTL
Let’s get started by looking at some tags. / Commençons par regarder quelques balises.
Some of the tags are so simple that we just call them simple tags. / Certaines balises sont si simples que nous les appelons simplement de simples balises.
Want to include someone’s first name in an email? Use this tag. / Vous souhaitez inclure le prénom de quelqu’un dans un e-mail? Utilisez cette balise.
{{FirstName}}
You can also add prefixes and suffixes to a tag to identify what kind of tag you’re putting in a template. / Vous pouvez également ajouter des préfixes et des suffixes à une balise pour identifier le type de balise que vous mettez dans un modèle.
Prefixes include these characters. / Les préfixes incluent ces caractères.
Tag Type
Prefix Symbol
Section Tag
#
Function or Set Delimiter Tag
=
Inverted Section Tag
^
Comment Tag
!
Partial Tag
>
Block Helper
#=
Data
{
Suffixes include these characters. / Les suffixes incluent ces caractères.
Tag Type
Suffix Symbol
Close Data Tag
}
Close Set Delimiter Tag
=
You can also create block tags in GTL. / Vous pouvez également créer des balises de bloc dans GTL.
This example shows a block tag nested inside another block tag, along with some examples of simple tags that bring data in from a data extension containing product information. / Cet exemple montre une étiquette de bloc imbriquée dans une autre étiquette de bloc, ainsi que quelques exemples de balises simples qui importent des données d’une extension de données contenant des informations sur le produit.
Notice how the hashtags at the beginning of the block tags indicate section tags. / Remarquez comment les hashtags au début des balises de bloc indiquent les balises de section.
Use block tags to create and use data sources, access helper functions, and provide template logic. / Utilisez des balises de bloc pour créer et utiliser des sources de données, accéder aux fonctions d’assistance et fournir une logique de modèle.
Speaking of helper functions, GTL handles common functions like Each, If, Switch, Unless, and With. / En parlant de fonctions d’assistance, GTL gère des fonctions courantes telles que Each, If, Switch, Unless et With.
For example, this If function provides text about whether an order is ready or not. / Par exemple, cette fonction If fournit un texte indiquant si une commande est prête ou non.
{{#if order=="1234"}}Your order is ready{{.else}}Your order is not ready{{/if}}
Blocks and Slots/Blocs et emplacements
GTL templates use blocks and slots to organize data for messages. / Les modèles GTL utilisent des blocs et des emplacements pour organiser les données des messages.
This example shows a sample HTML email message. / Cet exemple montre un exemple de message électronique HTML.
<html>
<body>
<style type="text/css">
.tftable {font-size:12px;color:#333333;width:100%;border-width: 1px;border-color: #ebab3a;border-collapse: collapse;}
.tftable th {font-size:12px;background-color:#e6983b;border-width: 1px;padding: 8px;border-style: solid;border-color: #ebab3a;text-align:left;}
.tftable tr {background-color:#ffffff;}
.tftable td {font-size:12px;border-width: 1px;padding: 8px;border-style: solid;border-color: #ebab3a;}
</style>
<table class="tftable" border="1">
<tr>
<th colspan="2">TITLE OF MESSAGE</th>
</tr>
<tr>
<td rowspan="3">
{{.slot slot1}}
{{.block mytext+imageblock textimage}}Block Goes Here
<br />
{{.default}}I am a Text and Image Block - Hello World!{{/default}}
{{/block}}
{{/slot}}
</td>
<td>
{{.slot slot2}}
{{.default}}This slot is available for anything{{/default}}
{{/slot}}
</td>
</tr>
<tr>
<td>
{{.slot slot3}}
{{.block mytextblock text}}Block Goes Here
<br />
{{.default}}I am a Text only Block - Hello World!{{/default}}
{{/block}}
{{/slot}}
</td>
</tr>
<tr>
<td>
{{.slot slot4}}
{{.block myimageblock image}}Block Goes Here
<br />
{{.default}}I am an Image only Block - Hello World!{{/default}}
{{/block}}
{{/slot}}
</td>
</tr>
</table>
</body>
</html>
The rendered template looks like this. / Le modèle rendu ressemble à ceci.
Blocks and slots can contain meta information, default content, and content to render. / Les blocs et les emplacements peuvent contenir des méta-informations, du contenu par défaut et du contenu à restituer.
Blocks also contain JSON objects used to provide data during rendering. / Les blocs contiennent également des objets JSON utilisés pour fournir des données lors du rendu.
Dataobject and Datasource
All the data you’re pulling into you template has to come from somewhere, right? / Toutes les données que vous insérez dans votre modèle doivent provenir de quelque part, non?
To replace tags with personalized data within a template, GTL draws information from either a dataobject or a datasource. So what’s the difference? / Pour remplacer les balises par des données personnalisées dans un modèle, GTL tire des informations d’un objet de données ou d’une source de données. Alors, quelle est la différence ?
Dataobjects must be declared before referencing them, but you can use that information anywhere within your template. / Les objets de données doivent être déclarés avant de les référencer, mais vous pouvez utiliser ces informations n’importe où dans votre modèle.
Datasources appear within tags in the template and provide data for only that scope. / Les sources de données apparaissent dans les balises du modèle et fournissent des données uniquement pour cette étendue.
Dataobjects / Objets de données
Dataobjects must include a name, a type value (inline, variable, or list), and a maxRows integer value. / Les objets de données doivent inclure un nom, un type de valeur (en ligne, variable ou liste) et une valeur entière maxRows.
This example includes a dataobject that places product information inside a personalized template. / Cet exemple inclut un objet de données qui place les informations produit dans un modèle personnalisé.
{{.dataobject RecProds type=list maxRows = 2}}
{{.data}}
{
"target" : "name:Products",
"filter" : "Product_Category == Category_Preference"
}
{{/data}}
{{/dataobject}}
{{!if data is found we'll execute the code in the Sections tag}}
{{#RecProds}}
{{First_Name}} {{Last_Name}}, based on your preference of {{Category_Preference}}, we suggest the following products…
SKU: {{sku}}
Product Name: {{Product_Name}}
<img src="{{Thumbnail_URL}}" alt="" />
{{/RecProds}}
{{!if no data is found we'll execute the code in the Inverted Sections tag}}
{{^RecProds}}
{{First_Name}} {{Last_Name}}, we do not have any product recommendations for you at this time.
{{/RecProds}}
Datasources / Source d’information
Like dataobjects, datasources require a name and maxRows value. / Comme les objets de données, les sources de données nécessitent un nom et une valeur maxRows.
You can also specify a Boolean global value that sets values back to the parent context after the block processes. / Vous pouvez également spécifier une valeur booléenne globale qui redéfinit les valeurs dans le contexte parent après les processus de bloc.
You can also specify five types of blocks. / Vous pouvez également spécifier cinq types de blocs.
query
inline
list
variable
nested
Datasources allow for nested information. / Les sources de données permettent des informations imbriquées.
This example shows information stored in an AMPscript variable (that’s right, GTL accepts information from AMPscript and SSJS!) and uses it to populate subscriber information / Cet exemple montre les informations stockées dans une variable AMPscript (c’est vrai, GTL accepte les informations d’AMPscript et SSJS!) Et les utilise pour remplir les informations d’abonné.
To test this example, change the email addresses to real addresses to pass validation /Pour tester cet exemple, changez les adresses e-mail en adresses réelles pour passer la validation
Partials / Partiels
If you need to pull information in from your Portfolio or Content Builder, partials give you a handy shortcut. / Si vous devez extraire des informations de votre portfolio ou de votre générateur de contenu, les partiels vous offrent un raccourci pratique.
Just specify a key, ID, or name value inside a {{>}} tag, and you’re ready to go. / Spécifiez simplement une clé, un ID ou une valeur de nom dans une balise {{>}}, et vous êtes prêt à partir.
This tag pulls in a content area specified by a key. / Cette balise extrait une zone de contenu spécifiée par une clé.
{{>id:purchased_shoes refresh}}
The optional refresh tag forces the content to refresh at send time. / La balise de rafraîchissement facultative force le contenu à se rafraîchir lors de l’envoi.
This example pulls in information from a variable. / Cet exemple extrait des informations d’une variable.
{{>var:contentField}}
And this example syndicates content from a website. / Et cet exemple syndique le contenu d’un site Web.
{{>get:http://www.example.com}}
Now that you know more about Marketing Cloud’s programmatic languages, let’s cover how and when to use them. / Maintenant que vous en savez plus sur les langages de programmation de Marketing Cloud, voyons comment et quand les utiliser.
After completing this unit, you’ll be able to: /Après avoir terminé cette unité, vous pourrez:
Review the fundamentals and syntax for server-side JavaScript (SSJS). / Passez en revue les principes fondamentaux et la syntaxe du JavaScript côté serveur (SSJS).
Know when to use Core and Platform SSJS libraries. / Savoir quand utiliser les bibliothèques Core et Platform SSJS.
Implement SSJS functions and operators. / Implémentez les fonctions et les opérateurs SSJS.
Work with SSJS examples and best practices. / Utilisez des exemples et des meilleures pratiques SSJS.
While Marketing Cloud offers an integrated programmatic language with AMPscript, it’s not always convenient to learn an entirely new way of interacting with a platform. / Bien que Marketing Cloud propose un langage de programmation intégré avec AMPscript, il n’est pas toujours pratique d’apprendre une toute nouvelle façon d’interagir avec une plate-forme.
To help developers get started more quickly, Marketing Cloud put together server-side JavaScript (SSJS). / Pour aider les développeurs à démarrer plus rapidement, Marketing Cloud a mis en place du JavaScript côté serveur (SSJS).
The syntax and format should look familiar to web developers, but Marketing Cloud customized the language to function specifically with Marketing Cloud activities. / La syntaxe et le format doivent sembler familiers aux développeurs Web, mais Marketing Cloud a personnalisé le langage pour fonctionner spécifiquement avec les activités de Marketing Cloud.
These functions don’t just allow access to Marketing Cloud activities—they also let you use functionality that doesn’t exist in AMPscript. / Ces fonctions ne permettent pas seulement d’accéder aux activités de Marketing Cloud, elles vous permettent également d’utiliser des fonctionnalités qui n’existent pas dans AMPscript.
You can use arrays in SSJS. / Vous pouvez utiliser des tableaux dans SSJS.
You can use the EVAL function in SSJS. / Vous pouvez utiliser la fonction EVAL dans SSJS.
SSJS handles more advanced exception handling, including try catch blocks. / SSJS gère la gestion des exceptions plus avancée, y compris les blocs try catch.
Before diving in, remember that SSJS does not work with external JavaScript libraries and you can’t work with the DOM. / Avant de plonger, n’oubliez pas que SSJS ne fonctionne pas avec les bibliothèques JavaScript externes et que vous ne pouvez pas travailler avec le DOM.
SSJS Syntax and Personalization Strings / Syntaxe SSJS et chaînes de personnalisation
SSJS appears in Marketing Cloud as a code block, like this example. / SSJS apparaît dans Marketing Cloud comme un bloc de code, comme cet exemple.
Or you can just open the block with <script runat=server> and simplify the whole matter. /Ou vous pouvez simplement ouvrir le bloc avec <script runat=server>et simplifier le tout.</p>
SSJS also offers personalization strings to insert values from several different sources. / SSJS propose également des chaînes de personnalisation pour insérer des valeurs provenant de plusieurs sources différentes.
ctrl:field—Subscriber and system attributes from lists and sendable data extensions / Abonnés et attributs système des listes et des extensions de données envoyables
ctrl:var—Variables / Variables
ctrl:eval—Functions and SSJS code expressions / Fonctions et expressions de code SSJS
Here are some examples. / Voici quelques exemples.
If you want to pull a contact’s full name into a landing page, you can use this example. / Si vous souhaitez insérer le nom complet d’un contact dans une page de destination, vous pouvez utiliser cet exemple.
<ctrl:field name=FullName />
This example returns the contactZIP variable, along with a default value if no value exists and a format for that number. / Cet exemple renvoie la variable contactZIP, ainsi qu’une valeur par défaut si aucune valeur n’existe et un format pour ce nombre.
If you want to make the variable value uppercase, you can use a function like this one. / Si vous souhaitez mettre la valeur de la variable en majuscule, vous pouvez utiliser une fonction comme celle-ci.
SSJS offers two libraries, and you may notice some overlap between them. / SSJS propose deux bibliothèques, et vous remarquerez peut-être un certain chevauchement entre elles.
Both allow you to use standard JSON and JavaScript functionality, but you use the libraries at different times. / Les deux vous permettent d’utiliser les fonctionnalités JSON et JavaScript standard, mais vous utilisez les bibliothèques à des moments différents.
So how do you know which one to use? There’s a simple answer to that question. / Alors, comment savez-vous lequel utiliser? Il y a une réponse simple à cette question.
Are you including SSJS in email or SMS messages? Use the Platform library. / Incluez-vous SSJS dans les e-mails ou les SMS? Utilisez la bibliothèque Platform.
Are you building landing pages or applications? Use the Core library. / Créez-vous des pages de destination ou des applications? Utilisez la bibliothèque Core.
Platform functions resemble their AMPscript counterparts and always begin with the Platform prefix. / Les fonctions de la plateforme ressemblent à leurs homologues AMPscript et commencent toujours par le préfixe de la plateforme.
Otherwise, you can accomplish the same kinds of tasks as you can with AMPscript. / Sinon, vous pouvez accomplir les mêmes types de tâches qu’avec AMPscript.
Retrieve and modify account information. / Récupérez et modifiez les informations de compte.
Interact with account users. / Interagissez avec les utilisateurs du compte.
Interact with content areas. / Interagissez avec les zones de contenu.
Add, retrieve, delete, and update data extension information. / Ajoutez, récupérez, supprimez et mettez à jour les informations d’extension de données.
Perform date and time functions. / Exécuter des fonctions de date et d’heure.
Create and send email messages and triggered sends. / Créez et envoyez des e-mails et des envois déclenchés.
Create, retrieve, update, and delete subscriber information. / Créez, récupérez, mettez à jour et supprimez les informations des abonnés.
Interact with HTTP functions and information. / Interagissez avec les fonctions et les informations HTTP.
Use a variety of utility and evaluation functions. / Utilisez une variété de fonctions d’utilité et d’évaluation.
SSJS also supports these methods. / SSJS prend également en charge ces méthodes.
Method Name
Functionality
Nom de la méthode
Fonctionnalité
Add
Invokes the SOAP web service API Create method on an API object
Ajouter
Appelle la méthode Create API du service Web SOAP sur un objet API
Remove
Invokes the SOAP web service API Delete method on an API object
Retirer
Appelle la méthode Delete d’API du service Web SOAP sur un objet API
Update
Invokes the SOAP web service API Update method on an API object
Mise à jour
Appelle la méthode de mise à jour de l’API du service Web SOAP sur un objet AP
Retrieve
Invokes the SOAP web service API Retrieve method on an API object
Récupérer
Appelle la méthode de récupération d’API du service Web SOAP sur un objet API
Next, let’s look at how to retrieve data with SSJS. / Ensuite, regardons comment récupérer des données avec SSJS.
This function pulls data from the same location as the AMPscript example in the previous unit. / Cette fonction extrait les données du même emplacement que l’exemple AMPscript dans l’unité précédente.
<script runat="server">
var dataRows = Platform.Function.LookupRows('Purchases','MemberID',memID);
</script>
Now let’s expand on that function and write those rows to an email. / Développons maintenant cette fonction et écrivons ces lignes dans un e-mail.
If you want to add some more content to an email message, you can bring in content areas using several methods, including the key value shown in this example. / Si vous souhaitez ajouter un peu plus de contenu à un e-mail, vous pouvez ajouter des zones de contenu à l’aide de plusieurs méthodes, notamment la valeur de clé indiquée dans cet exemple
<script runat="server">
var content = Platform.Function.ContentBlockByKey("myExternalKey","impressionRegion",false,"defaultContentHere");
</script>
The additional parameters allow you to specify an impression region for the content area, choose whether the insertion call stops if it encounters an error, and insert some default content if your specific content area can’t be found. / Les paramètres supplémentaires vous permettent de spécifier une région d’impression pour la zone de contenu, de choisir si l’appel d’insertion s’arrête s’il rencontre une erreur et d’insérer du contenu par défaut si votre zone de contenu spécifique est introuvable.
Next, we take a closer look at Guide Template Language (GTL). / Ensuite, nous examinons de plus près le Guide Template Language (GTL).
After completing this unit, you’ll be able to: / Une fois cette unité terminée, vous pourrez :
Review the fundamentals and syntax for AMPscript. /Verifier les principes fondamentaux et la syntaxe d’AMPscript.
Create inline AMPscript and AMPscript blocks./ Créez des blocs AMPscript et AMPscript en ligne.
Insert personalization strings. / Insérez des chaînes de personnalisation.
Implement AMPscript functions and operators. / Implémentez les fonctions et les opérateurs AMPscript.
Work with AMPscript examples and best practices. / Travaillez avec des exemples AMPscript et ces meilleures pratiques.
As a developer, you’re probably familiar with more than a few languages. / En tant que développeur, vous connaissez probablement plusieurs langages.
And as a developer, you know that it’s impossible to learn everything about a language from a single document. / Et en tant que développeur, vous savez qu’il est impossible d’apprendre tout sur une langue à partir d’un seul document.
This module introduces you to the basics of AMPscript, while also giving you the resources you need to dig deeper./ Ce module vous présente les bases d’AMPscript, tout en vous donnant également les ressources dont vous avez besoin pour aller plus loin.
AMPscript Fundamentals and Syntax /Fondamentaux et syntaxe AMPscript
At the most basic level, AMPscript calls act as a placeholder for the data requested from Marketing Cloud or a data extension. / Au niveau le plus basique, les appels AMPscript agissent comme un espace réservé pour les données demandées à Marketing Cloud ou une extension de données.
These calls can appear in one of three basic forms. / Ces appels peuvent apparaître sous l’une des trois formes de base.
AMPscript can handle constant values, values from attributes and data extensions, and keywords. / AMPscript peut gérer des valeurs constantes, des valeurs d’attributs et d’extensions de données et des mots clés.
This example shows how to produce the same results for all three language elements. / Cet exemple montre comment produire les mêmes résultats pour les trois types de données.
‘example@salesforce.com‘ (note the quotes around the string constant /notez les guillemets autour de la constante de chaîne)
SubscriberEmail (this string returns the value of SubscriberEmail from a data extension, which conveniently is example@salesforce.com /cette chaîne renvoie la valeur de SubscriberEmail à partir d’une extension de données, qui est sous cette forme example@salesforce.com)
@EmailAddress (this variable holds the value assigned to it earlier in the AMPscript block, which would be example@salesforce.com /cette variable contient la valeur qui lui a été attribuée plus tôt dans le bloc AMPscript, qui serait example@salesforce.com)
Note / Remarque
Use your own email address or another valid address for testing. / Utilisez votre propre adresse e-mail ou une autre adresse valide pour les tests.
AMPscript uses terms you’re probably familiar with, such as IF, ELSEIF, ELSE, and ENDIF. /AMPscript utilise des termes que vous connaissez probablement, tels que IF, ELSEIF, ELSE et ENDIF.
Take a look at this example to see how to implement these conditions in your AMPscript. /Jetez un œil à cet exemple pour voir comment implémenter ces conditions dans votre code AMPscript.
<script runat=server language=ampscript>
IF @region == '1' THEN
SET @greeting = 'Bonjour!'
ELSEIF @region == '2' THEN
SET @greeting = 'Hola!'
ELSE
SET @greeting = 'Hi!'
ENDIF
</script>
You can include as many ELSEIF statements as necessary for all the conditions you need to evaluate. /Vous pouvez inclure autant d’instructions ELSEIF que nécessaire pour toutes les conditions que vous devez évaluer.
You can also set up FOR loops in AMPscript to iterate over content as many times as necessary. /Vous pouvez également configurer des boucles FOR dans AMPscript pour parcourir le contenu autant de fois que nécessaire.
This example sets the applicable first name values for the number of included roles. /Cet exemple définit les valeurs de prénom applicables pour le nombre de rôles inclus.
%%[FOR @Position = '1' TO @Position = @rowCount DO ]%%
SET @FirstName = FirstName
%%[NEXT @Position]%%
And, of course, you can assign variables (declared as VAR) in AMPscript using SET. /Et, bien sûr, vous pouvez affecter des variables (déclarées comme VAR) dans AMPscript à l’aide de SET.
%%[ VAR @text
SET @text = "Hello, world!"
Output(v(@text))]%%
Notice how the Output() function prints the value of the variable contained in the v(). /Remarquez comment la fonction Output () imprime la valeur de la variable contenue dans le v ().
For email messages, remember that AMPscript processes the HTML body of the message first (including any preheader), then the text body. /Pour les e-mails, n’oubliez pas que AMPscript traite d’abord le corps HTML du message (y compris tout en-tête), puis le corps du texte.
The subject line goes last. / La ligne d’objet en dernier.
AMPscript Functions /Fonctions AMPscript
AMPscript uses functions—an extremely large number of functions. / AMPscript utilise des fonctions, un très grand nombre de fonctions.
We divide functions into several different categories. /Nous divisons les fonctions en plusieurs catégories différentes.
AMPscript Function
What It Does
Fonction AMPscript
Ce qu’il fait
API
Create SOAP API interactions
API
Créer des interactions avec l’API SOAP
Contacts
Modify Marketing Cloud contact information
Contacts
Modifier les informations de contact de Marketing Cloud
Content
Modify Marketing Cloud content, such as text and images in email messages.
Contenu
Modifiez le contenu Marketing Cloud, tel que le texte et les images dans les e-mails.
Data Extension
Modify data in data extensions
Extension de données
Modifier des données dans des extensions de données
Date Time
Modify date and time information in Marketing Cloud
Date Heure
Modifier les informations de date et d’heure dans Marketing Cloud
Encryption
Encrypt and decrypt Marketing Cloud data
Chiffrement
Chiffrer et déchiffrer les données Marketing Cloud
http
Get, post, and modify HTTP information in Marketing Cloud
http
Get, post et modifier des informations HTTP dans Marketing Cloud
Math
Perform basic math functions
Math
Effectuer des fonctions mathématiques de base
Microsoft Dynamics CRM
Interact with Microsoft Dynamics CRM data
CRMMicrosoft Dynamics
Interagir avec les données Microsoft Dynamics CRM
Salesforce
Interact with Sales Cloud data in Marketing Cloud
Salesforce
Interagir avec les données Sales Cloud dans Marketing Cloud
Sites
Interact with CloudPages sites
Sites
Interagir avec les sites CloudPages
Social
Interact with Social Forward functionality in Email Studio
Social
Interagissez avec la fonctionnalité Social Forward dans Email Studio
String
Modify string information in Marketing Cloud
String
Modifier les informations de chaîne dans Marketing Cloud
Utilities
Return and evaluate types of Marketing Cloud data
Utilities
Renvoyer et évaluer les types de données Marketing Cloud
Personalization Strings / Chaînes de personnalisation
AMPscript offers some easy strings to pull information into content, email addresses, and other areas where you need to dynamically assign values. / AMPscript propose des chaînes simples pour extraire des informations dans le contenu, les adresses e-mail et d’autres domaines dans lesquels vous devez affecter dynamiquement des valeurs.
These personalization strings return data from Email Studio lists. / Ces chaînes de personnalisation renvoient des données à partir des listes Email Studio.
Use AMPscript functions to return content from data extensions in other Marketing Cloud functions. / Utilisez les fonctions AMPscript pour renvoyer le contenu des extensions de données dans d’autres fonctions Marketing Cloud.
Impression Tracking /Suivi des impressions
AMPscript lets you determine which sections of an email message perform better in sends. /AMPscript vous permet de déterminer quelles sections d’un message électronique fonctionnent mieux dans les envois.
We may know intuitively that random cat pictures attract more attention than a block of text, but now you have the statistics to prove it! /Nous pouvons savoir intuitivement que les images aléatoires de chats attirent plus l’attention qu’un bloc de texte, mais maintenant vous avez les statistiques pour le prouver!
Surround a piece of content—pulled in using the ContentArea() or ContentAreaByName() functions—with the BeginImpressionRegion() and EndImpressionRegion() functions, and use impression tracking reports to see how your cat pictures measure up. / Entourez un élément de contenu (tiré à l’aide des fonctions ContentArea () ou ContentAreaByName ()) avec les fonctions BeginImpressionRegion () et EndImpressionRegion () et utilisez des rapports de suivi des impressions pour voir comment vos photos de chat se mesurent.
So What Do I Do with AMPscript? / Alors, que dois-je faire avec AMPscript?
You can perform a number of tasks in Marketing Cloud using these functions. / Vous pouvez effectuer un certain nombre de tâches dans Marketing Cloud à l’aide de ces fonctions.
That said, AMPscript is usually used to pull data from data extensions using calls like Lookup() and LookupRow(). /Cela dit, AMPscript est généralement utilisé pour extraire des données des extensions de données à l’aide d’appels comme Lookup () et LookupRow ().
These functions look for data in specified data extensions and return fields based on the values you include in the functions. /Ces fonctions recherchent des données dans des extensions de données spécifiées et renvoient des champs en fonction des valeurs que vous incluez dans les fonctions.
This example looks up purchases made by a contact identified by a member ID and returns any rows containing purchase information. /Cet exemple recherche les achats effectués par un contact identifié par un ID de membre et renvoie toutes les lignes contenant des informations d’achat.
%%[ VAR @row
SET @rows = LookupRows("Purchases","MemberID",@memID)]%%
This example shows how to retrieve a content area from Content Builder in an email message, using the key value. /Cet exemple montre comment récupérer une zone de contenu à partir de Content Builder dans un e-mail, à l’aide de la valeur de clé.
%%=ContentBlockbyKey("myContentBlock")=%%
Once you retrieve that information, you can perform all manner of modifications and transformations to accomplish what you need. / Une fois que vous avez récupéré ces informations, vous pouvez effectuer toutes sortes de modifications et transformations pour accomplir ce dont vous avez besoin.
Next, let’s take a look at Server-side JavaScript (SSJS). / Voyons maintenant le JavaScript côté serveur (SSJS).
After completing this unit, you’ll be able to:/Une fois cette unité terminé, vous pourrez :
Identify each programmatic language available for Marketing Cloud./Identifiez chaque langage de programmation disponible pour Marketing cloud
Select the most appropriate language for your needs. /Sélectionnez le langage le plus approprié à vos besoins.
Introduction/Introduction
Marketing Cloud offers a ton of functionality to both users who prefer drag-and-drop interactions and those who like to customize their interactions a little more. /Marketing cloud offre une tonne de fonctionnalités aux utilisateurs qui préfèrent les interactions par glisser-déposer et à ceux qui aiment personnaliser un peu plus leurs interactions.
Maybe you need to personalize content or create data extensions to contain content coming in from outside sources. /Vous devez peut-être personnaliser le contenu ou créer des extensions de données pour contenir du contenu provenant de sources extérieures.
Marketing Cloud offers three distinct programmatic languages for use with messaging, data management, and other account-related activities. /Marketing Cloud propose trois langages de programmation distincts à utiliser avec la messagerie, la gestion des données et d’autres activités liées aux comptes.
Use these languages to more dynamically access data and actions within messages, landing pages, and other resources. /Utilisez ces langages pour accéder de manière plus dynamique aux données et aux actions dans les messages, les pages de destination et d’autres ressources.
Instead of sending the same email content to every subscriber, you can personalize the message with content based on previous purchases, subscriber location, or other details. /Au lieu d’envoyer le même contenu de courrier électronique à chaque abonné, vous pouvez personnaliser le message avec un contenu basé sur les achats précédents, la localisation de l’abonné ou d’autres détails.
Let’s learn some names for these programmatic languages and get to know what benefits they offer. /Apprenons quelques noms de ces langages de programmation et apprenons quels sont leurs avantages.
AMPscript/ AMPscript
Server-Side JavaScript/ Javascript Coté Server
Guide Template Language/ Langage de modèle de guide
All of these options provide benefits depending on what you’re trying to accomplish, so it’s time to learn more about them. / Toutes ces options offrent des avantages en fonction de ce que vous essayez d’accomplir, il est donc temps d’en savoir plus à leur sujet.
AMPscript
AMPscript is Marketing Cloud’s proprietary scripting language, available for use in email messages, landing pages, SMS messages, and push messages. / AMPscript est le langage de script propriétaire de Marketing Cloud, disponible pour une utilisation dans les e-mails, les pages de destination, les messages SMS et les messages push.
From simple personalization to moving around larger amounts of data, AMPscript can handle the task. / De la simple personnalisation au transfert des grandes quantités de données, AMPscript peut gérer de la tâche..
Because AMPscript can interact with most every facet of Marketing Cloud, it’s a good general-purpose tool to accomplish tasks within messages or landing pages. / Etant donné qu’AMPscript peut interagir avec la plupart des facettes de Marketing cloud, il s’agit d’un bon outil polyvalent pour accomplir des tâches dans les messages ou les pages de destination.
For example, you can include simple requests like the date and time of a send in your message. / Par exemple, vous pouvez inclure des demandes simples comme la date et l’heure d’un envoi dans votre message.
%%=Now()=%%
You can also manipulate text contained within a variable for your message. / Vous pouvez aussi manipuler le texte contenu dans la variable de votre message.
%%=LOWERCASE(@text)=%%
AMPscript also handles more complex operations, like looking up information in data extensions./ AMPscript gère également des opérations plus complexes, comme la recherche d’information dans les extensions de données.
This example shows how AMPscript looks up rows in the ZipCode data extension where the HomeCity value appears in the City field. / Cet exemple montre comment AMPscript recherche les lignes de l’extension de données ZipCode ou la valeur HomeCity apparait dans le champs City.
%%=LookupRows('ZipCode','City',HomeCity)=%%
Note / Remarque
Check out the Marketing Cloud Contact Management module to learn more about data extensions. /Consultez le module Marketing Cloud Contact Management pour en savoir plus sur les extensions de données.
These examples show just a small part of what you can accomplish with AMPscript. / Ces exemples ne montrent qu’une petite partie de ce que vous pouvez accomplir avec AMPscript.
This language allows you to manipulate data within most facets of Marketing Cloud activities. / Ce langage vous permet de manipuler des données dans la plupart des facettes des activités de Marketing Cloud.
Server-Side JavaScript
AMPScript is a robust programming language, but we also know that developers appreciate something a little more familiar. /AMPscript est un langage de programmation robuste, mais nous savons également que les developeurs apprécient quelque chose d’un peu plus familier.
That’s where server-side JavaScript (SSJS) comes in. / C’est là que Javascript coté serveur (SSJS) entre en jeu.
If you’re familiar with web development, SSJS bears a striking resemblance to languages you’ve already used. / Si vous êtes familier avec le développement web, SSJS a une ressemblance frappante avec les langages que vous avez déjà utilisés.
Here’s a simple example. / Voici un exemple simple
var currentTime = Now();
Now, take a look at a more complex example for retrieving rows from a data extension related to a contact and writing them to an email message. / Maintenant, jetez un œil à un exemple plus complexe pour récupérer des lignes d’une extension de données liées à un contact et les écrire dans un email.
Looks familiar, right? / Cela semble familier, n’est-ce pas ?
Here are a few more things to remember about SSJS. / Voici quelques informations supplémentaires à retenir sur SSJS.
You can use arrays in your server-side JavaScript. / Vous pouvez utiliser des tableaux avec server-side Javascript
You can use more advanced exception handling with server-side JavaScript. / Vous pouvez utiliser une gestion des exceptions plus avancée avec server-side Javascript
You can’t interact with the DOM using SSJS—all functions execute within the applicable message or landing page. / Vous ne pouvez pas interagir avec le DOM à l’aide de SSJS _ Toutes les fonctions s’exécutent dans le message ou la page de destination.
Finally, note that SSJS comes in two libraries. /Enfin, notez que SSJS est disponible dans deux bibliothèques.
1 – Platform—use this library for messaging and other Marketing Cloudapplications. / Utilisez cette bibliothèque pour la messagerie et d’autres applications marketing Cloud.
2- Core—use this library only for Marketing Cloud landing pages and applications. /Utilisez cette bibliothèque uniquement pour les pages de destination et application marketing cloud.
Guide Template Language
Marketing Cloud’s newest programmatic language is Guide Template Language (GTL). / Le langage de programmation le plus récent de Marketing Cloud est le guide Template Langage.
If you’ve used Handlebar- or Moustache-style syntax before, you’ll have a good start on understanding GTL. /Si vous avez déjà utilisé Handlebar ou Moustache, vous aurez un bon début pour comprendre GTL.
GTL helps you create templates using JSON data that can populate entire messages or landing pages with data from your account’s data extensions. / GTL vous aide à créer des modèles à l’aide de données JSON qui peuvent remplir des messages entiers ou des pages de destinations avec des données provenant des extensions de données de votre compte.
It can also accept data from a script or REST API request. / Il peut également accepter des données d’un script ou d’un appel d’API REST.
Now that you’ve received a quick introduction to the Marketing Cloud’s programmatic languages, let’s dig deeper into each one. / Maintenant que vous avez reçu une introduction rapide aux langages de programmations de Marketing Cloud, approfondissons chacun d’eux.
Contact Builder is where we create the Data Model in Marketing Cloud. It is giving a single view of the customer’s journeys with your brand.
What can you do with it?
Contact builder gives us the tools to manage, consolidate, organize, and link data from all Salesforce Marketing Cloud apps and External Sources. So with Contact Builder, we can:
Create data extensions to store Contacts information and other data.
Import data
Create relationships between data extensions
Manage Contact information and other data
Provide a single view of the customer
Contact Builder helps you maintain the contact information you use to identify individual contacts across multiple channels and personalize messaging and marketing activities.
Where can you use Contact Builder in Marketing Cloud?
Contact Builder is working only with the apps Journey Builder, Mobile Connect, Mobile Push, GroupConnect, and also drive Einstein Engine.
Note:All attributes from email and Mobile Apps should be set up in Data Designer. These settings are allowing us to update contact information automatically without needing Ampscript and SQL code on all our Journeys in Marketing Cloud.
Get to know the tools and technologies you use to develop for Marketing Cloud. /Découvrez les outils et technologies que vous utilisez pour développer dans Marketing Cloud.
After completing this unit, you’ll be able to: / Une fois cette unité terminée, vous pourrez :
Create a Marketing Cloud contact using the REST API. /Créez un contact Marketing Cloud à l’aide de l’API REST.
Validate your Marketing Cloud developer environment setup. /Validez la configuration de votre environnement de développeur Marketing Cloud.
Hello, World! /Bonjour le monde!
No developer learning experience is complete without a “Hello, World!” project to put your new skills to the test! /Aucune expérience d’apprentissage de développeur n’est complète sans un projet “Bonjour, le monde!” pour mettre vos nouvelles compétences à l’épreuve!
Now that you created a package in Marketing Cloud and understand where to get the authentication credentials, let’s validate your development environment setup by creating a contact through the REST API. /Maintenant que vous avez créé un package dans Marketing Cloud et que vous savez où obtenir les informations d’authentification, validons la configuration de votre environnement de développement en créant un contact via l’API REST.
JSON Parameters/Paramètres JSON
Before we jump in and create a contact, let’s review the parameters for this simplified example of using this route. /Avant de commencer à créer un contact, examinons les paramètres de cet exemple simplifié d’utilisation de ce chemin.
Name
Type
Required
Description
contactKey
string
Yes
Primary address for the contact /Adresse principale du contact
attributeSets
array
Yes
Array of information used to create a new contact /Tableau d’informations utilisé pour créer un nouveau contact
attributeSets.name
string
Yes
Name of attribute group to which to add the contact information /Nom du groupe d’attributs auquel ajouter les informations de contact
attributeSets.values
array
No
Name and value pairs indicating the attribute and applicable value /Paires de noms et de valeurs indiquant l’attribut et la valeur applicable
Note /Remarque
To see a complete list of what this API route can do, check out the Create Contacts REST reference on Salesforce Developers. /Pour voir une liste complète de ce que peut faire cet itinéraire d’API, consultez la référence REST dans la documentation en ligne Salesforce développeurs.
Create the API Request /Créer la demande d’API
Follow these steps to create a contact in Marketing Cloud using the REST API. You need access to Marketing Cloud and the package you created in the last unit. /Suivez ces étapes pour créer un contact dans Marketing Cloud à l’aide de l’API REST. Vous devez avoir accès à Marketing Cloud et au package que vous avez créé dans la dernière unité.
In your preferred API development tool, construct a request to create a new contact. /Dans votre outil de développement d’API préféré, créez une demande pour créer un nouveau contact.
Use this sample code and substitute your REST Base URI in Host and your access token in Authorization. Remember, you can find this information under the component details of your installed package. /Utilisez cet exemple de code et remplacez votre URI de base REST dans l’hôte et votre jeton d’accès dans l’autorisation. N’oubliez pas que vous pouvez trouver ces informations sous les détails des composants de votre package installé.
Include a value for contactKey with a valid subdomain. The value for HTML Enabled is required. /Incluez une valeur pour contactKey avec un sous-domaine valide. La valeur pour HTML activé est obligatoire.
You can enter your own email address rather than using your own sample code. /Vous pouvez entrer votre propre adresse e-mail plutôt que d’utiliser votre propre exemple de code.
Note /Remarque
Each call accepts only one instance of each attribute set. /Chaque appel n’accepte qu’une seule instance de chaque ensemble d’attributs.
Now that the request is created, send the request to Marketing Cloud to create a contact. /Maintenant que la demande est créée, envoyez-la à Marketing Cloud pour créer un contact.
Validate the Request /Valider la demande
Let’s confirm that your new contact now exists in Marketing Cloud. It can take a couple hours to receive a response, so don’t panic if you don’t see it right away. There are two ways you can validate your work. /Confirmons que votre nouveau contact existe désormais dans Marketing Cloud. Cela peut prendre quelques heures pour recevoir une réponse, alors ne paniquez pas si vous ne le voyez pas tout de suite. Il existe deux façons de valider votre travail.
First, you receive a response similar to this in your development tool. /Tout d’abord, vous recevez une réponse similaire à celle-ci dans votre outil de développement.
Second, you can navigate to Contact Builder in Marketing Cloud to confirm that your contact exists. /Deuxièmement, vous pouvez accéder à Contact Builder dans Marketing Cloud pour confirmer que votre contact existe.
In Marketing Cloud Contact Builder, click All Contacts. /Dans Marketing Cloud Contact Builder, cliquez sur Tous les contacts.
Search for the contact you created. /Recherchez le contact que vous avez créé.
Click the contact to review the contact data against your API request. /Cliquez sur le contact pour examiner les données de contact par rapport à votre demande d’API.
Congratulations! You created your first successful Marketing Cloud API reque /Toutes nos félicitations! Vous avez créé votre première demande d’API Marketing Cloud réussie!
Note /Remarque
Not able to validate your work? Learn how to Handle Errors in REST API on Salesforce Developers. /Vous ne pouvez pas valider votre travail? Découvrez comment gérer les erreurs dans l’API REST sur les développeurs Salesforce.
What’s Next? /Et après?
You learned a little about the Marketing Cloud APIs, SDKs, and programmatic languages available to use as you blaze trails with Marketing Cloud. /Vous avez appris un peu les API Marketing SDK, les kits de développement logiciel (SDK) et les langages de programmation disponibles à utiliser lorsque vous parcourez les pistes avec Marketing Cloud.
You gained some administrator basics, such as the overall Marketing Cloud account structure (tenants, MIDs, endpoints, business units) and how users and permissions determine access. /Vous avez acquis des notions de base sur l’administrateur, telles que la structure globale du compte Marketing Cloud (locataires, MID, points de terminaison, unités commerciales) et la manière dont les utilisateurs et les autorisations déterminent l’accès.
You even set up your developer environment and validated it by creating a Contact in Marketing Cloud. /Vous avez même configuré votre environnement de développeur et l’avez validé en créant un contact dans Marketing Cloud.
So, what’s next? When you’re ready to start coding, you can dive deeper into Marketing Cloud developer resources on the Marketing Cloud Developer Center. /Alors, quelle est la prochaine étape? Lorsque vous êtes prêt à commencer le codage, vous pouvez approfondir via les ressources des développeurs Marketing Cloud sur le Centre des développeurs Marketing Cloud.
Join our huge community of developers through that site, where you can share ideas, join developer groups, read success stories, and more. / Rejoignez notre immense communauté de développeurs via ce site, où vous pouvez partager des idées, rejoindre des groupes de développeurs, lire des histoires de réussite, etc.
After completing this unit, you’ll be able to: /Une fois cette unité terminée, vous pourrez :
Explain different types of integration components. /Expliquer les différents types de composants d’intégration.
Create an enhanced installed package in your Marketing Cloud account. /Créer un package installé amélioré dans votre compte Marketing Cloud.
Obtain credentials for API integration authentication. /Obtenir les informations d’identification pour l’authentification d’intégration API.
Did you think we’d let you finish this badge without developing something? Fear not. /Pensiez-vous que nous vous laisserions terminer ce badge sans développer quelque chose? N’ayez crainte.
All your hard work learning about Marketing Cloud developer tools and admin concepts is about to pay off. /Tout votre travail acharné d’apprentissage des outils de développement et des concepts d’administration de Marketing Cloud est sur le point de porter ses fruits.
In this unit, we’re walking through the steps to set up your developer environment. /Dans cette unité, nous parcourons les étapes de configuration de votre environnement de développeur.
Then, in the next unit, you get to try out a simple project to validate your setup. /Ensuite, dans l’unité suivante, vous pouvez essayer un projet simple pour valider votre configuration.
Note /Remarque
Want to follow along with these steps in your Marketing Cloud account? You need the “Administer” permission for Installed Packages to complete the steps in this module. Talk to your Marketing Cloud administrator to get that permission enabled. /Vous souhaitez suivre ces étapes dans votre compte Marketing Cloud? Vous avez besoin de l’autorisation «Administrer» pour les packages installés pour effectuer les étapes de ce module. Contactez votre administrateur Marketing Cloud pour activer cette autorisation.
Create a Package /Créer un package
The first step to setting up your developer environment is to create an installed package in your Marketing Cloud account. A package is a container made up of components that create and manage custom functionality. In other words, the components determine what the package can do. /La première étape de la configuration de votre environnement de développeur consiste à créer un package installé dans votre compte Marketing Cloud. Un package est un conteneur composé de composants qui créent et gèrent des fonctionnalités personnalisées. En d’autres termes, les composants déterminent ce que le package peut faire.
Why create a package? You use the package to create API integrations, install custom apps, or add custom Journey Builder components for example, all of which you can share with other business units in the Marketing Cloud account. Here are a few examples of reasons to create a package: /Pourquoi créer un package? Vous utilisez le package pour créer des intégrations d’API, installer des applications personnalisées ou ajouter des composants Journey Builder personnalisés, par exemple, que vous pouvez tous partager avec d’autres unités commerciales dans le compte Marketing Cloud. Voici quelques exemples de raisonsde créer un package:
Component
Package Creation Reason
Composant
Raison de la création du package
API Integration
You create an integration with a third-party application, which needs access to the Marketing Cloud REST API. To get a client ID and secret, create an installed package with an API Integration component. You can have one API integration per package.
Intégration API
Vous créez une intégration avec une application tierce, qui a besoin d’accéder à l’API REST Marketing Cloud. Pour obtenir un ID client et un secret, créez un package installé avec un composant d’intégration d’API. Vous pouvez avoir une intégration d’API par package.
Marketing Cloud App
You create an app outside of Marketing Cloud that you’d like to iFrame into Marketing Cloud. Create an installed package with a Marketing Cloud App component. You can have one Marketing Cloud App per package. If your app needs access to the Marketing Cloud API, create an API Integration component, as well.
Application Marketing Cloud
Vous créez une application en dehors de Marketing Cloud que vous souhaitez iFrame dans Marketing Cloud. Créez un package installé avec un composant Marketing Cloud App. Vous pouvez avoir une application Marketing Cloud par package. Si votre application a besoin d’accéder à l’API Marketing Cloud, créez également un composant d’intégration d’API.
Custom Content Block
Instead of using Content Builder’s CKEditor WYSIWYG for HTML editing, you’d like to use a different WYSIWYG, such as QuillJS. Create an installed package with a Custom Content Block component.
Bloc de contenu personnalisé
Au lieu d’utiliser CKEditor WYSIWYG de Content Builder pour l’édition HTML, vous souhaitez utiliser un autre WYSIWYG, tel que QuillJS. Créez un package installé avec un composant Bloc de contenu personnalisé.
Journey Builder Activity
You need a custom activity for one of your journeys that kicks off a REST API request in a third-party application. Create an installed package with a Journey Builder Activity component. You can include multiple Journey Builder Activities per package.
Activité de Journey Builder
Vous avez besoin d’une activité personnalisée pour l’un de vos parcours qui lance une demande d’API REST dans une application tierce. Créez un package installé avec un composant d’activité Journey Builder. Vous pouvez inclure plusieurs activités Journey Builder par package.
Journey Builder Entry Source
You need a custom entry source for one of your journeys that comes via a REST API request from a third-party application. Create an installed package with a Journey Builder Entry Source component. You can have multiple Journey Builder Entry Source per package.
Source d’entrée de Journey Builder
Vous avez besoin d’une source d’entrée personnalisée pour l’un de vos voyages via une demande d’API REST à partir d’une application tierce. Créez un package installé avec un composant Source d’entrée Journey Builder. Vous pouvez avoir plusieurs sources d’entrée Journey Builder par package.
For this test, we’re going to set up your development environment for an enhanced package. /Pour ce test, nous allons configurer votre environnement de développement pour un package amélioré.
In Marketing Cloud, navigate to Setup. /Dans Marketing Cloud, accédez à Configuration.
Under Platform Tools, expand Apps and click Installed Packages. /Sous Platform Tools, développez Apps et cliquez sur Packages installés.
Click New. /Cliquez sur Nouveau.
Give the package a name and description so that you can easily identify it as your first test package. /Donnez au package un nom et une description afin de pouvoir facilement l’identifier comme votre premier package de test.
Select the checkbox next to Create the package with enhanced functionality (recommended). /Cochez la case en regard de Créer le package avec des fonctionnalités améliorées (recommandé).
Save the package. After the package is saved, you can view the package details. /Enregistrez le package. Une fois le package enregistré, vous pouvez afficher les détails du package.
Under Components, click Add Component. /Sous Composants, cliquez sur Ajouter un composant.
In this step, you select a component type. For our testing purposes, select API Integration. /Dans cette étape, vous sélectionnez un type de composant. Pour nos tests, sélectionnez Intégration API.
Integration Type/Type d’intégration
Next you choose the Integration Type: Web App, Public App, or Server-to-Server. These types of integrations use the OAuth 2.0 protocol to obtain an access token. A little about each: /Ensuite, vous choisissez le type d’intégration: application Web, application publique ou serveur à serveur. Ces types d’intégrations utilisent le protocole OAuth 2.0 pour obtenir un jeton d’accès. Aperçu de chaque type:
Integration Type
Description
OAuth Grant Type
Web App
Web Apps make API requests in the context of an end user. These integrations are issued a client ID and client secret because they can maintain the confidentiality of a client secret.
Authorization Code
Web App
Les applications Web effectuent des demandes d’API dans le contexte d’un utilisateur final. Ces intégrations reçoivent un ID client et un secret client car elles peuvent maintenir la confidentialité d’un secret client.
Code d’autorisation
Public App
Public Apps, such as single-page or mobile applications, make API requests in the context of an end user. These integrations are issued only a client ID because they cannot maintain the confidentiality of a client secret.
Authorization Code
App publique
Les applications publiques, telles que les applications mobiles ou à page unique, effectuent des demandes d’API dans le contexte d’un utilisateur final. Ces intégrations reçoivent uniquement un ID client car elles ne peuvent pas maintenir la confidentialité d’un secret client.
Code d’autorisation
Server-Server
A server-to-server integration performs tasks on behalf of the integration, without an end-user context, user interaction, or user interface.They make API requests in the context of a service account instead of a user account. These integrations are issued a client ID and client secret to use with the Client Credentials grant type.
Client Credentials
Serveur-Serveur
Une intégration de serveur à serveur effectue des tâches au nom de l’intégration, sans contexte d’utilisateur final, interaction utilisateur ou interface utilisateur. Ils effectuent des demandes d’API dans le contexte d’un compte de service au lieu d’un compte d’utilisateur. Ces intégrations reçoivent un ID client et un secret client à utiliser avec le type d’autorisation Client Credentials.
Informations d’identification du client
For our testing purposes, select Server-to-Server and click Next. /Pour nos tests, sélectionnez Serveur à serveur et cliquez sur Suivant.
Set Properties/Définir les propriétés
For the final step of adding a component, you need to set the properties. Enable the scope for the platform functions you are including within the integration. Will this API integration allow for updates to Contacts? Create new Emails? /Pour la dernière étape de l’ajout d’un composant, vous devez définir les propriétés. Activez le périmètre des fonctions de plate-forme que vous incluez dans l’intégration. Cette intégration API permettra-t-elle des mises à jour des contacts? Créer de nouveaux e-mails?
The API scope represents a grouping of permissions that ensure your API request can access the appropriate functions. The properties can also include redirect URIs for web and public apps. /Le périmètre de l’API représente un regroupement d’autorisations qui garantit que votre demande d’API peut accéder aux fonctions appropriées. Les propriétés peuvent également inclure des URI de redirection pour les applications Web et publiques.
For our testing purposes, ensure that Write access is enabled for both Audiences and List and Subscribers under Contacts. /Pour les tests, assurez-vous que l’accès en écriture est activé pour le public et la liste et les abonnés sous Contacts.
Click Save to finish your component, and give yourself a pat on the back. /Cliquez sur Enregistrer pour terminer votre composant et donnez-vous une tape dans le dos.
Note /Remarque
Do you want to change the scope after you’ve saved? No problem. Click Edit and adjust the scope as needed. Check out REST API Permission IDs and Scopes on Salesforce Developers to understand what scopes are required for each route. /Voulez-vous modifier le scope après avoir enregistré? Aucun problème. Cliquez sur Modifier et ajustez le scope selon vos besoins. Consultez les ID d’autorisation et les étendues de l’API REST sur les développeurs Salesforce pour comprendre les étendues requises pour chaque route.
Get Credentials /Obtenez des informations d’identification
Now that your package is created and your component is added, you need to identify the authentication credentials that you’ll use for your integration. Easy! When you create an API integration in Installed Packages, the Marketing Cloud authorization server generates a client ID and client secret. /Maintenant que votre package est créé et que votre composant est ajouté, vous devez identifier les informations d’authentification que vous utiliserez pour votre intégration. Facile! Lorsque vous créez une intégration d’API dans des packages installés, le serveur d’autorisation Marketing Cloud génère un ID client et un secret client.
Check out the component for the installed package you just created. You can locate the client ID and client secret, if applicable, under the component details. /Découvrez le composant du package installé que vous venez de créer. Vous pouvez localiser l’ID client et le secret client, le cas échéant, sous les détails du composant.
Note /Remarque
Wondering why we blurred out the Client ID and Client Secret in the image above? You should always store your client ID and secret securely. Never expose this information on the client side via JavaScript or store it in a mobile application. /Vous vous demandez pourquoi nous avons brouillé l’ID client et le secret client dans l’image ci-dessus? Vous devez toujours stocker votre ID client et votre secret en toute sécurité. N’exposez jamais ces informations côté client via JavaScript et ne les stockez pas dans une application mobile.
Access Tokens for Server-to-Server Integrations /Jetons d’accès pour les intégrations de serveur à serveur
In the client credentials flow, your client application uses this client ID and client secret to request an access token from the Marketing Cloud authorization server. /Dans le flux d’informations d’identification client, votre application cliente utilise cet ID client et ce secret client pour demander un jeton d’accès au serveur d’autorisation Marketing Cloud.
The access token gives your application access to Marketing Cloud’s REST and SOAP services. (The client credentials grant type doesn’t have refresh tokens.) / Le jeton d’accès permet à votre application d’accéder aux services REST et SOAP de Marketing Cloud. (Le type d’octroi des informations d’identification client n’a pas de jetons d’actualisation.)
Here’s how it works. /Voici comment ça fonctionne.
Your application requests an access token by providing the client ID and secret that was generated for the package you created in Marketing Cloud. /Votre application demande un jeton d’accès en fournissant l’ID client et le secret qui ont été générés pour le package que vous avez créé dans Marketing Cloud.
The Marketing Cloud authorization server returns an access token for your application to extract. /Le serveur d’autorisation Marketing Cloud renvoie un jeton d’accès à extraire pour votre application.
Your application uses the access token to access Marketing Cloud resources and the REST or SOAP base URLs returned as part of the token response. /Votre application utilise le jeton d’accès pour accéder aux ressources Marketing Cloud et aux URL de base REST ou SOAP renvoyées dans le cadre de la réponse du jeton.
So how does your application request the access token for the server-to-server integration we’re exploring in this unit? /Alors, comment votre application demande-t-elle le jeton d’accès pour l’intégration de serveur à serveur que nous explorons dans cette unité?
Construct a static endpoint for your request by appending v2/token to the Authorization Base URI provided to you when you created the API integration in Installed Packages./Construisez un point de terminaison statique pour votre demande en ajoutant v2 / token à l’URI de base d’autorisation qui vous a été fourni lorsque vous avez créé l’intégration d’API dans les packages installés.
Request an access token by providing the client ID and secret that you received when you created the API integration in Installed Packages. /Demandez un jeton d’accès en fournissant l’ID client et le secret que vous avez reçus lorsque vous avez créé l’intégration d’API dans les packages installés.
When the access token expires, your application must request a new access token using the same v2/token route as before. The lifetime of an access token is 20 minutes. Here’s an example request: /Lorsque le jeton d’accès expire, votre application doit demander un nouveau jeton d’accès en utilisant la même route v2 / token qu’avant. La durée de vie d’un jeton d’accès est de 20 minutes. Voici un exemple de demande:
Just a reminder that in this example, the scope reflects the enabled permissions for the API request and the account ID is the MID for the account. /Juste un rappel que dans cet exemple, le périmètre reflète les autorisations activées pour la demande d’API et l’ID de compte est le MID du compte.
Marketing Cloud then returns an access token. Your application must extract the access token and store it safely. Here’s an example response: /Marketing Cloud renvoie ensuite un jeton d’accès. Votre application doit extraire le jeton d’accès et le stocker en toute sécurité. Voici un exemple de réponse:
Ready to give this a try? In the next unit, we walk through a simple Marketing Cloud project to validate your setup. /Prêt à essayer? Dans l’unité suivante, nous parcourons un simple projet Marketing Cloud pour valider votre configuration.