• Funkce
  • Služby
    • Bezpečnost e-mailingu
    • Partnerství s agenturami
    • Vzdělávání v oboru
    • Zviditelnění značky v inboxu
    • Doručitelnost
  • Podpora
    • Znalostní báze
    • API dokumentace
    • Blog
    • Dostupnost
    • BIMI inspektor
  • O nás
    • Kontakt
    • Pro média
    • Obchodní podmínky
    • Doporučení ochrany osobních údajů
    • Podmínky zpracování osobních údajů
  • Funkce
  • Služby
    • Bezpečnost e-mailingu
    • Partnerství s agenturami
    • Vzdělávání v oboru
    • Zviditelnění značky v inboxu
    • Doručitelnost
  • Podpora
    • Znalostní báze
    • API dokumentace
    • Blog
    • Dostupnost
    • BIMI inspektor
  • O nás
    • Kontakt
    • Pro média
    • Obchodní podmínky
    • Doporučení ochrany osobních údajů
    • Podmínky zpracování osobních údajů
  • Login
    EN CS
Mailkit logo
  • Funkce
  • Služby
    • Bezpečnost e-mailingu
    • Partnerství s agenturami
    • Vzdělávání v oboru
    • Zviditelnění značky v inboxu
    • Doručitelnost
  • Podpora
    • Znalostní báze
    • API dokumentace
    • Blog
    • Dostupnost
    • BIMI inspektor
  • O nás
    • Kontakt
    • Pro média
    • Obchodní podmínky
    • Doporučení ochrany osobních údajů
    • Podmínky zpracování osobních údajů
  • Funkce
  • Služby
    • Bezpečnost e-mailingu
    • Partnerství s agenturami
    • Vzdělávání v oboru
    • Zviditelnění značky v inboxu
    • Doručitelnost
  • Podpora
    • Znalostní báze
    • API dokumentace
    • Blog
    • Dostupnost
    • BIMI inspektor
  • O nás
    • Kontakt
    • Pro média
    • Obchodní podmínky
    • Doporučení ochrany osobních údajů
    • Podmínky zpracování osobních údajů
  • Login
    EN CS
EN CS
Login
  • Mailkit
  • Podpora
  • Znalostní báze
  • Práce se šablonami
  • Práce s daty
  • Kampaně (16)
    Správa kampaní E-mailové kampaně Remarketingové kampaně Transakční kampaně Konfirmační kampaně SMS kampaně Obsah a personalizace kampaní Testování a náhledy kampaní Vkládání odkazů Pokročilé trackování odkazů Seznam systémových tagů AB testování kampaní Podmíněné doručení Nastavení rozesílání kampaní Správce souborů Správa anket
  • Scénáře (3)
    Správa scénářů Editor scénářů Nody
  • Příjemci (6)
    Správa seznamů příjemců Manuální import příjemců Přihlašovací formulář Engagement skóre Filtrování příjemců Odhlašování příjemců
  • Reporty (6)
    Souhrnné reporty Report kampaně Report rozesílky kampaně Report událostí Reporty příjemců Report doručitelnosti
  • Práce se šablonami (10)
    Šablony e-mailů Šablony uživatelského rozhraní Šablony micro-site Styly obsahu Použití funkcí data a času Logické podmínky Práce s daty Including a processing Plug-iny Filtry a funkce
  • Správa účtu (8)
    Můj účet Dvoufázové ověření (2FA) Datové zdroje Integrace Štítky a Témata SPF záznamy domény DMARC záznam domény Mailkit Cookies
  • Vizuální tvůrce (6)
    Jak Vizuální tvůrce pracuje Obsahové bloky a práce s nimi Moduly Smart elementy Podmíněné bloky Předpřipravené šablony
  • Kampaně
  • Scénáře
  • Příjemci
  • Reporty
  • Práce se šablonami
  • Správa účtu
  • Vizuální tvůrce
