Connecter Google
Une seule connexion Google donne à Provenio trois sources : Search Console, Google Analytics 4 et la feuille que remplit votre script Google Ads.
1. Se connecter
-
Dans Provenio, Intégrations › Google › Connecter Google.
-
Choisissez le compte Google qui a accès à vos propriétés.
-
Google vous montre les accès demandés. Tous sont en lecture seule :
- Search Console : voir les données (
webmasters.readonly) ; - Google Analytics : voir les données (
analytics.readonly) ; - Google Sheets : voir les feuilles (
spreadsheets.readonly) ; - votre adresse e-mail, pour afficher le compte connecté.
Décocher une case retire seulement la source correspondante.
- Search Console : voir les données (
-
Acceptez : vous revenez dans Provenio.
2. Choisir les propriétés
- Search Console : Provenio présélectionne la propriété de domaine qui couvre le site de votre espace. Si votre site n'y figure pas, ajoutez-le à Search Console, ou demandez à la personne qui le gère de vous y donner accès.
- Google Analytics 4 : choisissez la propriété de votre app (installs, inscriptions).
- Feuille du script Google Ads : collez son adresse (étape 3). Provenio n'a pas accès à votre Drive : il ne voit que la feuille que vous lui donnez. Étape facultative.
Chaque choix peut être « Ne pas lire ».
3. Google Ads : le script et la feuille
Provenio ne se branche pas sur l'API Google Ads. Un script, que vous collez dans votre compte Ads, écrit chaque nuit vos coûts par campagne dans une Google Sheet, et Provenio lit cette feuille.
- Créez une Google Sheet vide. Le compte Google connecté à Provenio doit pouvoir la lire.
- Dans Google Ads, Outils › Actions groupées › Scripts › +. Collez le script Provenio
(le script complet), remplacez
SHEET_URLpar l'adresse de votre feuille. - Autoriser, puis Exécuter une fois : l'onglet
Provenioapparaît dans la feuille. - Planifier : tous les jours, de préférence entre 03:00 et 05:00.
- Dans Provenio, collez l'adresse de la feuille, puis Vérifier.
Ne modifiez pas l'onglet Provenio à la main : une ligne ajoutée sous les données bloque la
lecture de toute la feuille.
La règle qui relie les coûts aux installs
Provenio rattache une install à une campagne par son nom. Il faut donc que vos annonces
portent le nom de la campagne dans utm_campaign. Dans Google Ads, au niveau du compte,
Suffixe d'URL final :
utm_source=google&utm_medium=cpc&utm_campaign={campaignname}Google remplace {campaignname} par le nom de la campagne. Ensuite :
- ne renommez pas une campagne en cours : ses installs passées gardent l'ancien nom et ne sont plus rattachées à son coût ;
- évitez
&,#,+et%dans les noms de campagne ; - une campagne sans ce suffixe a bien son coût dans Provenio, mais aucune install.
La devise du compte Ads doit être celle de votre espace Provenio (Paramètres) : Provenio ne convertit pas.
Ce que Provenio lit
En lecture seule, chaque nuit :
- Search Console : clics, impressions, CTR et position, par requête et par page ;
- Google Analytics 4 : le nombre de chaque événement par jour et par plateforme (web, iOS, Android) ;
- la feuille : coût, impressions, clics et conversions, par jour et par campagne.
Ce que Provenio ne lit jamais
- Aucun utilisateur de Google Analytics un par un, aucun identifiant d'utilisateur.
- Ni vos autres feuilles, ni votre Drive, ni vos e-mails.
- Rien en écriture : Provenio ne touche ni à vos propriétés, ni à vos campagnes, ni à la feuille.
Bon à savoir
- Search Console a environ 3 jours de retard : les derniers jours se complètent d'eux-mêmes.
- Pour retirer l'accès : Déconnecter dans Provenio, et, si vous voulez, retirer Provenio dans les autorisations de votre compte Google.
- Si la carte affiche « Reconnectez Google » : l'accès a expiré ou a été retiré. Reconnectez, vos choix de propriétés sont conservés si c'est le même compte.
Le script Google Ads
Collez-le tel quel dans Google Ads (Outils › Actions groupées › Scripts), puis remplacez SHEET_URL par l'adresse de votre feuille.
// Provenio : exporte coût, impressions, clics et conversions par jour et par campagne vers une Google Sheet.
// Écrase l'onglet « Provenio » à chaque exécution (30 derniers jours, jusqu'à hier). Lecture seule sur Google Ads.
var SHEET_URL = 'https://docs.google.com/spreadsheets/d/COLLER_L_ADRESSE_DE_VOTRE_FEUILLE/edit';
var TAB = 'Provenio';
var DAYS = 30;
function main() {
var account = AdsApp.currentAccount();
var tz = account.getTimeZone();
var currency = account.getCurrencyCode();
var day = function (offset) { return Utilities.formatDate(new Date(Date.now() - offset * 86400000), tz, 'yyyy-MM-dd'); };
var from = day(DAYS);
var through = day(1); // hier : aujourd'hui est incomplet
var report = AdsApp.report(
'SELECT segments.date, campaign.id, campaign.name, metrics.cost_micros, metrics.impressions, metrics.clicks, metrics.conversions ' +
'FROM campaign ' +
"WHERE segments.date BETWEEN '" + from + "' AND '" + through + "' " +
'ORDER BY segments.date');
var rows = [];
var it = report.rows();
while (it.hasNext()) {
var r = it.next();
rows.push([
r['segments.date'], // texte AAAA-MM-JJ, jour du compte Ads
String(r['campaign.id']),
r['campaign.name'],
Math.round(Number(r['metrics.cost_micros']) / 10000) / 100, // coût en unités de la devise du compte, pas en micro-unités
Number(r['metrics.impressions']),
Number(r['metrics.clicks']),
Math.round(Number(r['metrics.conversions']) * 100) / 100,
currency
]);
}
var ss = SpreadsheetApp.openByUrl(SHEET_URL);
var sheet = ss.getSheetByName(TAB) || ss.insertSheet(TAB);
sheet.clearContents();
sheet.getRange('A:B').setNumberFormat('@'); // date et identifiant restent du texte : Sheets ne les « interprète » pas
var header = ['date', 'campaign_id', 'campaign', 'cost', 'impressions', 'clicks', 'conversions', 'currency'];
sheet.getRange(1, 1, 1, header.length).setValues([header]);
if (rows.length > 0) sheet.getRange(2, 1, rows.length, header.length).setValues(rows);
// Repères : quels jours cet export couvre (un jour sans ligne = un jour sans dépense, pas un jour manquant).
sheet.getRange('J1:K2').setNumberFormat('@').setValues([['covers_from', from], ['covers_through', through]]);
}