Panique à bord ! En juin dernier, en l’espace de trois jours notre trafic Google Shopping s’est effondré passant de plusieurs milliers de requêtes quotidiennes à seulement quelques centaines.

Évolution du trafic Shopping entre Juin et Octobre 2015
Figure 1 – Évolution du trafic Shopping entre Juin et Octobre 2015.

Retour d’expérience sur 3 mois d’été dédiés à une découverte accélérée de Google Merchant Center. Un exemple concret sur l’intérêt d’une approche par micro-services.

Le flux pour Google Shopping

Comment ça marche ?

Jusque là, comme beaucoup d’e-commerçants, nous déposions chaque jour via FTP sur les serveurs de Google une version à jour de notre catalogue. En y précisant bien évidemment les références des produits que nous proposons mais aussi le prix et la disponibilité pour chacun d’entre eux.

Comme nous le faisons avec beaucoup d’autres partenaires, ce catalogue se présente sous la forme d’un fichier texte, au format CSV ou TSV et contient nombre d’informations pour chacun de nos produits. Si créer ce genre de catalogue peut paraître simple au regard de la documentation fournie par Google nous verrons plus loin que c’est loin d’être évident.

L’administration de votre flux auprès de Google se fait via une interface web sur le site merchants.google.com. C’est le seul endroit où vous trouverez des informations sur l’état de votre flux.

Les produits de notre flux refusés

Depuis plus d’un an, tout se passait bien dans le meilleur des mondes avec notre catalogue chez Google Merchant.

Les règles de Google

Si les refus de la part de Mountain View sont stricts et sans négociations possibles, c’est le plus souvent pour des raisons évidentes. Pas la peine par exemple d’essayer de faire remonter des pilules qui permettent d’améliorer la capacité et l’abondance du sperme dans Google Shopping.

Une fois que vous acceptez que Google impose ses propres règles et qu’ils peuvent refuser des produits autorisés à la vente sur le marché, vous prenez l’habitude de voir certains de vos produits refusés. Mais la part reste infime.

Or, voilà qu’au milieu du mois de juin dernier, l’intégralité de notre catalogue s’est vue refuser par Google en l’espace de quelques jours seulement (voir Figure 1, Évolution du trafic Adwords entre Juin et Octobre 2015).

Refus complet du catalogue

A ce moment là, notre correspondant chez Google nous a indiqué ne pas avoir de détails sur le refus en masse de nos produits. À nous donc, d’en trouver les raisons et de corriger notre catalogue avant de le soumettre à nouveau au Merchant Center de Google.

C’est un message d’erreur affiché dans la console de notre flux qui nous a mis la puce à l’oreille. La disponibilité indiquée était différente de celle affichée sur votre site web (Figure 2, Refus affiché par Google dans Merchant Center). Jusque là, nous étions habitués aux refus pour le non respect des règles en matière de produits. Mais pas au niveau des prix ou de la disponibilité.

Après plusieurs mois de forte croissance et après une période où notre offre a grossi jour après jour notre stratégie de présence dans Google Shopping s’est avérée ne plus être adaptée à ce que nous avons connu jusqu’alors.

Refus affiché par Google dans Merchant Center
Figure 2 – Refus affiché par Google dans Merchant Center.

La volatilité des prix

1001pharmacies est une place de marché qui offre la possibilité aux pharmaciens d’exposer leur offre de produits de santé en ligne. Notre métier est de les accompagner sur le marché de l’e-commerce.

Mise à jour à flux tendu

Les prix que nous affichons donc sur notre site dépendent de l’offre disponible chez les pharmaciens que nous représentons. Nos prix présentent donc une forte variation en fonction de l’offre disponible sur le marché.

Chaque nouvelle commande sur le site 1001pharmacies.com peut avoir un impact sur le prix affiché dans une page produit. En effet, la difficulté pour une place de marché, c’est que le prix le moins cher évolue constamment.

Des données qui expirent plus vite dans le temps

Jusqu’alors la mise à jour de notre flux auprès de Google Merchant Center se faisait lors d’une routine quotidienne. Notre premier réflexe a été d’augmenter la fréquence de ces mises à jour. De toutes les 24 heures, nous sommes passés à une mise à jour toutes les 6 heures.

Cette première modification nous a permis de corriger les problèmes liés à la disponibilité des produits. Mais bon nombre d’erreurs sur les prix ont persisté. Il arrive, sur des produits en forte demande que les prix varient. En effet, lorsqu’un vendeur avec la meilleure offre ne dispose plus de stocks sur un produit, c’est un autre vendeur qui décrochera le marché. Jusqu’à ce que le premier se réapprovisionne. A cela s’ajoutent les effets de la concurrence.