Správa kampaní E-mailové kampaně Remarketingové kampaně Transakční kampaně Konfirmační kampaně SMS kampaně Obsah a personalizace kampaní Testování a náhledy kampaní Vkládání odkazů Pokročilé trackování odkazů Seznam systémových tagů AB testování kampaní Podmíněné doručení Nastavení rozesílání kampaní Správce souborů Správa anket
Správa scénářů Editor scénářů Nody
Správa seznamů příjemců Manuální import příjemců Přihlašovací formulář Engagement skóre Filtrování příjemců Odhlašování příjemců
Souhrnné reporty Report kampaně Report rozesílky kampaně Report událostí Reporty příjemců Report doručitelnosti
Šablony e-mailů Šablony uživatelského rozhraní Šablony micro-site Styly obsahu Použití funkcí data a času Logické podmínky Práce s daty Including a processing Plug-iny Filtry a funkce
Můj účet Dvoufázové ověření (2FA) Datové zdroje Integrace Štítky a Témata SPF záznamy domény DMARC záznam domény Mailkit Cookies
Jak Vizuální tvůrce pracuje Obsahové bloky a práce s nimi Moduly Smart elementy Podmíněné bloky Předpřipravené šablony
Hledat

Práce s daty

Možnost přístupu k externím zdrojům dat a používání těchto dat v rámci šablon je jednou z nejvýkonnějších funkcí Mailkitu. Z externích zdrojů dat je možné jak načítat data do seznamů příjemců, tak do šablon a vytvářet tak personalizovaný obsah zpráv. Právě v šablonách je to místo, kde můžete naplno využít svá BI data a kde se naplno může projevit síla šablonovacího jazyka.

Firmy mají přebytek dat – takový, že vznikl zcela nový obor věnující se analýze dat. Není divu, že marketéři dychtivě touží po možnosti využít data, která mají k dispozici. Ať už se jedná o jednoduchá data, která pomohou marketérům zrychlit vytváření obsahu, nebo data o zákaznících, která pomohou řídit personalizaci. Superschopnosti Mailkitu se prokáží vždy, kdy se bude jednat o práci s daty.

Začněme naši datovou cestu tím, že vytvoříme základní integrace pomocí datových zdrojů. V tomto dokumentu se zaměříme na využití zdrojů dat XML a SQL, protože ty jsou nejčastěji využívanými typy datových zdrojů ve většině společností. XML zdrojem mohou být jak jednoduché RSS kanály, tak i komplexní zdroje generované z Google Sheets. SQL zdrojem jsou obvykle velké datové sady – ať už to jsou data z produktových feedů nebo z jakékoli jiné datové sady, kde použití SQL zdrojů pro přístup k datům poskytuje výhodu.

Tento dokument bude používat ukázkové zdroje dat, které vám pomohou pochopit základy práce s daty.

1) Začněte vytvořením datového zdroje s názvem WIKINEWS, s typem XML, s cílem nastaveným na Šablonu a URL zdrojem: https://en.wikipedia.org/w/api.php?action=featuredfeed&feed=onthisday

Vytvoření datového zdroje

2) Dále vytvořte datový zdroj nazvaný PRODUCTS, s typem SQL, zdrojovým formátem Google Merchant Feed a URL zdrojem: https://static.mailkit.eu/templates/google-feed.xml

Vytvoření SQL datového zdroje

3) Následně otevřete nově vytvořený zdroj dat PRODUCTS a klikněte na tlačítko Import. Po dokončení importu již budou produkty z feedu dostupné v databázi SQL. Zdroj můžete také nastavit tak, aby se automaticky aktualizoval podle časového plánu, aby se proces zautomatizoval a data byla neustále aktuální.

Jakmile nastavíte zdroje dat v menu Profil –> Datové zdroje, bude potřeba dané zdroje přiřadit k šabloně. Datové zdroje lze k šabloně přiřadit jak při zakládání šablony, tak i po založení v jejích detailech. Stačí kliknout na tlačítko Upravit v bloku Informace o šabloně.

Díky přiřazení datových zdrojů k šabloně bude možné přistupovat k datům z těchto zdrojů přímo ze šablony.

Připojení datových k šabloně

