Marketing Automation Reporting API

概要

Marketing Automation Reporting API の概要と例。

Marketing Automation Reporting API を使用すると、呼び出し元はプランとアクティビティの統計とメトリックを取得できます。

次の例は、Sitecore のコンテキストで IAutomationReportingClient にアクセスする方法を示しています。

using Sitecore.DependencyInjection;
using Sitecore.Xdb.MarketingAutomation.ReportingClient;
using Microsoft.Extensions.DependencyInjection;

namespace Documentation
{
    public class AutomationAPI
    {
        public void Example()
        {
            var reportingCLient = ServiceLocator.ServiceProvider.GetService<IAutomationReportingClient>();
        }
    }
}

注記

各メソッドには同期バージョンと非同期バージョンがあります。

プランの統計を取得する

GetPlanStatisticsAsync() メソッドはプラン ID の一覧を受け取り、PlanStatistics オブジェクトの一覧を返します。以下の例は、利用できる統計の詳細です。

using Sitecore.DependencyInjection;
using Sitecore.Xdb.MarketingAutomation.ReportingClient;
using Microsoft.Extensions.DependencyInjection;
using System;
using Sitecore.Xdb.MarketingAutomation.Core.Reporting;
using Sitecore.Xdb.MarketingAutomation.Core.Collections;

namespace Documentation
{
    public class GetPlanStats
    {
        public async void Example()
        {
            var reportingClient = ServiceLocator.ServiceProvider.GetService<IAutomationReportingClient>();

            var result = await reportingClient.GetPlanStatisticsAsync(new[]
            {
                Guid.Parse("{19F1B472-11E4-4927-84EC-71E10136CE4E}"), // Plan ID #1
                Guid.Parse("{6CCC76C7-85DE-4214-B51B-D045065129A7}") // Plan ID #2
            });

            foreach (PlanStatistics stat in result)
            {
                Guid planID = stat.PlanDefinitionId; // The plan ID
                long allEnrollmentsCount = stat.AllEnrollmentCount; // All enrollments in the history of this plan
                long currentEnrollmentsCount = stat.CurrentEnrollmentCount; // Current enrollments
            }
        }
    }
}

注記

指定された ID でシステムがプランを見つけられない場合、その ID に対しては何も返ってきません。たとえば、リクエストに 5 つの ID が含まれていて、2 つの ID が見つからない場合、システムは 3 つの PlanStatistics インスタンスのみを返します。

プラン レポートを取得する

GetPlanReportAsync() メソッドは、単一のプランの ID、開始日、および終了日を受け取り、PlanReport を返します。開始日と終了日は ActivityCurrentContactCount および PlanCurrentContactCount の値に影響します。以下の例では、利用できる統計の詳細を示しています。

using Sitecore.DependencyInjection;
using Sitecore.Xdb.MarketingAutomation.ReportingClient;
using Microsoft.Extensions.DependencyInjection;
using System;
using Sitecore.Xdb.MarketingAutomation.Core.Reporting;
using Sitecore.Xdb.MarketingAutomation.Core.Collections;

namespace Documentation
{
    public class GetPlanReport
    {
        public async void Example()
        {
            var reportingClient = ServiceLocator.ServiceProvider.GetService<IAutomationReportingClient>();

                            var planId = Guid.Parse("{C5F5C4AA-3D00-41ED-AEA2-740129E340E3}");
                            var reportStart = DateTime.UtcNow.AddDays(-1);
                            var reportEnd = DateTime.UtcNow;
            var result = await reportingClient.GetPlanReportAsync(planId, reportStart, reportEnd);

            var allContactsByActivity = result.ActivityAllContactCount; // The number of contacts that have ever been enrolled by each activity. The dictionary key is the ID of the activity and the value if the enrollment count.
            var allCurrentContactsByActivity = result.ActivityCurrentContactCount; // The number of contacts enrolled by each activity within the start and end dates. The dictionary key is the ID of the activity and the value if the enrollment count.
            var allContacts = result.PlanAllContactCount; // The number of contacts that have ever been enrolled in any activity of the plan. This is basically a sum of all of the counts from the ActivityAllContactCount dictionary.
            var currentContactCount = result.PlanCurrentContactCount; // The number of contacts enrolled in any activity of the plan within the start and end dates. This is basically a sum of all of the counts from the ActivityCurrentContactCount dictionary.
        }
    }
}