Adobe Analytics Reader
Note
This adapter is in preview and is available on Striim Developer only. See Striim Developer for more information.
Adobe Analytics is a comprehensive digital analytics platform that enables businesses to track, analyze, and optimize their online presence and customer experiences. You can use the Adobe Analytics Reader to read from supported objects/tables in Adobe Analytics.
Feature summary
Feature | Supported? | Notes | |
---|---|---|---|
Objects | Standard objects | ✓ | |
Custom objects | ✓ | ||
Authentication | Basic authentication | Username and password | |
OAuth authentication | ✓ | Manual configuration based | |
Custom authentication methods | Not all methods may be supported | ||
Operations | Automated mode | ✓ | |
Initial load | ✓ | ||
Pull-based incremental load | ✓ | ||
Push-based incremental load | |||
Automated pipeline | |||
Governance | Connection profile | ||
Sherlock AI | |||
Sentinel AI | |||
Schema handling | Initial schema creation | ✓ | Works with supported targets |
Schema evolution | |||
Setup | Wizard template | ||
Flow Designer | ✓ | ||
Striim TQL | ✓ | ||
Runtime | Resilience/recovery | ✓ | Supported only for Incremental load. Recovers data based on the provided Incremental Load Marker. |
Parallel execution | |||
Metrics | ✓ | Standard metrics |
Supported authentication method
The Adobe Analytics Reader supports connecting to Adobe Analytics using OAuth authentication. Adobe Analytics requires a valid site license for usage, with users needing to be assigned specific roles to access the instance. To generate an access token for API requests, users must authenticate via their Adobe ID. Each user operates under a Named User Licensing model, ensuring centralized management of access and permissions.
You must create an application in the Adobe developer console to obtain the OAuth or Server-to-Server OAuth credentials.
Supported objects
The Adobe Analytics Reader supports reading from the following supported objects:
Object | Available check columns |
---|---|
CalculatedMetrics | Created, Modified |
CollectionSuites | |
Dimensions | |
Metrics | |
Segments | Created, Modified |
Users | CreateDate, LastAccess, LastLogin |
The following data types are supported:
Adobe Analytics | WA_EVENT_TYPE | Striim |
---|---|---|
Text String | WA_STRING |
|
Integer | WA_INTEGER |
|
Number | WA_DOUBLE |
|
Date Time | WA_DATETIME | org.joda.time.DateTime |
Date | WA_DATE |
|
Boolean | WA_BIT |
|
array | WA_STRING |
|
dictionary | WA_STRING |
|
Rate limits
The following are rate limits that apply to requests. The rate limits are applied at the user level, meaning each user has their own limit. When a rate limit is exceeded, the API responds with an HTTP status code of 429, indicating "Too Many Requests." You should implement retry logic in your application to handle these responses gracefully.
Rate limit type | Limit | Description |
---|---|---|
Requests per minute | 120 requests per minute | This limit is enforced as 12 requests every 6 seconds per user. Exceeding this limit results in a 429 error response. |
Timeout for API requests | 60 seconds | If an API request takes longer than this duration, it will time out. |
Adobe Analytics Reader properties
Property | Type | Default value | Notes |
---|---|---|---|
Auth mode | Enum | OAuth | There are two modes: OAuth, ServerToServerOAuth. Configure properties as follows:
|
Client ID | String | Client ID of the user's project in the developer console. | |
Client secret | Password | Client secret of the user's project in the developer console. | |
Connection pool size | Integer | 20 | Specifies the maximum number of active connections. |
Connection profile name | String | Used when Select the Adobe Analytics Connection Profile from the list | |
Exclude tables | String | A list of tables excluded from read operations. Typically used to create a list of exceptions when the Tables property includes wildcards. Misconfiguration of the Tables and Exclude Tables properties can cause "Invalid table names" errors. | |
Incremental load marker | String | The incremental load marker is a unique incremental column in each object used for incremental load. When no marker is specified, tables are resynced at each polling interval. Specify the name of the column that contains the start position value. This column must meet the following criteria:
| |
Migrate schema | Boolean | False | Only available in Initial Load or Automated mode. Set to |
Mode | Select list:
| Automated | Automated mode applies incremental updates to objects that support incremental load and performs full resyncs for objects that do not support incremental load. |
Polling interval | Integer | 5m | Specifies an interval as an integer followed by a unit. Supported units are days ( |
Refresh token | Password | An OAuth 2.0 refresh token that is used to get a new access token. | |
Server client ID | String | The client ID from the server-to-server OAuth details in the developer console. Configure this property only when | |
Server client secret | Password | The client secret from the server-to-server OAuth details in the developer console. Configure this property only when | |
Start Position | String | %=-1 | Value of the incremental load marker that defines the initial reading position. |
Tables | String | A semicolon-delimited (;) list of objects to read from the source. Supports the | |
Thread pool count | Integer | 10 | The number of parallel running threads. The default value of zero specifies single-threaded operation. When the value of the thread pool counter is higher than the connection pool size, large data ingestion operations can cause the app to halt. Since best performance is achieved when using one thread for each table being synced, increasing the size of the connection pool to match the number of threads in use is a performance best practice. |
Use connection profile | Boolean | Set to True to use a connection profile instead of specifying the connection properties here. See Using connection profiles. |
Limitations
If a table does not have an Incremental Load Marker column, then a full sync will be done every polling interval.