====== Google shits ======
* [[https://developers.google.com/adwords-remarketing-tag/|Adwords remarketing tag]]
* [[https://developers.google.com/analytics/devguides/collection/analyticsjs/events|Event tracking]]
* [[https://developers.google.com/tag-manager/devguide|Google Tag Manager]]
* [[https://developers.google.com/analytics/devguides/collection/analyticsjs/cookies-user-id|Cookies and user ID]]
* [[https://support.google.com/tagmanager/answer/4565987|UserID with Google Tag Manager]]
* [[https://developers.google.com/tag-manager/enhanced-ecommerce|GTM + Enhanced Ecommerce (UA)]]
* [[https://www.google.com/webmasters/tools/home?hl=fr|Google Search Console]] (anciennement Webmaster tools)
* [[https://business.google.com/|Google Business]] - //(use != linked accounts than analytics)//
===== Analytics =====
[[http://analytics.google.com/|Admin]] - [[https://developers.google.com/analytics/devguides/collection/analyticsjs/|Code]]
Ajouter un accès pour un compte tiers : Admin (en bas à gauche) -> Colonne 1 : Gestion des utilisateurs
===== Google Tag Manager =====
Pretty much shit, unless you're in marketing.
The scripts included by GTM are added before the first script in the page. So with the //plans de marquages// where we **have to** put some script before the gtm js we can't make it work.
**Solution :** change the way the GTM js is called. The following code append the gtm into the head (it's supposed to be at the end but only goes just after the js which call it, but that still work).
(function(w,d,s,l,i)
{
w[l]=w[l]||[];w[l].push({'gtm.start': new Date().getTime(),event:'gtm.js'});
var f=d.getElementsByTagName('head')[0],
j=d.createElement(s),dl=l!='dataLayer'?'&l='+l:'';
j.async=true;j.src='//www.googletagmanager.com/gtm.js?id='+i+dl;
f.appendChild(j);
})(window,document,'script','dataLayer','GTM-XXXXXXX');
[[https://tagmanager.google.com|Google Tag manager]]
===== Charger analytics en asynchrone =====
[[https://developers.google.com/analytics/devguides/collection/analyticsjs/|Doc]]
===== Gmaps =====
[[https://developers.google.com/maps/documentation/|Doc Maps]] - [[https://developers.google.com/maps/documentation/javascript/adding-a-google-map|Basic]] - [[https://cloud.google.com/maps-platform/pricing/|Pricing]]
You need a credit card to link any google map now + if you go above the quota you have to pay them 🖕\\
**AND if you give them any credit card info they refuse to delete them + they register them for your personal google account as well AND YOU CAN'T DELETE THIS ONE EITHER**\\
I'll send them an email mentioning how that's illegal and contrary to [[https://support.google.com/pay/answer/7644063?hl=fr&ref_topic=7625285|what their help say]] to see how they react. I might sue them as well...\\
Actually you need to delete the whole [[https://pay.google.com|Google pay]] thing, and then it's fine.
To get the GPS coordinates for the marker, go into google maps, right click **exactly** where you want it and click "Plus d'info sur cet endroit" -> Click on the banner at the bottom, and then copy the coordinates on the left (they don't allow direct copy)
Ajouter une adresse propre (Geocoding) : [[https://developers.google.com/maps/documentation/javascript/geocoding|Doc]] - [[https://developers.google.com/maps/documentation/geocoding/usage-and-billing|Prix]]
**Les maps avec javascript sont plus chiante à mettre en place et n'ont en général aucun avantage sur celles en iframes pour des trucs simples, mais elles créent un risque d'avoir des factures à payer à google : fuck them**
=== Version iframes ===
Ouvrir gmaps et une adresse, puis faire "Partager" -> Intégrer une carte\\
Le niveau de zoom est enregistré donc bien cadrer avant de le faire. On peut modifier la largeur dans le html généré et un width en %tage fonctionne.