Requête

Créer une requête

Une requête permet de sélectionner une cible selon des critères. Vous pouvez associer un code segment au résultat de la requête et y insérer des données additionnelles.
Pour plus d’informations sur des exemples de requêtes, voir cette section.

Remarque

Les activités de requêtes ne sont pas compatibles avec les champs CLOB si vous utilisez Oracle.

L’utilisation et la gestion des données additionnelles sont présentées dans la section Ajouter des données.

Le lien Editer la requête… permet de définir le type de ciblage, les restrictions et les critères de sélection de la population de la manière suivante :

  1. Sélectionnez la dimension de ciblage et de filtrage. Par défaut, la cible est sélectionnée parmi les destinataires. La liste des filtres de restriction est la même que celle utilisée lors du ciblage d'une diffusion.

    La dimension de ciblage correspond au type d'élément sur lequel on va travailler, par exemple la population ciblée par l'opération.

    La dimension de filtrage permet d'aller chercher ces éléments, par exemple les informations liées à la personne ciblée (les contrats, les soldes de comptes, etc.).

    Voir à ce sujet la section Dimension de ciblage et dimension de filtrage.

    Une requête peut être basée sur les données de la transition entrante, le cas échéant, en sélectionnant Schéma temporaire lors du choix des dimensions de ciblage et de filtrage.

  2. Définissez la sélection des populations via l'assistant. Les champs à renseigner peuvent différer en fonction du type de cible. Vous pouvez afficher un aperçu de la population ciblée avec vos critères actuels via l'onglet Aperçu.

    La création et l'utilisation des filtres et des requêtes sont présentées dans cette section.

  3. Ajoutez éventuellement des critères de filtrage manuellement si vous avez sélectionné Critères de filtrage à l'étape 1 ou via l'option Filtres > Filtre avancé….

    Vous pouvez également ajouter des conditions de groupement de données en cochant la case correspondante. Pour cela, la dimension de filtrage doit impérativement être différente de la dimension de ciblage de la requête. Pour plus d'informations concernant le groupement, consultez cette section.

    Vous pouvez ajouter plusieurs critères en vous aidant de l'outil de construction d'expressions et les combiner via les opérateurs logiques ET, OU et SAUF. Vous pouvez ensuite afficher la Requête SQL correspondante… à votre combinaison de critères. Voir à ce propos cette section.

    Enregistrez votre filtre si vous souhaitez pouvoir le réutiliser ultérieurement.

Ajouter des données

Les colonnes additionnelles permettent de collecter des informations supplémentaires sur la population ciblée, par exemple ses numéros de contrats, ses abonnements à des newsletters ou son origine. Ces données peuvent être stockées dans la base de données Adobe Campaign ou dans une base externe.

Le lien Ajouter des données… permet de sélectionner les données additionnelles à collecter.

Sélectionnez d'abord le type de données à ajouter :

  • Sélectionnez Données liées à la dimension de ciblage pour sélectionner des données de la base Adobe Campaign.
  • Sélectionnez Données externes pour ajouter des données issues d’une base de données externe. Cette option n’est disponible que si vous avez acquis l’option Federated Data Access. Voir à ce sujet la section Accéder à une base externe (FDA).
  • Sélectionnez l'option Une proposition d'offre pour ajouter un ensemble de colonnes permettant de stocker la meilleure proposition générée par le moteur d'offres. Cette option n'est disponible que si vous avez acquis le module Interaction.

Si aucun module optionnel n'est installé sur la plate-forme, cette étape n'est pas affichée. Vous accédez directement à l'étape suivante.