Évolution du prix d’un savon Avène du 01/12/2015 au 18/12/2015
Figure 3 – Évolution du prix d’un savon Avène du 01/12/2015 au 18/12/2015.

Comme l’illustre l’évolution du prix d’un savon dans la figure 3 le prix peut varier de moins de 6 à plus de 8 euros et cela, même au sein d’une journée. Pour résoudre ce problème, nous avons choisi de mettre à jour notre catalogue en temps réel auprès de Google. En utilisant une API.

Content API For Shopping

Au lieu d’exporter encore et encore notre catalogue et notre inventaire, nous avons pris la décision de mettre en place durant l’été une gestion des stocks en flux tendu avec Google Shopping en utilisant son API.

Pour ce faire, nous avons développé un petit projet dont le rôle est désormais d’indiquer à Google Merchant les mises à jour de prix et/ou de quantité disponible de nos produits. Connecté à la boutique et au backoffice de gestion des stocks de nos partenaires avec RabbitMQ, ce nouveau projet que nous avons appelé Njörd (dieu de la Mer et des Vents dans la mythologie nordique) nous permet une mise à jour asynchrone mais en temps réel de notre catalogue Google Shopping.

À chaque nouvelle commande ainsi qu’à chaque mise à jour du stock d’un de nos partenaires, un nouveau message est émis dans notre Exchange product_inventory_update qui sera ensuite mis en attente pour être traité par Njörd.

Mise à jour de l’inventaire exécuté de manière asynchrone avec RabbitMQ
Figure 4 – Mise à jour de l’inventaire exécuté de manière asynchrone avec RabbitMQ.

1er Septembre : We’re back !

Mardi 1er septembre, tout est en place. Deux mois après la coupure complète de notre flux Google Shopping nous déployons nos nouveaux outils pour gérer en temps réel les prix et les disponibilités.

Petit à petit, nous réactivons nos produits pour pouvoir apparaître à nouveau dans les résultats de recherche des internautes sur Google Shopping. Njörd fait ses preuves. Lors de certains pics de messages à traiter il nous suffit d’augmenter le nombre des instances de ce dernier pour éviter les engorgements et conserver un traitement en temps réel.

Diagnostic de l’API dans Google Merchant Center
Figure 5 – Diagnostic de l’API dans Google Merchant Center.

Jeudi noir

Pendant 30 jours tout se passe bien. Jusqu’au jeudi 1er octobre. L’intégralité du catalogue est à nouveau refusée par Google Merchant. Encore une fois, les détails sont flous. Dans l’interface de gestion de notre flux, Google laisse simplement entendre des problèmes liés au catalogue.

Produit refusé par Google
Figure 6 – Produit refusé par Google.

La taxonomie de Google

Sachant que les règles de Google que nous avons évoquées plus haut ont tendance à être très contraignantes sur certains mots clés nous avons fait des essais pour bannir certains mots ou certaines expressions de nos descriptifs.

Nous avons par exemple déjà pu remarquer que certains produits à base de Cartilage de Requin sont proscrits. Google Merchant réagit ainsi assez violemment sur certains mots clés en refusant très vite l’intégralité d’un catalogue.

Au bout de quelques jours de recherche et d’expérimentations, nous avons pris le temps de creuser la piste des catégories. Jusqu’alors nous n’avions pas de problèmes, Merchant faisait le lien avec l’arborescence dans laquelle nous classons nos produits. Mais apparemment il serait devenu plus sensible à ce facteur (voir figure 7, Erreurs dans le flux concernant l’attribut google_product_category).

Erreurs dans le flux concernant l’attribut google_product_category
Figure 7 – Erreurs dans le flux concernant l’attribut google_product_category.

Conclusion

Si votre offre de produits dans Google Merchant s’expose à une forte variation des prix pensez, en plus d’envoyer votre flux, à mettre à jour le plus régulièrement possible votre offre et vos disponibilités. Le moteur de recherche n’appréciera pas de voir la moindre différence entre vos déclarations et ses passages réguliers sur votre site.

Une autre astuce, celle de la mise à jour automatique. Si vos microdata sont correctement déclarées sur vos pages produits, vous pouvez dire à Google Merchant d’en tenir compte lors de ses différents passages depuis merchants.google.com/Home#automaticitemupdatesettings.

Quelle que soit la méthode que vous utilisez, prenez soin à ce que les informations que vous fournissez à Google soient à jour et respectent les règles imposées par le moteur de recherche. Ce dernier ne vous fera aucun cadeau.


Auteur

methylbro

methylbro  (@methylbro)

Thomas Gasc, développeur.

« Everyone Can Cook »

Ratatouille, Pixar, 2007