Zastupte programátora – vytvořte si vlastní feedy

Zastupte programátora – vytvořte si vlastní feedy

Občas se stane, že s vámi vývojář nekomunikuje. A občas už toho máte dost. V analytice se dost věcí dá vyřešit pomocí Google Tag Manager, chyby v Google Merchants feedu se dají vyřešit doplňkovým feedem v Google sheetech, ale co když vám nějaký feed chybí?

U jednoho klienta jsme chtěli vytvořit DSA feed, kde jsme chtěli mít rozdělené do kategorií, ale struktura URL vůbec nebyla příjemná, dost URL jsme ve feedu vůbec nechtěli, rychlost přidávání byla velká, vývojář nekomunikoval a KPI tlačila.

Je možné využít Mergado nebo PPC Bee pro DSA/Merchants feed, ale co když klient prostředky nemá rozpočtované nebo by využití Mergado nedávalo finanční smysl – jak vidíte, jedná se o kód na 20 řádků a kvůli tomu by klient platil paušál klidně roky.

Feed si můžete sami vytvořit, stačí na to základy PHP. Podobným způsobem jsme na Wedosu pracovali s feedem o 10.000 položek a feed se vygeneroval za 2 – 4 sekundy, takže se zdá, že nutný výpočetní výkon je docela malý.

Přikládám jednoduchou ukázku, kde ze sitemap našeho webu děláme feed pro DSA, v kterém jsou pouze nějaké stránky.

<?php
header('Content-Disposition: attachment; filename="feed.csv";');

$data =  simplexml_load_file("https://marketingmakers.net/post-sitemap.xml");
echo "Page URL,Custom label \n";
foreach ($data->url as $url)
{
     foreach($url->loc as $loc) {
        if ((strpos($loc, 'analyti') !== false))  {
          echo $loc . ",analytika \n";
        }  elseif ((strpos($loc, 'ppc') !== false))  {
          echo $loc . ",ppc \n";
        } if ((strpos($loc, 'wordpress') !== false))  {
          echo $loc . ",wordpress \n";
        } 
     } 
}
?>

Kód funguje takto:

  • nejdřív pomocí header určíte, že si přejete, aby se po navštívení dané adresy feedu, například toto demo stáhne soubor feed.csv,
  • dále nahrajete feed do proměnné $data pomocí simplexml_load_file – z feedu se stane dobře uchopitelný objekt,
  • následně nadefinujete hlavičku tohoto CSV feedu,
  • a pak už pouze procházíte tento nově vzniklý objekt např. pomocí foreach,
  • pomocí podmínek if, elseif se ptáme, zda „url“ adresa obsahuje nějaký text a podle toho nastavujeme štítek.

A to je vše. Podobně půjde vyřešit jakýkoliv feed, akorát že výstupem nebude CSV, ale třeba XML a bude se lišit formát výstupu.