Skip to content
Learni
Voir tous les tutoriels
Marketing Numérique

Comment créer et optimiser des YouTube Ads en 2026

Read in English

Introduction

En 2026, YouTube reste la plateforme vidéo dominante avec plus de 2,5 milliards d'utilisateurs mensuels, idéale pour les publicités vidéo immersives. Les YouTube Ads, gérées via Google Ads, offrent un targeting précis par intérêts, démographie et comportement, avec un CPC moyen de 0,10-0,30 € pour des ROI supérieurs à 300 % dans les secteurs e-commerce et SaaS. Ce tutoriel intermédiaire vous guide pas à pas : de la configuration manuelle dans l'interface Google Ads à l'automatisation via l'API Google Ads avec Python. Vous apprendrez à créer des campagnes vidéo (In-Stream, Discovery), uploader des assets, cibler des audiences lookalike et monitorer les performances. Pourquoi c'est crucial ? Les ads YouTube captent l'attention en 5 secondes, boostant les vues et conversions. À la fin, vous disposerez de scripts fonctionnels pour scaler vos campagnes, économisant des heures de travail manuel. Prêt à transformer vos vues en revenus ? (128 mots)

Prérequis

  • Compte Google Ads actif avec facturation configurée.
  • Chaîne YouTube vérifiée (au moins 1 vidéo uploadée).
  • Python 3.10+ installé.
  • Accès API Google Ads : Console GCP pour créer un projet et un service account.
  • Connaissances de base en marketing digital et JSON.

Installer les dépendances Python

setup.sh
#!/bin/bash
pip install google-ads==23.0.0 google-auth google-auth-oauthlib google-auth-httplib2
pip install pandas matplotlib
mkdir -p ~/.google-ads
chmod +x setup.sh

Ce script bash installe la bibliothèque officielle Google Ads pour Python (version 23.0.0 compatible 2026) et ses dépendances pour l'authentification et l'analyse de données. Exécutez-le dans un terminal pour préparer votre environnement. Créez un dossier de config et évitez les conflits de versions en utilisant un virtualenv.

Configurer l'authentification API

L'API Google Ads nécessite une authentification via service account pour les scripts automatisés. Dans la Console Google Cloud, activez l'API Ads et générez un JSON de clé. Téléchargez-le comme google-ads.yaml. Associez votre compte Ads au service account via les permissions Manager. Analogie : C'est comme donner une clé API à un robot pour agir en votre nom, sans risquer votre compte principal. Placez le fichier dans ~/.google-ads/ pour une config globale.

Fichier de configuration API

google-ads.yaml
developer_token: "ABCD-EFGH-IJKL-MNOP-QRST-UVWX-YZ01-2345"
login_customer_id: "1234567890"
use_proto_plus: true
client_id: "your-client-id.googleusercontent.com"
client_secret: "your-client-secret"
refresh_token: "your-refresh-token"

# Pour service account (recommandé pour prod)
json_key_file: "/path/to/service-account-key.json"
login_customer_id: "1234567890"

Ce fichier YAML définit les credentials essentiels : developer_token (obtenu dans Google Ads > Outils > API), login_customer_id (ID MCC si multi-comptes) et service account pour l'automatisation sécurisée. Remplacez les placeholders par vos vraies valeurs. Piège : Vérifiez les permissions du service account, sinon les appels API échouent avec 403 Forbidden.

Créer une campagne vidéo YouTube

create_video_campaign.py
from google.ads.googleads.client import GoogleAdsClient
from google.ads.googleads.errors import GoogleAdsException

client = GoogleAdsClient.load_from_storage(path="~/.google_ads.yaml")
googleads_service = client.get_service("GoogleAdsService")

campaign_service = client.get_service("CampaignService")
operation = client.get_type("CampaignOperation")
campaign = operation.create
campaign.name = "Ma Campagne YouTube 2026"
campaign.status = client.enums.CampaignStatusEnum.PAUSED
campaign.advertising_channel_type = client.enums.AdvertisingChannelTypeEnum.VIDEO
campaign.advertising_channel_sub_type = client.enums.AdvertisingChannelSubTypeEnum.VIDEO_REACH

budget_service = client.get_service("CampaignBudgetService")
budget_operation = client.get_type("CampaignBudgetOperation")
budget = budget_operation.create
budget.name = "Budget Quotidien 50€"
budget.amount_micros = 50_000_000  # 50 EUR

response = budget_service.mutate_campaign_budgets(customer_id="1234567890", operations=[budget_operation])
budget_resource_name = response.results[0].resource_name

campaign.campaign_budget = budget_resource_name

campaign_response = campaign_service.mutate_campaigns(customer_id="1234567890", operations=[operation])
print(f"Nouvelle campagne créée: {campaign_response.results[0].resource_name}")

Ce script Python crée une campagne vidéo YouTube de type 'Reach' (In-Stream/Discovery) avec un budget quotidien de 50€, initialement pausée pour tests. Il utilise le client officiel pour muter budgets et campagnes. Remplacez customer_id par votre ID Ads. Piège : Toujours spécifier amount_micros (x1_000_000 pour EUR) pour éviter les erreurs de devise.

Ajouter un groupe d'annonces et targeting

Un groupe d'annonces définit le targeting : audiences, mots-clés, placements YouTube. Dans l'interface Google Ads, sélectionnez 'Vues' comme objectif. Pour l'API, liez au canal vidéo. Exemple concret : Ciblez 25-34 ans, intérêts 'tech', France, avec remarketing sur vos vidéos existantes. Utilisez des audiences lookalike pour scaler (similaires à vos convertisseurs). Vérifiez les placements pour éviter les contenus sensibles via 'Contenu approprié'.

