Passer au contenu principal

Aperçu

L’intégration OneSignal + Google Cloud SQL permet la synchronisation automatique des événements personnalisés de votre base de données Cloud SQL vers OneSignal. Cela vous permet de déclencher des Journeys automatisés et des campagnes de messagerie personnalisées basées sur les données comportementales des utilisateurs stockées dans votre base de données PostgreSQL gérée.

Prérequis

  • Accès aux Event Streams pour les événements de message sortants (Les limitations de forfait et les dépassements s’appliquent)
  • Accès aux Événements personnalisés pour la synchronisation des événements entrants (Les limitations de forfait et les dépassements s’appliquent)
  • Forfait de compte mis à jour (non disponible sur les applications gratuites)

Google Cloud SQL

  • Instance Cloud SQL pour PostgreSQL (version 11 ou supérieure recommandée)
  • Accès à la base de données avec autorisations de lecture pour les tables d’événements
  • Connectivité réseau de OneSignal vers votre instance Cloud SQL
  • Proxy d’authentification Cloud SQL pour des connexions sécurisées (recommandé)

Configuration

1

Configurer l'accès à la base de données Cloud SQL

Créez un utilisateur dédié pour OneSignal avec un accès en lecture seule aux tables d’événements :
-- Create OneSignal user
CREATE USER onesignal_reader WITH PASSWORD 'strong_unique_password';

-- Grant schema access
GRANT USAGE ON SCHEMA event_data TO onesignal_reader;

-- Grant table access
GRANT SELECT ON ALL TABLES IN SCHEMA event_data TO onesignal_reader;

-- Grant access to future tables
ALTER DEFAULT PRIVILEGES IN SCHEMA event_data
GRANT SELECT ON TABLES TO onesignal_reader;
2

Configurer l'accès réseau

Assurez-vous que OneSignal peut se connecter à votre instance Cloud SQL :Option 1 : Réseaux autorisés (IP publique)
  • Dans la console Google Cloud, accédez à SQL > Instances
  • Sélectionnez votre instance → ConnexionsMise en réseau
  • Ajoutez les adresses IP OneSignal aux Réseaux autorisés
Option 2 : IP privée (recommandée)
  • Configurez votre instance Cloud SQL avec une IP privée
  • Utilisez le proxy d’authentification Cloud SQL pour des connexions sécurisées
  • Assurez-vous d’avoir un peering VPC approprié ou des règles de pare-feu
Option 3 : Proxy d’authentification Cloud SQL
  • Téléchargez et configurez le proxy d’authentification Cloud SQL
  • Utilisez l’authentification de compte de service
  • Connectez-vous via un tunnel proxy sécurisé
3

Configurer le proxy d'authentification Cloud SQL (recommandé)

Pour une sécurité renforcée, utilisez le proxy d’authentification Cloud SQL :
# Download Cloud SQL Auth Proxy
curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64

# Make executable
chmod +x cloud_sql_proxy

# Run proxy (replace with your instance connection name)
./cloud_sql_proxy -instances=PROJECT:REGION:INSTANCE=tcp:5432
Create a service account with Cloud SQL Client role:
gcloud iam service-accounts create onesignal-cloudsql
gcloud projects add-iam-policy-binding PROJECT_ID \
    --member="serviceAccount:onesignal-cloudsql@PROJECT_ID.iam.gserviceaccount.com" \
    --role="roles/cloudsql.client"
4

Ajouter l'intégration dans OneSignal

Dans OneSignal, allez dans Data > Integrations et cliquez sur Add Integration.Sélectionnez Google Cloud SQL et fournissez :
  • Nom de connexion d’instance : PROJECT_ID:REGION:INSTANCE_ID
  • Nom de la base de données : Le nom de votre base de données d’événements
  • Nom d’utilisateur : onesignal_reader
  • Mot de passe : Le mot de passe créé à l’étape 1
  • Mode SSL : require (recommandé pour la sécurité)
  • Type de connexion : Choisissez entre Direct, Proxy d’authentification ou IP privée
5

Configurer les requêtes de données d'événements

Définissez la requête SQL pour récupérer les données d’événements de votre base de données Cloud SQL :
SELECT
    event_name,
    user_id,
    created_at as event_timestamp,
    properties as event_payload
FROM event_data.user_events
WHERE created_at >= CURRENT_TIMESTAMP - INTERVAL '1 hour'
ORDER BY created_at DESC
Assurez-vous que vos tables d’événements incluent :
  • Nom/type d’événement (Chaîne)
  • Identifiant utilisateur (Chaîne)
  • Horodatage de l’événement (Timestamp)
  • Propriétés de l’événement (JSON/JSONB)
6

Tester la connexion

Cliquez sur Tester la connexion pour vérifier que OneSignal peut se connecter à votre instance Cloud SQL et exécuter la requête d’événement avec succès.

Mappage des données d’événement

Mappez vos au format des événements personnalisés de OneSignal :
Champ OneSignalDescriptionRequis
nameevent_nameIdentifiant de l’événementOui
external_iduser_idIdentifiant de l’utilisateurOui
timestampevent_timestampQuand l’événement s’est produitNon
propertiesevent_dataNon

Configuration avancée

Pooling de connexions

Optimisez les connexions à la base de données pour la synchronisation d’événements à haut volume :
-- Check current connection limits
SELECT * FROM pg_stat_activity WHERE datname = 'your_database';

-- Optimize for OneSignal connections
ALTER SYSTEM SET max_connections = 200;
ALTER SYSTEM SET shared_preload_libraries = 'pg_stat_statements';

Optimisation des requêtes

Améliorez les performances des requêtes d’événements :
-- Create index on timestamp for efficient filtering
CREATE INDEX idx_events_created_at ON user_events(created_at);

-- Create composite index for user-based queries
CREATE INDEX idx_events_user_time ON user_events(user_id, created_at);

-- Analyze query performance
EXPLAIN ANALYZE
SELECT event_name, user_id, created_at, properties
FROM user_events
WHERE created_at >= NOW() - INTERVAL '1 hour';

Gestion des données JSON

Si vous utilisez JSONB pour les propriétés d’événements, optimisez les requêtes JSON :
-- Create GIN index for JSON properties
CREATE INDEX idx_events_properties ON user_events USING GIN(properties);

-- Query specific JSON properties
SELECT
    event_name,
    user_id,
    properties->>'purchase_amount' as amount,
    properties->>'product_id' as product
FROM user_events
WHERE properties->>'event_type' = 'purchase';
Surveillez les performances de votre instance Cloud SQL lorsque OneSignal interroge les données d’événements. Envisagez d’utiliser des réplicas en lecture pour les charges de travail d’analyse afin d’éviter d’impacter les performances de production.

FAQ

À quelle fréquence OneSignal synchronise-t-il les événements depuis Cloud SQL ?

OneSignal synchronise les données d’événements en fonction de votre calendrier configuré, avec un intervalle minimum de 15 minutes.

Puis-je utiliser des réplicas en lecture Cloud SQL pour la synchronisation d’événements ?

Oui, l’utilisation de réplicas en lecture est recommandée pour isoler les requêtes d’analyse de votre charge de travail de base de données de production.

Que se passe-t-il si mon instance Cloud SQL est temporairement indisponible ?

OneSignal réessaiera les connexions avec un backoff exponentiel. La synchronisation d’événements reprendra automatiquement une fois que votre instance sera à nouveau accessible.