Dalším krokem je jít do šablony a začít pracovat s daty. Protože každý zdroj má jinou strukturu, jazyk šablon umožňuje vypsat data, která jsou k dispozici pro šablonu. Příprava šablony by tedy měla začít získáním výpisu struktury dat, tzv. dumpem:

<pre>[% USE Dumper; Dumper.dump(data) -%]</pre>

Ve výše uvedeném případě funkce Dumper vypíše obsah datové struktury, ale může být také použita k výpisu jakékoli jiné struktury. Nejběžnější struktury jsou shared (pro nestrukturované proměnné z API volání / deliveru feedů), data (strukturovaná data ze zdrojů dat / API volání), Event & EventItems (data události eventAPI), recipient (data příjemce) a email (obsahové proměnné).
V případě našich zdrojů dat bude výstup šablony něco jako:

$VAR1 = {
    'DS_XML_WIKINEWS' => {
        'xmlns:dc' => 'http://purl.org/dc/elements/1.1/',
        'version' => '2.0',
        'channel' => {
            'lastBuildDate' => 'Fri, 14 Jun 2019 07:38:20 GMT',
            'title' => 'Wikipedia "On this day..." feed',
            'link' => 'https://en.wikipedia.org/wiki/Main_Page',
            'language' => 'en',
            'item' => [
                {
                'guid' => {
                    'content' => 'http://en.wikipedia.org/wiki/Special:FeedItem/onthisday/20190605000000/en',
                    'isPermaLink' => 'false'
                },
                'link' => 'http://en.wikipedia.org/wiki/Special:FeedItem/onthisday/20190605000000/en',
                'dc:creator' => {},
                'title' => 'On this day: June 5',
                'pubDate' => 'Wed, 05 Jun 2019 00:00:00 GMT',
                'description' => "
    ...
    ...
}

Jak vidíte v našem příkladu, struktura nese název datového zdroje (DS_XML_WIKINEWS) a odpovídá původnímu XML souboru. Data jsou ve struktuře data.DS_XML_WIKINEWS. Pro přístup k elementu title dodržíme strukturu a pro vypsání názvu použijeme:

[% data.DS_XML_WIKINEWS.channel.title -%]

Stejným způsobem můžeme vypsat datum zveřejnění pubDate pomocí:

[% data.DS_XML_WIKINEWS.channel.pubDate -%]

Nebo ještě lépe použijeme funkce data a času pro formátování výstupu dle potřeby:

[% date.format(data.DS_XML_WIKINEWS.channel.pubDate) -%]

Zajímavější část XML spočívá v seznamu článků ve struktuře data.DS_XML_WIKINEWS.channel.item. Pokud bychom použili jednoduchý přístup k datům pro výpis dat (jak jsme to udělali pro title či pubDate):

[% data.DS_XML_WIKINEWS.channel.item -%]

Výstup by vypadal podobně jako "ARRAY (0x56032b920168)", protože se jedná o strukturované pole, které musí být zpracováváno po jednotlivých položkách. To se provádí iterací přes pole položek:

[% FOREACH data.DS_XML_WIKINEWS.channel.item -%]
[% END -%]

Tímto způsobem iterujeme obsah pole a můžeme vypsat data ve struktuře podle jejich názvu:

[% FOREACH data.DS_XML_WIKINEWS.channel.item -%]
    <div><a href="[% link -%]">[% title -%]</a></div>
[% END -%]

Nyní, když máme jednoduchý výstup, je čas se podívat, jak jej můžeme optimalizovat. Můžeme například chtít vidět pouze 5 záznamů z pole, zvýraznit sudé a liché záznamy atd. Toho lze jednoduše dosáhnout smyčkami pomocí loop.count a loop.parity směrnic.

Použití SQL zdrojů dat

Stejná iterace platí pro všechna data polí a jejich zpracování v rámci šablon bez ohledu na zdroj. Další zdroj, který jsme přidali, je zdroj dat typu SQL, který je třeba nejprve inicializovat. To se provádí vytvořením SQL připojení ke zdroji dat podle jeho názvu:

[% USE dbh_sql = DBI (dbh = shared.DBI_DS_SQL_PRODUCTS) -%]

Nyní, když je navázáno spojení, lze příkazy SQL použít k načítání dat z SQL tabulek zdrojů dat. Protože všechny tabulky zákazníka sídlí ve stejné databázi, není nutné vytvářet samostatné připojení pro každý SQL zdroj dat. Aby bylo možné spouštět SQL příkazy, musíme být schopni identifikovat základní název tabulky. Schéma pojmenování je ds_ID_název, kde ds_ je předpona, ID je ID číslo zdroje dat a název představuje uzavřenou větev s položkami. V případě produktových feedů např. Google, Heureka, atd., je vždy název „products“. V našem případě je zdrojem dat zdroj Google Merchant a má ID 1234, což má za následek název databázové tabulky ds_1234_products. Můžeme se tedy snadno dotazovat databázi pomocí SQL příkazu:

[% query_items = dbh_sql.prepare('SELECT * FROM ds_3223_products ORDER BY RAND() LIMIT 5') %]

a provést dotaz načítání dat do pole items:

[% items = query_items.execute () -%]

Nyní si můžeme snadno nechat zobrazit záznamy pomocí dumperu:

[% FOREACH items -%]
<pre>[% USE Dumper; Dumper.dump(items) -%]</pre>
[% END -%]

Výpis nám poskytne informace o názvech sloupců:

'ITEM' => {
	'custom_label_2' => 'pneu',
	'price' => '10982 CZK',
	'custom_label_1' => '38',
	'brand' => 'Pirelli',
	'custom_label_0' => 'osobni-zimni',
	'image_link' => 'https://www.mojepneu.cz/pics/pneu/pirelli_sottozero270.jpg',
	'link' => 'https://www.mojepneu.cz/pirelli-winter-270-sottozero-serie-ii-245-35-r20-95w-xl',
	'gtin' => undef,
	'condition' => 'new',
	'shipping' => undef,
	'id' => '283136',
	'availability' => 'in stock',
	'description' => "Pirelli WINTER 270 SOTTOZERO SERIE II - Pneumatika Sottozero Serie II, kter\x{e1} vych\x{e1}z\x{ed} p\x{159}\x{ed}mo z pneumatiky Sottozero W270 (uvedena v roce 2007) a ze \x{161}pi\x{10d}kov\x{fd}ch znalost\x{ed} segmentu U.H.P., byla vyvinuta jako \x{201e}modern\x{ed} zimn\x{ed} pneumatika\x{201c}, kter\x{e1} by splnila po\x{17e}adavky koncov\x{fd}ch u\x{17e}ivatel\x{16f} na v\x{fd}konnost a bezpe\x{10d}nost, p\x{159}i\x{10d}em\x{17e} do\x{161}lo k p\x{159}ijet\x{ed} ur\x{10d}it\x{fd}ch technick\x{fd}ch diferenciac\x{ed} mezi velikostmi W a H/V, a pneumatika tak v\x{17e}dy nab\x{ed}z\x{ed} to, co \x{159}idi\x{10d}i \x{17e}\x{e1}daj\x{ed}. Pirelli WINTER 270 SOTTOZERO SERIE II",
	'title' => "Pirelli WINTER 270 SOTTOZERO SERIE II 245/35 R20 95W  XL - zimn\x{ed} pneumatiky",
	'identifier_exists' => 'FALSE'
},

a stejně tak některé doplňující podrobnosti o iteraci, jako je další položka, velikost datové sady, atd. Tento příklad vybere 5 náhodných položek, ale příkaz select může být podle potřeby výrazně komplexnější:

[% query_items = dbh_sql.prepare('SELECT * FROM ds_3223_products WHERE `availability`="in stock" AND `condition`="new" ORDER BY RAND(id) LIMIT 5') %]

Dalším krokem by bylo zkombinovat tento dotaz s daty příjemců pro vytvoření vlastního výstupu. Nejprve musíme zajistit, že údaje o příjemci jsou vždy dostupné, nebo je zde alternativní obsah. V této ukázce přiřazujeme proměnné brand hodnotu z vlastního pole příjemce č. 2 (CUSTOM2), nebo v případě, že příjemce tuto hodnotu má prázdnou, vrátíme všechny záznamy.

[% IF recipient.CUSTOM2 ! = '' -%]
    [% brand = recipient.CUSTOM2 -%]
[% ELSE -%]
    [% brand = '%' -%]
[% END -%]

Dále aktualizujeme náš SQL dotaz:

[% query_items = dbh_sql.prepare('SELECT * FROM ds_3223_products WHERE `availability`="in stock" AND `brand` LIKE ? ORDER BY RAND(id) LIMIT 5') %]

a příkaz doplníme o proměnnou brand:

[% items = query_items.execute(brand) -%]

Výsledkem bude nyní pouze 5 náhodných produktů konkrétní značky uvedené v seznamu pole příjemce CUSTOM2 nebo 5 náhodných produktů, pokud příjemce žádnou hodnotu v CUSTOM2 nastavenou nemá.

Mějte na paměti, že se jedná pouze o jednoduchý příklad a správná šablona by měla obsahovat další alternativní zpracování. Je třeba zvážit, nejen aby neselhal výběr dat z databáze v důsledku chybějících hodnot, ale také jak nechávat zpracovat prázdné sady výsledků a jak zajistit, že pro takové případy bude vždy existovat záložní obsah.
Ošetření prázdných výsledků může být velmi snadné:

[% items=query_items.execute(brand) -%]
[% IF items.size == 0 -%]
    [% items=query_items.execute('%') -%]
[% END -%]

Nejprve dojde ke spuštění SQL dotazu s parametrem brand odpovídajícím hodnotě uživatele. Následně dojde k vyhodnocení velikosti výsledku dotazu. Pokud má výsledek dotazu nulovou velikost dojde k opakovanému spuštění dotazu, tentokráte na všechny záznamy bez omezení značky. Mohl by zde však být i zcela odlišný dotaz pro získání zcela jiné sady dat.

Vždy mějte na paměti, že dotazy MUSÍ být efektivní. Dotazy se budou vykonávat opakovaně pro každého příjemce vaší zprávy, a tak v případě špatně koncipovaných dotazů může dojít k výraznému zpomalení rozesílání zpráv. Vždy používejte pro vaše podmínky WHERE a GROUP v dotazech pouze indexovaná pole. Rozsah indexovaných polí se liší podle typu použitého zdroje. U předdefinovaných produktových feedů jsou indexována pole ID a název produktu, kategorie, dostupnost a značka v závislosti na dostupnosti těchto polí ve feedu. U vlastního formátu je možné vybrat primární klíč a indexovaná pole při nastavování datového zdroje.

V případě dotazů či nejasností týkajících se použití dat v šablonách se neváhejte obrátit na naši zákaznickou podporu.

Kontaktujte nás

Dejte nám vědět, jaké máte v e-mailingu cíle a my pro vás vymyslíme vhodný plán.

+420 277 001 800
sales@mailkit.com


Zpracování údajů poskytnutých v tomto formuláři se řídí Podmínkami pro zpracování osobních údajů.

Povinné
Povinné
Povinné
Mailkit logo

Česká e-mailingová platforma s vlastní infrastrukturou a jednička v zahraniční rozesílce.

 

  • Funkce
  • Služby
  • Podpora
  • O nás

služby

  • Bezpečnost e-mailingu
  • Partnerství s agenturami
  • Vzdělávání v oboru
  • Zviditelnění značky v inboxu
  • Doručitelnost

Podpora

  • Znalostní báze
  • API dokumentace
  • Blog
  • Dostupnost
  • BIMI inspektor
Logo Maawg
Logo Experience
Logo CSA
Logo Signal spam
Logo ISO-27001
Logo ISO-9001
This site is protected by reCAPTCHA and the Google Privacy Policy and Terms of Service apply.
© 2006-2022 Mailkit - All rights reserved