Partager via


Flux de création de rapports en bloc

Les flux de création de rapports en bloc vous permettent de synchroniser des jeux de données volumineux de notre système avec votre système de création de rapports propriétaire afin que toutes vos données soient centralisées. La synchronisation de nos données vous permet de tirer parti de vos propres outils analytiques, de gérer la facturation et les paiements, et de fournir des rapports ou des tableaux de bord personnalisés à vos annonceurs et éditeurs sur l’ensemble de vos données. Vous pouvez automatiser l’extraction de ces données de manière cohérente pour maintenir vos données à jour.

Les flux de création de rapports en bloc sont différents des rapports standard, car ils vous permettent d’extraire efficacement des données plus détaillées sur tous les annonceurs et éditeurs tout en garantissant que toutes les données sont à jour.

Types de flux de création de rapports en bloc

Cette section fournit des informations sur les différentes catégories de flux de création de rapports en bloc disponibles sur la plateforme.

Flux d’analyse réseau

Ce flux de création de rapports en bloc vous offre des données complètes sur les performances côté achat et vente de votre réseau.

Pour obtenir la liste des colonnes disponibles, accédez à Flux Analyse réseau.

Flux clicktrackers

Vous pouvez utiliser des suivis de clics pour suivre les clics des utilisateurs sur les créations servies par des serveurs publicitaires tiers (c’est-à-dire, non pris en charge par Xandr). Ce flux de création de rapports fournit des données sur ces clics externes.

  • Chaque ligne retournée correspond à un événement de clic unique.
  • Pour obtenir la liste des colonnes disponibles, accédez à Flux Clicktrackers.

Récupérer un flux de rapports en bloc

Des flux de création de rapports ont été créés pour vous permettre d’extraire automatiquement les données mises à jour toutes les heures ou tous les jours et de les vider dans votre entrepôt de données. Il existe trois étapes main pour synchroniser les données de création de rapports de Xandr :

  1. Utilisez le service de rapports pour demander un flux de rapports pour une heure ou un jour spécifique. Notez que le service de rapports impose plusieurs restrictions afin de limiter la taille des données et le temps de post-traitement :
    • Vous ne pouvez pas ajouter de filtres ou de classements.
    • start_date et end_date doivent être transmis et doivent se trouver dans un délai de 24 heures l’un de l’autre.
    • start_date doit être dans les 30 derniers jours.
  2. Utilisez le service de recherche pour référencer des données telles que des noms d’objets et des codes. Pour la plupart des types d’objets, le flux de rapports en bloc retourne uniquement les ID. Vous pouvez utiliser le service de recherche pour mapper des ID à, par exemple, des noms, des codes, des descriptions et des états.
  3. Surveiller les notifications de disponibilité des nouvelles données

Consultez l’exemple ci-dessous pour obtenir une procédure détaillée de cette procédure.

Exemples

Demander un flux de rapports d’analytique réseau

Vous demandez un flux de création de rapports à l’aide du service de rapports. Notez que Reporting Service impose plusieurs restrictions sur les flux de création de rapports afin de limiter la taille des données et le temps de post-traitement :

  • Vous ne pouvez pas ajouter de filtres ou de classements.
  • start_date et end_date doivent être transmis et doivent se trouver dans un délai de 24 heures l’un de l’autre.
  • start_date doit être dans les 30 derniers jours.

Tout d’abord, vous créez la requête JSON pour le flux de création de network_analytics rapports.

Remarque

report_type doit être défini sur "network_analytics_feed".

$ cat report_feed

{
 "report":
    {
    "report_type" : "network_analytics_feed",
    "columns":[
       "advertiser_currency",
       "advertiser_id",
       "booked_revenue_adv_curr",
       "buyer_member_id",
       "clicks",
       "creative_id",
       "geo_country",
       "imps",
       "imp_type",
       "insertion_order_id",
       "line_item_id",
       "media_cost",
       "media_type",
       "pixel_id",
       "placement_id",
       "post_click_convs",
       "post_view_convs",
       "ppm",
       "profit",
       "publisher_currency",
       "publisher_id",
       "pub_rule_id",
       "seller_member_id",
       "seller_type",
       "site_id",
       "size",
       "total_convs",
       "total_network_rpm",
       "total_publisher_rpm"
    ],
    "row_per":[
       "line_item_id",
       "advertiser_id",
       "buyer_type",
       "seller_type",
       "bid_type",
       "size",
       "geo_country",
       "content_category_id",
       "placement_id"
    ],
    "start_date": "2011-07-30 00:00:00",
    "end_date": "2011-07-31 00:00:00",
    "format": "csv"
  }
}

$ curl -b cookies -c cookies -X POST -d @report_feed 'https://api.appnexus.com/report'

{
   "response":{
      "status":"OK",
      "report_id": "91281567ba7b36ef66be08cc4e637c8f",
      "dbg_info": {
         ...
      }
   }
}

Une fois le rapport généré, vous interrogez le service de rapport pour obtenir une URL que vous utilisez pour télécharger le rapport dans un fichier.

$ curl -b cookies -c cookies 'https://api.appnexus.com/report?id=91281567ba7b36ef66be08cc4e637c8f'