Pour ajouter des données de la base Adobe Campaign :

  1. Sélectionnez le type de données que vous souhaitez ajouter. Il peut s'agir de données appartenant à la dimension de filtrage ou de données stockées dans des tables liées.

  2. Lorsque les données appartiennent à la dimension de filtrage de la requête, il suffit de les sélectionner dans la liste des champs disponibles afin de les faire apparaître parmi les colonnes de sortie.

    Vous pouvez ajouter :

    • Un champ calculé à partir de données issues de la population ciblée ou un agrégat (nombre d’achats en attente au cours du dernier mois, montant moyen d’un ticket de caisse, etc.). Un exemple est proposé dans la section Sélectionner les données.

    • Un nouveau champ, créé à partir du bouton Ajouter situé à droite de la liste des colonnes de sortie.

      Vous pouvez également ajouter une collection d’informations, par exemple une liste de contrats, les 5 dernières diffusions, etc. Les collections correspondent à des champs dont les valeurs peuvent être multiples pour un même profil (relation 1-N). Voir à ce sujet la section Editer les données additionnelles.

Pour ajouter une collection d'informations liées à une population ciblée :

  1. Sélectionnez l'option Données liées à la dimension de filtrage à la première étape de l'assistant :

  2. Sélectionnez la table contenant les informations à collecter et cliquez sur le bouton Suivant.

  3. Au besoin, indiquez le nombre d'éléments de la collection que vous souhaitez conserver en sélectionnant une des valeurs du champ Données collectées. Par défaut, toutes les lignes de la collection sont récupérées, puis filtrées selon les conditions définies à l'étape suivante.

    • Si un seul élément de la collection correspond aux conditions de filtrage définies à l'étape suivante, sélectionnez Ligne unique dans le champ Données collectées.

      IMPORTANT

      Ce mode optimise la requête SQL générée grâce à une jointure directe sur les éléments de la collection.

      Si la condition initiale n'est pas respectée, le résultat peut être erroné (lignes manquantes ou doublons).

    • Si vous choisissez de récupérer plusieurs lignes (Limiter le nombre de lignes), vous pouvez indiquer le nombre de lignes à collecter.

    • Si les colonnes collectées contiennent des agrégats, par exemple le nombre de sinistres déclarés, la moyenne des dépenses sur un site, etc., vous pouvez utiliser la valeur Agrégats.

  4. Définissez la sous-sélection des éléments de la collection. Par exemple : les achats des 15 derniers jours seulement.

  5. Si vous avez sélectionné l'option Limiter le nombre de lignes, définissez l'ordre de tri des données collectées. Lorsque le nombre de lignes collectées est supérieur au nombre de lignes à conserver que vous avez indiqué, l'ordre de tri permet de définir quelles sont les lignes à conserver.

Exemple : ciblage sur des attributs destinataires simples

Dans l'exemple suivant, la requête cherchera à identifier les hommes de 18 à 30 ans et vivant en France. Cette requête pourra par exemple être utilisée dans un workflow visant à leur faire parvenir une offre qui leur est spécialement réservée.

Remarque

D'autres exemples de requête sont présentés dans cette section.

  1. Nommez votre requête puis sélectionnez le lien Editer la requête….

  2. Sélectionnez Critères de filtrage dans la liste des types de filtres disponibles.

  3. Renseignez les différents critères correspondant à la cible souhaitée. Ici, les critères sont combinés à l’aide de l’opérateur ET. Pour faire partie de la sélection, ils devront donc réunir les quatre conditions suivantes :

    • Les destinataires dont la civilité est "M." (également possible en utilisant le champ Genre et la valeur Masculin).
    • Les destinataires ayant moins de 30 ans.
    • Les destinataires ayant plus de 18 ans.
    • Les destinataires dont le pays de résidence est la France.

    Vous pouvez visualiser le code SQL correspondant à votre combinaison de critères :

  4. Affichez un aperçu des destinataires correspondant à votre requête via l'onglet correspondant afin de vérifier que vos critères sont correctement renseignés :

  5. Sauvegardez éventuellement vos filtres pour pouvoir les réutiliser ultérieurement puis cliquez sur Terminer > Ok.

  6. Poursuivez l'édition de votre workflow en y ajoutant d'autres activités. Une fois ce dernier lancé et l'étape de la requête précédemment créée terminée, le nombre de destinataires trouvés s'affiche. Vous pouvez en afficher le détail via le menu contextuel de la souris (clic droit sur la transition > Afficher la cible).

Paramètres de sortie

  • tableName
  • schema
  • recCount