Créer groupe d'annonces avec targeting géo

create_ad_group.py
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
ad_group_service = client.get_service("AdGroupService")
operation = client.get_type("AdGroupOperation")
ad_group = operation.create
ad_group.name = "Groupe France Tech"
ad_group.campaign = "customers/1234567890/campaigns/1234567891"
ad_group.status = client.enums.AdGroupStatusEnum.ENABLED
ad_group.type = client.enums.AdGroupAdTypeEnum.VIDEO_RESPONSIVE
ad_group.cpc_bid_micros = 20_000_000  # 20 EUR CPC

# Targeting géo France
geo_target_constant_service = client.get_service("GeoTargetConstantService")
location = client.get_type("LocationInfo")
location.geo_target_constant = "21137"  # France
ad_group.targeting_setting = client.get_type("TargetingSetting")
ad_group.targeting_setting.targeting_resources.append(location)

response = ad_group_service.mutate_ad_groups(customer_id="1234567890", operations=[operation])
print(f"Groupe créé: {response.results[0].resource_name}")

Ce code ajoute un groupe d'annonces responsive vidéo avec CPC 20€ et targeting France (code geo 21137). Il lie à la campagne précédente. Utilisez VIDEO_BUMPER pour formats courts. Piège : Le cpc_bid_micros doit être réaliste, sinon Google rejette avec 'INVALID_ARGUMENT'.

Créer une annonce vidéo responsive

create_responsive_video_ad.py
from google.ads.googleads.client import GoogleAdsClient
client = GoogleAdsClient.load_from_storage()
ad_group_ad_service = client.get_service("AdGroupAdService")
operation = client.get_type("AdGroupAdOperation")
responsive_search_ad = operation.create
responsive_search_ad.ad_group = "customers/1234567890/adGroups/1234567892"
responsive_search_ad.status = client.enums.AdGroupAdStatusEnum.PAUSED
responsive_video_ad_info = client.get_type("ResponsiveVideoAdInfo")
responsive_video_ad_info.headlines.add(headlines="Titre Impactant !")
responsive_video_ad_info.descriptions.add(descriptions="Découvrez notre produit révolutionnaire.")
responsive_video_ad_info.format_setting = client.enums.VideoFormatEnum.ALL_FORMATS
responsive_video_ad_info.youtube_video_asset = "customers/1234567890/youtubeVideoAssets/VIDEO_ID"  # Remplacez par votre vidéo YouTube ID
responsive_search_ad.responsive_video_ad = responsive_video_ad_info

response = ad_group_ad_service.mutate_ad_group_ads(customer_id="1234567890", operations=[operation])
print(f"Annonce créée: {response.results[0].resource_name}")

Ce script crée une annonce vidéo responsive avec headline, description et lien vers votre vidéo YouTube (ID extrait de l'URL). Formats auto-adaptés (skippable/non-skippable). Uploadez d'abord la vidéo via YouTube Studio. Piège : Sans youtube_video_asset valide, l'API renvoie 400 Bad Request.

Lancer et monitorer la campagne

Activez la campagne dans Google Ads > Campagnes > Statut 'Activé'. Surveillez métriques : Vues, CTR (cible >1%), View-through conversions. Utilisez Google Analytics pour tracker UTM. Analogie : Comme un pilote qui ajuste les voiles en temps réel. Dans l'interface, optimisez via A/B testing headlines.

Script de reporting performances

report_performance.py
from google.ads.googleads.client import GoogleAdsClient
import pandas as pd
client = GoogleAdsClient.load_from_storage()
GAQS = client.get_service("GoogleAdsService")
query = """
SELECT
  campaign.name,
  metrics.impressions,
  metrics.clicks,
  metrics.video_views,
  metrics.cost_micros
FROM campaign
WHERE segments.date DURING LAST_7_DAYS
AND campaign.advertising_channel_type = VIDEO
"""
response = GAQS.search(customer_id="1234567890", query=query)

data = []
for row in response:
    data.append({
        'Campagne': row.campaign.name,
        'Impressions': row.metrics.impressions,
        'Clics': row.metrics.clicks,
        'Vues Vidéo': row.metrics.video_views,
        'Coût (€)': row.metrics.cost_micros / 1_000_000
    })
df = pd.DataFrame(data)
print(df)
df.to_csv('youtube_ads_report.csv', index=False)

Ce script GAQL query les performances des 7 derniers jours pour campagnes vidéo, exporte en CSV avec Pandas. Exécutez quotidiennement via cron. Ajoutez metrics.ctr pour ratios. Piège : Limitez à LAST_7_DAYS pour éviter timeouts sur gros comptes.

Bonnes pratiques

  • Testez toujours en pausée : Validez assets avant activation pour éviter gaspillages.
  • Ciblez précisément : Utilisez audiences In-Market + Remarketing (ROI x4).
  • Optimisez créatifs : Hooks en 3s, CTA clair, formats 16:9.
  • Budget progressif : Commencez à 20-50€/jour, scalez sur données.
  • Track conversions : Intégrez Google Tag Manager pour view-through.

Erreurs courantes à éviter

  • Oubli developer_token : API renvoie 401 Unauthorized ; générez-le une seule fois.
  • Targeting trop large : CPM explose sans conversions ; affinez avec geo + intérêts.
  • Vidéo non approuvée : YouTube rejette contenus violant politiques (musique copyright).
  • Ignorer mobile : 70% vues YouTube sur mobile ; testez vertical ads.

Pour aller plus loin

Approfondissez avec la doc Google Ads API, YouTube Analytics. Automatisez plus avec Google Ads Scripts JS. Découvrez nos formations Learni sur le marketing digital pour maîtriser Google Ads avancé et IA pour ads.