{
   "response": {
      "status": "OK",
      "report": {
         ...
         "created_on": "2011-08-01 19:13:35",
         "data": null,
         "url": "report-download?id=91281567ba7b36ef66be08cc4e637c8f"
      },
      "execution_status": "ready"
      }
   }
}

Vous effectuez ensuite un autre GET appel avec l’URL de téléchargement. Lorsque vous spécifiez le fichier dans lequel enregistrer, veillez à utiliser l’extension de fichier du format que vous avez spécifié dans le fichier initial POST. Si vous n’avez pas spécifié de "format" dans votre initial POST, le format est "csv" par défaut.

$ curl -b cookies -c cookies 'https://api.appnexus.com/report-download?id=91281567ba7b36ef66be08cc4e637c8f' > /temp/report_download.csv

Faire correspondre les ID aux noms d’objets et aux données de référence

Pour la plupart des types d’objets, le flux de création de rapports retourne uniquement les ID. Vous pouvez utiliser le service de recherche pour mapper des ID à, par exemple des noms, des codes, des descriptions et des états.

Vérifier que vos données sont à jour

Pour synchroniser les données, vous devez savoir quand charger de nouvelles heures ou jours de données dans votre base de données locale. Pour faciliter cette tâche, nous fournissons un service d’état de flux pour vous avertir lorsque de nouvelles heures de données de rapport deviennent disponibles ou que les heures précédentes ont été modifiées.

Remarque

Le service d’état du flux fonctionne uniquement avec le flux Analyse réseau. Il ne fonctionne pas avec le flux Clicktrackers.

Nous vous recommandons de stocker un enregistrement local de la date de la dernière extraction d’une heure ou d’un jour de données de création de rapports. Pour ce faire, créez une table de base de données avec le schéma suivant :

reporting_ymdh last_synchronized
2011-07-01 00:00:00 2011-07-01 01:23:13
2011-07-01 01:00:00 2011-07-01 02:19:54

reporting_ymdh est l’heure (ou le jour) ou les données de création de rapports que vous avez synchronisées avec votre base de données locale.

last_synchronized est l’horodatage de la dernière fois que vous avez extrait les données de création de rapports pour reporting_ymdh dans votre base de données locale. Ce champ doit être défini à l’aide de l’horodatage created_on retourné sur la réponse du rapport.

Vous pouvez ensuite comparer les heures que vous avez déjà extraites avec les heures disponibles via le service d’état du flux. (Là encore, notez que cela fonctionne uniquement avec le flux Network Analytics.) Vous pouvez également comparer l’heure de la dernière extraction d’une heure ou d’un jour de données à l’horodatage last_run de cette heure. Si last_run est supérieur à la dernière fois que vous avez synchronisé cette heure, nous avons mis à jour cette heure de données et vous devez la charger à nouveau dans votre base de données.

Exemple

Supposons que vous souhaitiez synchroniser le jour précédent des données dans les 15 minutes suivant la disponibilité ou la modification des données de rapport. Si vous synchronisez des données pour 2011-07-01 dans le fuseau horaire EST, vous devez attendre que les heures 2011-07-01 05 :00 et 2011-07-02 04 :00 soient disponibles.

Dans ce cas, vous devez configurer un processus pour interroger le service d’état du flux toutes les 15 minutes pour case activée si toutes les heures du jour précédent sont disponibles dans les rapports. Vous devez effectuer l’appel suivant :

> curl -b cookies -c cookies -X GET 'https://api.appnexus.com/feed-status?type=network_analytics_feed'
{
  "response": {
    "status": "OK",
    "num_elements": 44,
    "start_element": 0,
    "hours": [
      ...
      {
        "hour": "2011-07-01 05:00:00",
        "last_run": "2011-07-01 06:16:28"
      },
      {
        "hour": "2011-07-01 06:00:00",
        "last_run": "2011-07-01 07:14:36"
      },
      ...
    ]
    ...
}

Le hours tableau contient une liste d’heures actuellement disponibles dans les rapports pour les 5 derniers jours, ainsi que l’heure à laquelle nous avons terminé l’agrégation de cette heure de données. Parfois, nous devons corriger les heures de données qui sont déjà disponibles dans les rapports. Si cela se produit, l’horodatage last_run est mis à jour pour l’heure de modification des données.

Sur chaque réponse, votre processus doit analyser la réponse JSON et case activée si les heures 2011-07-01 05 :00 à 2011-07-02 04 :00 sont disponibles. Lorsque toutes les heures sont retournées, votre processus demande un flux de rapport pour le jour précédent, 2011-07-01 dans ce cas. La réponse de Reporting Service contient un created_on horodatage de l’exécution de votre rapport :

{
  "response": {
    "status": "OK",
    "report": {
      ...
      "created_on": "2011-07-02 01:13:35",
      ...
    },
    ...
  }
}

Vous devez enregistrer l’horodatage created_on dans votre base de données comme heure de last_synchronized pour 2011-07-01 :

reporting_ymd last_synchronized
2011-07-01 00:00:00 2011-07-02 01:13:35