Ce triplet de valeurs identifie la population ciblée par la requête. tableName est le nom de la table qui mémorise les identifiants de la cible, schema est le schéma de la population (habituellement nms:recipient) et recCount est le nombre d'éléments dans la table.

Cette valeur est le schéma de la table de travail. Ce paramètre est valable pour toutes les transitions avec tableName et schema.

Optimisation des requêtes

La section ci-dessous présente les bonnes pratiques pour optimiser les requêtes exécutées dans Adobe Campaign, ce qui permet de limiter la charge de travail sur la base de données et d’améliorer l’expérience utilisateur.

Jointures et index

  • Les requêtes efficaces reposent sur des index.

  • Utilisez un index pour toutes les jointures.

  • La définition de liens sur le schéma détermine les conditions de jointure. La table liée doit avoir un index unique sur la clé primaire et la jointure doit se trouver sur ce champ.

  • Effectuez des jointures en définissant des clés sur des champs numériques au lieu de champs de chaîne.

  • Évitez d’effectuer des jointures externes. Dans la mesure du possible, utilisez l’enregistrement Zero ID pour obtenir la fonctionnalité de jointure externe.

  • Utilisez le type de données approprié pour les jointures.

    Assurez-vous que la clause where est du même type que le champ.

    Il existe une erreur courante : iBlacklist='3'iBlacklist est un champ numérique et 3 correspond à une valeur de texte.

    Assurez-vous de connaître le plan d’exécution de votre requête. Évitez les analyses de table complètes, en particulier pour les requêtes en temps réel ou quasi temps réel qui s’exécutent toutes les minutes.

Pour plus d’informations, reportez-vous aux sections Bonnes pratiques relatives au modèle de données et Mapping de la base de données.

Fonctions

  • Attention aux fonctions comme Lower(...). Si vous avez recours à la fonction Lower, l’index n’est pas utilisé.

  • Vérifiez soigneusement les requêtes contenant les instructions « like », « upper » ou « lower ». Appliquez « upper » à la saisie utilisateur et non au champ de base de données.

    Pour plus d’informations sur les fonctions, consultez cette section.

Dimensions de filtrage

Utilisez la dimension de filtrage de la requête au lieu de l’opérateur « exists such as ».

Dans les requêtes, les conditions « exists such as » des filtres ne sont pas efficaces. Elles constituent l’équivalent d’une sous-requête dans SQL :

select iRecipientId from nmsRecipient where iRecipientId IN (select iRecipientId from nmsBroadLog where (...))

Il est recommandé d’utiliser plutôt la dimension de filtrage de la requête :

L’équivalent de la dimension de filtrage dans SQL est la jointure interne :

select iRecipientId from nmsRecipient INNER JOIN nmsBroadLog ON (...)

Pour plus d’informations sur les dimensions de filtrage, consultez cette section.

Architecture

  • Créez une plateforme de développement avec des volumes, des paramètres et une architecture similaires à ceux de la plateforme de production.

  • Utilisez les mêmes valeurs pour les environnements de développement et de production. Dans la mesure du possible, les éléments suivants doivent être identiques :

    • Système d'exploitation,
    • Version,
    • Données,
    • Application,
    • Volumes.
    Remarque

    Une fonctionnalité opérationnelle dans un environnement de développement peut ne pas l’être dans un environnement de production. Les données peuvent en effet être différentes de l’un à l’autre. Essayez d’identifier les principales différences pour anticiper les risques et préparer des solutions.

  • Effectuez des configurations qui correspondent aux volumes cible. Les gros volumes nécessitent des configurations spécifiques. Une configuration adaptée pour 100 000 destinataires peut ne pas fonctionner pour 10 000 000.

    Pensez à la façon dont le système va évoluer une fois mis en service. Si un élément fonctionne à petite échelle, il ne sera pas nécessairement adapté à de plus grands volumes. Les tests doivent être effectués avec des volumes similaires à ceux de la production. Vous devez également évaluer l’incidence des évolutions de volumes (nombre d’appels, taille de la base de données) aux heures et aux jours de pointe, et pendant toute la durée du projet.

Sur cette page