IUX slot filter configuration example for Adobe Analytics
Filter configuration example for Adobe Analytics.
| Refer to the instructions on the How to configure Adobe Analytics data in an IUX slot with filters page first. Some configuration in your Adobe Launch interface is required to enable Adobe Analytics in Magnolia IUX slots. | 
extensionViews:
  - name: analytics1
    icon: icon-analytics-app
    view:
      name: analytics
      $type: analyticsView
      chartDefinitions:
        - name: adobePageViews
          label: "Total Adobe Page Views"
          class: info.magnolia.analytics.amcharts.data.AmChartDefinition
          dataSupplier: adobePageViewsDataSupplier
          chartType: !include:/analytics-ui/chartTypes/line-and-area/line-different-colors-ups-downs.yaml
            series:
              - name: series
                dataFields:
                  - name: categoryX
                    jsonPath: "$.rows[*].value"
                  - name: valueY
                    jsonPath: "$.rows[*].data[0]"
            xAxes: !override
              - name: xaxe
                renderer:
                  labels:
                    truncate: true
                    maxWidth: 90 #maxWidth can be change due to your config, exp: 120 instead of 90
        - name: adobeMetricFilter
          label: "Adobe Page Views With Metric Filters"
          class: info.magnolia.analytics.amcharts.data.AmChartDefinition
          dataSupplier: adobeMetricFilterDataSupplier
          chartType: !include:/analytics-ui/chartTypes/line-and-area/line-different-colors-ups-downs.yaml
            series:
              - name: series
                dataFields:
                  - name: categoryX
                    jsonPath: "$.rows[*].value"
                  - name: valueY
                    jsonPath: "$.rows[*].data[0]"
            xAxes: !override
              - name: xaxe
                renderer:
                  labels:
                    truncate: true
                    maxWidth: 90
      dataSuppliers:
        adobePageViewsDataSupplier:
          class: info.magnolia.analytics.adobe.datasource.AdobeDataSupplier
          credentials:
            parameters:
              serviceUrl: https://analytics.adobe.io/api/xxxxxxxxxxxx/reports
              clientId: <your-client-id>
              clientSecret: <your-client_secret>
              companyId: <your-company-id>
              orgId: xxxxxxx@AdobeOrg
              scope: <your-scopes>
              technicalAccountId: xxxxxx@techacct.adobe.com
              imsHost: https://ims-na1.adobelogin.com
              imsExchange: https://ims-na1.adobelogin.com/ims/token/v3
          parameters:
            rsid: xxxxxxxx
            gFilterType: dateRange
            metricId: metrics/pageviews
            dimension: variables/evar3 #This is just an example, variables need to be configured to map with pageName or pageUrl
          filteringSubSetExpression: (1)
            clause: CONTAINS '%s' #selected node path
        adobeMetricFilterDataSupplier:
          class: info.magnolia.analytics.adobe.datasource.AdobeDataSupplier
          credentials:
            parameters:
              serviceUrl: https://analytics.adobe.io/api/xxxxxxxxxxxx/reports
              clientId: <your-client-id>
              clientSecret: <your-client_secret>
              companyId: <your-company-id>
              orgId: xxxxxxx@AdobeOrg
              scope: <your-scopes>
              technicalAccountId: xxxxxx@techacct.adobe.com
              imsHost: https://ims-na1.adobelogin.com
              imsExchange: https://ims-na1.adobelogin.com/ims/token/v3
          parameters:
            rsid: xxxxxxxx
            gFilterType: dateRange
            metricId: metrics/pageviews
            dimension: variables/daterangeday
          metricFiltersExpression: (2)
            - id: 0
              type: breakdown
              dimension: variables/evar1 (3)
              itemValue: "%s" #selected node path
            - id: 1
              type: dateRange
      filterFields:
        - name: startDate
          $type: dateField
        - name: endDate
          $type: dateField| 1 | A search clause is used to filter dimensions. | 
| 2 | Options for breakdown reports. | 
| 3 | This is just an example.
You must configure variables to map to pageNameorpageUrl`. | 
Search parameter options for report filtering
The Adobe search parameters documentation indicates that
Adobe Analytics provides the following search parameter options:
- 
itemId- A single ID to include in the report.
- 
itemIds- A list of itemIds to include in the report.
- 
excludeItemIds- A list of itemIds to exclude in the report.
- 
clause- A search clause to use when filtering dimensions.
- 
includeSearchTotal- Includes a special element calledsearchTotalsin the response that contains the total of the filtered items. The default isfalse.
For example:
filteringSubSetExpression:
  clause: CONTAINS '%s'filteringSubSetExpression:
  itemIds: 1200002,1200003
  includeSearchTotal: trueBreakdown reports
The Adobe Analytics breakdown reports documentation indicates that breakdowns in the API are useful when you want to see the cross-product of values from two different dimensions.
When requesting a breakdown report, use the metricsFilters and dimension parameters to request the additional dimension.
Breakdown reports include the following options:
- 
id
- 
type
- 
dimension
- 
itemValue
- 
itemId
- 
segmentId
- 
dateRange
For example:
metricFiltersExpression:
  - id: 0
    type: breakdown
    dimension: variables/evar1
    itemValue: "%s" #selected node path
  - id: 1
    type: dateRange