Jak na produktový feed, který obsahuje neplatné znaky

srp 25 2017

Odladit produktový feed u zákazníka, který ho nasazuje poprvé, dá zabrat. Když je k nasazení změn nutno zákazníka pokaždé kontaktovat, nebo dokonce předat hlášení třetí straně, může se odladění feedu tak, aby ho Google Merchant Center přijal, natáhnout až na týdny. Vy ale potřebujete feed funkční ihned a produktovou kampaň spuštěnou ideálně včera.

V Triton IT jsme řešili právě takový problém. Popisky produktů načtené z e-shopu obsahovaly znaky neplatné v kódování UTF-8. Google se proto jednoduše rozhodl, že zahodí celý zbytek feedu po výskytu takového znaku.

K vyřešení podobného problému ale úplně stačí mít po ruce vlastní hosting s podporou CGI - např. PHP. Soubor s následujícím kódem jsme nasadili na náš web, a můžeme tak feedy automaticky čistit od nežádoucích znaků:

<?php

if (!isset($_GET['f']) || $_GET['f'] == null) {
  header('Content-Type: text/plain');
  echo 'No feed provided';
  exit(1);
}

$ch = curl_init();
curl_setopt ($ch, CURLOPT_URL, $_GET['f']);
curl_setopt ($ch, CURLOPT_HEADER, 0);
ob_start();
curl_exec ($ch);
curl_close ($ch);
$xml = ob_get_contents();
ob_end_clean();

header('Content-Type: text/xml');
echo preg_replace('/[\x00-\x1F\x7F]/u', '', $xml);
exit(0);

Původní odkaz v Merchant Centru jsme jednoduše nahradili odkazem na náš vlastní web: www.domena.cz/?f=url_na_puvodni_feed a vše hned fungovalo.

Méně výkonné hostingy mohou mít problém s feedy o mnoha produktech, i ten náš ale zvládá zpracovat feedy do 1000 položek pod 1s. Vzhledem k frekvenci stahování jedenkrát denně to nepředstavuje žádnou zátěž.

Jak nastavit dynamický remarketing, když dodavatel nenastavil kód

srp 19 2017

Dynamický remarketing (DR) od Google vyžaduje, aby na e-shopu byl vložen kód obohacený o informace o právě prohlíženém produktu. Co ale dělat, když webmaster kód nenasadil a podle všech předpokladů v nejbližší době nenasadí? Vy ale potřebujete spustit kampaň co nejdříve. Pokud používáte Google Tag Manager (GTM), řešení existuje.

Jaká data potřebujeme

Podle nápovědy je nutno nastavit proměnnou ecomm_prodid, její obsah musí odpovídat ID produktu v Google Shopping feedu. Přestože jako povinná je uvedena pouze proměnná ecomm_prodid, Google AdWords vám bude nadávat a zobrazovat varování pokud nepřidáte i další dvě - ecomm_totalvalue a ecomm_pagetype.

Jak data získáme z webu

Data z e-shopu můžeme do GTM dostat jednoduše pomocí proměnné typu Vlastní kód JavaScript. Tento typ nám umožní spustit vlastní funkci definovanou v GTM a do proměnné uložit její návratovou hodnotu. Tímto způsobem můžeme parsovat obsah stránek.

Pro vytěžení ID produktů můžeme použít například funkci evaluate(), která nám dovolí rychle najít příslušný HTML element pomocí XPath:

function() {
  var element = document.evaluate("//div[@id='productHeader']/td[@class='value']", document, null, XPathResult.ORDERED_NODE_SNAPSHOT_TYPE, null).snapshotItem(0);
  if (element != undefined) {
    var ecomm_prodid = element.innerHTML.trim();
    return ecomm_prodid;
  } else {
    return null;
  }
}

Odladit správný XPath lze testováním na stránce v debug konzoli prohlížeče (většinou dostupné pod F12). Obdobným způsobem jako ecomm_prodid můžeme získat i ecomm_totalvalue.

Jak data dostat do AdWords

Do Google AdWords lze obsah proměnných dostat již jednoduše - buď přímo přes Google AdWords Remarketing tag nebo pomocí vlastních dimenzí proměnné typu Nastavení Google Analytics.