# Adobe Analytics Component Manager for Google Sheets

Public documentation.

<figure><img src="/files/YKAQ6ReqYSJcTAjzj1uP" alt=""><figcaption></figcaption></figure>

{% content-ref url="/pages/-MboStulPIYUeRKS-s1H" %}
[Getting started with the Component Manager](/getting-started-with-the-component-manager)
{% endcontent-ref %}

{% content-ref url="/pages/ihBjja0Rig5CBzRq1YgM" %}
[What is the Component Manager?](/what-is-the-component-manager)
{% endcontent-ref %}

{% content-ref url="/pages/-Mi3U5JcZ\_UqgcMKC\_IQ" %}
[Main Functions](/main-functions)
{% endcontent-ref %}

{% content-ref url="/pages/NmaBbuWPivHOedvlBpnK" %}
[Free vs. Premium Version](/free-vs.-premium-version)
{% endcontent-ref %}

{% content-ref url="/pages/-MbpS0aSIrAmhGLQtisA" %}
[Data Protection - what data is used and where is it stored?](/what-data-is-processed-and-stored-where)
{% endcontent-ref %}

In addition to the documentation provided here, check out some of the articles and videos on how to use the Component Manager:

* 7 Steps to clean up your Adobe Analytics in a Data-Driven Manner: <https://lukas-oldenburg.medium.com/7-steps-to-clean-up-your-adobe-analytics-in-a-data-driven-manner-98bda7808f7b>
* Find and delete 100's of unused Adobe Analytics Segments with a few clicks (Video): <https://lukas-oldenburg.medium.com/find-and-delete-100s-of-unused-adobe-analytics-segments-with-a-few-clicks-video-18762313826a>
* [Prepare for your Migration from Adobe Analytics to CJA (Customer Journey Analytics) with the Component Manager](/prepare-to-migrate-to-cja-with-the-component-manager)

Or check out the the [**slide deck**](https://drive.google.com/file/d/1Te0B30HWTtczVjsIhvYkO0QVDtdVHQGN/view?usp=sharing) and the [**official Product Page at DataCroft**](https://datacroft.de/en/component-manager/).

## **Want to find out more? Contact us!**

* <https://datacroft.de/en/component-manager/>
* <https://twitter.com/lukasoldenburg>
* <https://www.linkedin.com/in/lukas-oldenburg/>


# Free vs. Premium Version

Compare the free vs. the paid plan of the Adobe Analytics Component Manager for Google Sheets

The Adobe Analytics Component Manager for Google Sheets offers many functions. It saves you, the Adobe Analytics Admin, 100's of hours of boring manual work and makes life for your Analytics users easier. While true pros can unlock the biggest time savers with the "Premium" plan ([**contact us**](/contact#want-to-find-out-more-contact-us)!), the free version offers some useful starter features as well:

<table><thead><tr><th width="144">Area</th><th width="374">Feature</th><th align="center">Free</th><th align="center">Premium</th></tr></thead><tbody><tr><td><a href="/pages/-MiFzefFBnNgPYdtWnHy">Component Editor</a></td><td>List Components (Calc Metrics, Segments, Date Ranges, Dimensions (incl. eVars, props, Classifications, List Vars), Metrics (incl. Success Events), all or by Virtual Report Suite's Curated Components</td><td align="center">x</td><td align="center">x</td></tr><tr><td></td><td>Bulk-Edit Components (delete, rename, add/remove from Virtual Report Suites "curated components")</td><td align="center"></td><td align="center">x</td></tr><tr><td><a href="/pages/-MiGq5HFzf3IZs9QlKzS">Component Usage</a></td><td>List Components by usage (how popular, and in which Workspaces and Segment/Calc Metric definitions), incl. showing duplicates</td><td align="center"></td><td align="center">x</td></tr><tr><td></td><td>Suggest Duplicates to Harmonize</td><td align="center"></td><td align="center">x</td></tr><tr><td></td><td>Suggest Components to delete</td><td align="center"></td><td align="center">x</td></tr><tr><td></td><td>Replace Components by others in all Workspaces, Segments and Calculated Metrics</td><td align="center"></td><td align="center">x</td></tr><tr><td><a href="/pages/-Mi2unWyokWaSmt3__PT">Workspaces</a></td><td>List Workspaces incl. tags, owners, number of active e-mail schedules etc.</td><td align="center">x</td><td align="center">x</td></tr><tr><td></td><td>Show viewing stats per Workspace</td><td align="center">90 days back</td><td align="center">400 days back</td></tr><tr><td></td><td>Delete or Rename Workspaces in bulk</td><td align="center"></td><td align="center">x</td></tr><tr><td></td><td>Get Project Schedules</td><td align="center">x</td><td align="center">x</td></tr><tr><td>Report Suites</td><td>List Report Suites</td><td align="center">x</td><td align="center">x</td></tr><tr><td></td><td><a href="/pages/f8FzhrlLcztXQZIMc4Rt">Compare Report Suite</a> settings</td><td align="center"></td><td align="center">x</td></tr><tr><td></td><td><a href="/pages/cQopLCDNu9PBgMwlIHXP">Report Suite Editor:</a> List &#x26; bulk-edit eVars, props &#x26; Success Events</td><td align="center">x (but without metrics/ eVar stats)</td><td align="center">x</td></tr><tr><td><a href="/pages/4W91SC2kP2WkJMYBXUCE">Account Usage Stats</a></td><td>View Login &#x26; Workspace view stats</td><td align="center">184 days back</td><td align="center">3 years back</td></tr><tr><td></td><td>View users by login activity incl. trends across last 4 rolling quarters</td><td align="center"></td><td align="center">x</td></tr><tr><td><a href="/pages/tcRl2yjWSuQLAkkKrzEb">Report Getter</a></td><td>Get and schedule Adobe Analytics Reports to Google Sheets, incl. scheduling</td><td align="center">no scheduled reports, no CSV export</td><td align="center">unlimited</td></tr><tr><td><a href="/pages/iEjLcgzVqz696bvWlQHE">Segment Pruner</a></td><td>Prune large segments to the parts that are really necessary</td><td align="center">30 days back</td><td align="center">750 days back</td></tr><tr><td><a href="/pages/iWxKhou6198bvwx6SGRc">Variable Health Report</a></td><td>Checks all your dimensions and metrics for trends and sumarizes biggest changes, incl. scheduling and result summaries to Slack</td><td align="center">max 7 days, no scheduling</td><td align="center">full feature set</td></tr><tr><td><a href="/pages/hacwIIsp3wjmUmSlNDQD">Alerts</a></td><td>View all Alerts incl. definitions, delete, extend, expire Alerts in bulk</td><td align="center"></td><td align="center">x</td></tr></tbody></table>

## How will my data be used?

Just like with the Premium version, your data is not used for any other purpose than providing you with the services of the Component Manager. Apart from your Adobe API credentials and the Google account e-mail address which you use the Component Manager with, we do not store any client-identifying data on our servers. We also access only component meta data and account usage logs (if you use the account usage stats function) from Adobe Analytics. We never access any report data.

If you choose to import names and email addresses of your organization's Adobe Analytics users, those are never stored on our servers, they are simply retrieved from Adobe and then written into your Google Sheet(s), which - if you want that - can even be owned by your organization's Google Workspace account. For more, see our [info on data protection](/what-data-is-processed-and-stored-where).


# Getting started with the Component Manager

How to get started with the Adobe Analytics Component Manager for Google Sheets. Explains how to generate the JWT API 2.0 Token and more.

You can set the Component Manager up all by yourself with the steps below. Alternatively, we gladly guide you through the setup step-by-step. Just get in touch with us through our [contact form](https://datacroft.de/en/component-manager/) or send us an e-mail to [contact\[at\]datacroft.de](mailto:contact@datacroft.de).

{% hint style="info" %}
Not new, but simply want to know how to [**migrate an existing Component Manager from JWT to OAuth V2**](/getting-started-with-the-component-manager/migrate-from-jwt-to-oauth-v2-server-to-server)?
{% endhint %}

## 1. Install the Add-On

You can install the Component Manager Add-on either

a) [**directly from the Google Workspace Marketplace**](https://workspace.google.com/marketplace/app/aa_component_manager/561445625333)**, or**

b) via the Extensions menu in Google Sheets: In Google Sheets, click on **Extensions -> Add-ons -> Get add-ons.**

<figure><img src="/files/pOCVAmcy8aUcf5DcHURV" alt=""><figcaption></figcaption></figure>

Then search for "AA Component Manager" and install.

<figure><img src="/files/qocYRNRJsQvo7w67Vksk" alt=""><figcaption></figcaption></figure>

If you have trouble installing, try to make sure you are logged in with ONE Google account (only for installing - you can later log in with other accounts again) or try in another browser.

After installing, follow the steps below:

## 2. Set up your Component Manager

To start, **create a new Google Sheet and give it a useful name**, e.g. "Component Manager My Company".

Set **File -> Settings -> Locale** to **"United States"** so your Google Sheet understands decimal numbers the same way the Component Manager does:

<figure><img src="/files/DesQum7TI1SNRnoje22X" alt=""><figcaption></figcaption></figure>

Then follow the video or text guide below:

### Step-by-Step-Guide (OAuth V2)

You need to have **System Administrator** rights for your Adobe Experience Cloud. The process takes about 15 minutes.

### 1. Import the Component Manager Sheet Template

Click on Extensions -> AA Component Manager -> Setup:

<figure><img src="/files/PVXmYi2fjXnD2fyWHPY0" alt=""><figcaption></figcaption></figure>

This will import all the necessary tabs. So wait a while until you see the "Finished (Re)creating sheet" message below.

### 2. View Terms & Conditions

After that, you should see an overlay to view the terms & conditions. With the next steps in the setup, you will also create a Component Manager account. This is why you first need to accept the terms & conditions when you run the setup for the first time.

You can now close the overlay.

<figure><img src="/files/iX8ygiaE2MhCeEtrnclO" alt=""><figcaption></figcaption></figure>

We will continue with the Component Manager setup later. Now let's first set up the Adobe Analytics credentials.

### 3. Create an OAuth V2 API Credential & Adobe Analytics Admin Account

**Option a) Let us do it.** Simply give your contact from Datacroft (or write to **<component-manager@datacroft.de>**) Experience Cloud Admin rights for a day or arrange a 15-minute call where we walk you through everything.

**Option b) Do it yourself:**

1\. Under <https://console.adobe.io/>, log in with a user who has Developer rights (can be given via Adobe Admin Console -> Users -> Developers) for Adobe Analytics and is an Adobe Analytics Admin.

2\. Create a "project" (ideally called "Component Manager API Access").

![](/files/-MbpPFn6IRH6QH0Ji5OT)

3\. Click on "**Add API**", select "Adobe Analytics" -> Next -> select "**OAuth Server-to-Server**" -> Next

4\. Select any Product Profile (technically, it does not matter which profile you choose because we will make this user an Admin soon, but choose one that makes the most sense for your organization), then **"Save configured API".**

5\. On the following page, click on **"OAuth Server-to-Server":**

<figure><img src="/files/a1N1jU33KPNMMcbeGXyy" alt=""><figcaption></figcaption></figure>

6\. There, you should see the following **credentials.**

<figure><img src="/files/LHb2CD6sF7dHyvut7tCj" alt=""><figcaption></figcaption></figure>

7\. Now copy the **Technical Account&#x20;*****EMAIL*** (*not the Technical Account ID!*).

<figure><img src="/files/B5Ltm5T9czNcdOFssk2E" alt=""><figcaption></figcaption></figure>

**8. Log into the Adobe** [**Admin Console**](https://adminconsole.adobe.com/) and click on **Products:**

<figure><img src="/files/hA97pdEu12xj3XkOdFgE" alt=""><figcaption></figcaption></figure>

**9. Go to Analytics**:

<figure><img src="/files/WhIiHODE2eeQMlTJn1mJ" alt=""><figcaption></figcaption></figure>

**10. Click on the "Admins"** tab and then "**Add Admin**".

<figure><img src="/files/DFSlrcGOZHe6ImXms4y8" alt=""><figcaption></figcaption></figure>

12\. Paste the Technical Account Email you copied previously, then click the little arrow to the right and select the entry that appears below.

<figure><img src="/files/CWqovDAsr5XrCEcVP3cO" alt=""><figcaption></figcaption></figure>

In the preview, you should now see "Enterprise ID" and an "SSO User Name":

<figure><img src="/files/rMXW5WHuz1uYhUimjFMd" alt=""><figcaption></figcaption></figure>

Click Save. Your new Admin should show as "Technical Account" in the list.

### 4. Validate Component Manager - Adobe Analytics connection

You are now ready to check if the Component Manager can connect to the Adobe Analytics API.

1\. Go to the **config** tab, then, select **Extensions -> AA Component Manager -> Setup** from the main menu again to finish the setup. You can also run this anytime again to update the API credentials.

<figure><img src="/files/PVXmYi2fjXnD2fyWHPY0" alt=""><figcaption></figcaption></figure>

3\. Confirm the terms & conditions.

4\. You are now asked to add each of the OAuth V2 Credentials that are required for the connection, in the following order:

* Scopes
* Client ID
* Secret (click on "Retrieve Secret" to get it)
* Org ID

Simply copy-paste them from your Adobe Developer project OAuth Credentials page.

<figure><img src="/files/PXswkFiWoMRo5YMnZpYo" alt=""><figcaption></figcaption></figure>

Example:

<figure><img src="/files/rxAtI7P75xGeSEyrsa24" alt=""><figcaption></figcaption></figure>

5\. Decide whether the Component Manager shall import the names and email addresses of your organization's Adobe Analytics users (see [more here](/what-data-is-processed-and-stored-where#what-adobe-analytics-data-does-the-component-manager-use)).

6\. Confirm or change the **Base Report Suite ID** (see [below](#id-5.-determine-the-base-report-suite-id)). For now, you can leave this blank or simply enter your main Report Suite ID.

7\. A "Thank you, we're setting up your account" message will appear. Check the config tab's columns G-I for the field "**setup\_status**". After 20-30 seconds, it should show "success" as well as some rows informing you of the duration of your contract. You should then also see a "Setup result" success message.

<figure><img src="/files/oSLWbUih4KbclzzsRuRu" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/CINE1bkm2gaT2kyGkz5o" alt=""><figcaption></figcaption></figure>

**Well done 👍**! Your Component Account is created and the Adobe Analytics connection works!

{% hint style="info" %}
After creating a new API User and linking it to an Admin account in Adobe Analytics, it can take a couple of minutes until the user *can* actually use her Admin rights. So if the Component Manager tells you that your user does not have Admin rights, try again after a couple of minutes.
{% endhint %}

### **5. Determine the Base Report Suite ID**

For some features to work, you need to set the Base Report Suite ID. Simply enter your main Report Suite ID into the config tab next to "base\_rsid":

<figure><img src="/files/v5unWnWVbN7Shl4Ayk0b" alt=""><figcaption></figcaption></figure>

You can get all Report Suite IDs directly in the Component Manager by running "AA Component Manager" -> "Report Suites" -> "Refresh Report Suites". Or you can find them under Admin -> Report Suites:

![](/files/-MboXzyXb-tkHkDxByL7)

#### **What is the Base Report Suite ID?**

Any Component Manager Google Sheet will always show *all Segments, Calculated Metrics and Date Ranges of your **entire** Adobe Analytics account,* as these component types are not Report-Suite-specific. E.g., a segment you created in Report Suite A can be used in any other Report Suite.

However, *dimensions* (eVars/props & classifications) and *metrics* (Success Events) are Report-Suite-specifc. For example, eVar2 can mean something different in another Report Suite or it may not even be activated there. Similarly, *Virtual Report Suites* are built on top of a "Base Report Suite" (officially "Parent Report Suite").

Thus, the "**Base Report Suite ID"** tells the Component Manager from which Report Suite it shall import dimensions, metrics and Virtual Report Suites.

In other words, the Base Report Suite ID is the Report Suite ID from which...

* eVars, props and Success Events are pulled in (segments, calculated metrics and date ranges are report-suite-independent)
* Virtual Report Suites will be shown: the VRSs that have the Main Report Suite as their "parent suite"

You can change this ID at any time in the **config** tab or create a second sheet with another Base Report Suite ID.

### 6. Optional: Set up Virtual Report Suite integration

You can also do this later, but to enable Virtual Report Suite functionalities, follow the [**steps here**](/main-functions/configuring-virtual-report-suites).

### 7. Create the full sheet **with all tabs and populate with data**

### 8. Populate the sheet with data from Adobe Analytics

After you have all tabs (e.g. "comp\_editor" etc.), you can start populating the sheet with data. You can take a shortcut by running **"Other -> Populate all tabs"**:

<figure><img src="/files/RkEn5Cdfwmh4J9qDlnW6" alt=""><figcaption></figcaption></figure>

After starting "Populate all Tabs", take a break and get a coffee, because the Component Manager should not be disturbed until it has finished the last tab to fill, which is the [Component Usage](/main-functions/the-component-usage-tab#summary) tab. Filling the Component Usage tab for the first time can take 15 minutes to an hour, but you can start working in the other tabs once the Component Usage tab update has started. You will know that it has started because you will be moved to that tab and you will see this message popping up on the bottom right:

![](/files/-Mjk3rTU660qOtd3s9Iy)

{% hint style="info" %}
"Populate all tabs" actually does not populate "all" tabs, but only those that do not require any up-front configuration (like "Compare Report Suites").
{% endhint %}

**Now enjoy the Component Manager! You have now officially become a hyper-efficient Adobe Analytics Admin!**

### Outdated: Step-by-Step-Guide Video (JWT)

**Attention: The video below explains how to set up the API credentials with the deprecated JWT method! We strongly recommend following the&#x20;***<mark style="color:red;">**OAuth V2 guide above!**</mark>* We will provide a new video for OAuth V2 soon!

{% embed url="<https://youtu.be/MQCS2lM6c6U>" %}
Step-by-step guide on how to set up the Component Manager for your organization
{% endembed %}


# Migrate from JWT to OAuth V2 (Server-to-Server)

How to migrate your Adobe Analytics API credentials for the Component Manager from JWT to OAuth.

## JWT is going out of business, and you need to migrate

JWT API Credentials will no longer be supported after Januar 27 2025. Starting June 3, you can no longer create new JWT credentials, only OAuth V2 (Server-to-Server). See [Adobe's deprecation timeline and more details here](https://developer.adobe.com/developer-console/docs/guides/authentication/ServerToServerAuthentication/migration/#deprecation-timelines).

The Component Manager will support JWT credentials as long as Adobe does (Jan 27, 2025), so you don't need to change to OAuth right away.

If your Component Manager account previously had JWT credentials, you need to eventually migrate them to OAuth V2. This guide shows you how to do that:

1. Go to [developer.adobe.com -> Projects](https://developer.adobe.com/console/projects/) and open your Component Manager Project
2. Click on **"Go to credential"** in the blue popup (or click on "Service Account (JWT)" below).

<figure><img src="/files/pRy7OZQHgOqc9MbKIyF1" alt=""><figcaption></figcaption></figure>

3. Click on "Add new credential":

<figure><img src="/files/cYlrHjtgD6hzfjm6bucv" alt=""><figcaption></figcaption></figure>

4. After confirming, you should see "Step completed" in green. Click on "OAuth Server-to-Server" on the left side.

<figure><img src="/files/o4qAVCv93qalgvZE91iO" alt=""><figcaption></figcaption></figure>

5. Scroll down to review your new OAuth V2 credential. Note that Client ID, Secret, Tech ID, Tech E-Mail and Org ID stay the same as with JWT! The only new thing are the **Scopes** and the Credential Name. For our migration, we only need the **Scopes.**

<figure><img src="/files/hSa0Cr3vO8AYV8uzfbMf" alt=""><figcaption></figcaption></figure>

6. Now go to your Component Manager Google Sheet and click on Extensions -> AA Component Manger -> Setup

<figure><img src="/files/bNbQnDjzDxMcDldzC7Uy" alt=""><figcaption></figcaption></figure>

7. The first question is now for the Scopes. Copy the Scopes from the Credential Details page shown under point 5 above and paste them:

<figure><img src="/files/nSQKS4VIQSTbdMw26BCy" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
If you do not provide Scopes, the Component Manager assumes you are still on JWT and will ask for JWT-related credentials like Tech ID and Private Key.
{% endhint %}

8. You can **then click OK for all the next steps** because neither your Client ID, Secret nor Org ID should have changed. You won't be asked for the **Tech ID and Private Key**, because they are **not needed for OAuth V2.**

<figure><img src="/files/gaE48bXBg2LpLeJbBKXp" alt=""><figcaption></figcaption></figure>

9. With JWT, you needed the credentials plus the private key to do anything. For OAuth V2, Scopes, Client ID, Org ID and the Secret are enough. That is why we no longer store the **Client Secret** in the sheet's "config" tab, as that would give anyone with access to the sheet all the credentials to query your Adobe Analytics API:

<figure><img src="/files/YfPMw4gd2OfpLnFkjec6" alt=""><figcaption></figcaption></figure>

After going through the rest of the setup as usual, you should finally receive a success message on the bottom right when everything has been completed.

You should now also see your scopes at the bottom of the "Other Settings" columns:

<figure><img src="/files/hyC0uXVddk4RQft0VH0p" alt=""><figcaption></figcaption></figure>

10. We recommend you go to the Developer Project page now and delete the JWT credentials to avoid confusion later (and all those reminder e-mails from Adobe 😆).

<figure><img src="/files/8EvtxQetW3uarGlP6gft" alt=""><figcaption></figcaption></figure>

## Struggling? Found a bug?

Please don't hesitate to reach out to us [via our Contact options](https://docs.datacroft.de/contact) or via component-manager\[at]datacroft.de.


# Renew the Adobe Private Key (JWT)

Adobe Private Keys for JWT Credentials expire after one year.

{% hint style="info" %} <mark style="color:red;">**Adobe JWT Service Account credentials with Private Keys are no longer supported. Please use the new OAuth V2 method.**</mark> [<mark style="color:red;">**Migrating is quick and easy**</mark>](/getting-started-with-the-component-manager/migrate-from-jwt-to-oauth-v2-server-to-server)<mark style="color:red;">**.**</mark>
{% endhint %}

This guide was removed, as Private Key Support has ended. <mark style="color:red;">**Please use the new OAuth V2 method.**</mark> [<mark style="color:red;">**Migrating is quick and easy**</mark>](/getting-started-with-the-component-manager/migrate-from-jwt-to-oauth-v2-server-to-server)<mark style="color:red;">**.**</mark>


# Migrate to the Google Sheets Add-on

How to migrate from the old version of the Component Manager to the Google Sheets Add-on in 3 minutes.

## What changes with the Add-on?

Since January 2023, the Adobe Analytics Component Manager for Google Sheets is available as an [official Google Sheets Add-on in the Google Workspace Marketplace](https://workspace.google.com/marketplace/app/aa_component_manager/561445625333).

This has a lot of benefits:

* The installation is a lot **easier and faster** and there are no more scary "unsafe" messages etc.
* You **automatically benefit from updates** - no need anymore to manually update the Component Manager to a new version
* The **app is faster** as we don't need to do things like version checks with data from a separate spreadsheet every time a function runs
* **Security:** your Google Workspace Admins can whitelist this particular app instead of having to give you unrestricted access to any unapproved Apps Script apps

## Do I need to migrate?

The old version will keep working until **Februar 28 2023**. We will not fix bugs or issues there. Migration is easy. Simply follow the steps below:

## How to migrate

Migration requires 2 steps:

### 1. Install the [official Google Sheets Add-on in the Google Workspace Marketplace](https://workspace.google.com/marketplace/app/aa_component_manager/561445625333).

### 2. Remove the Apps Script code and Library connection in each of your Component Manager sheets:

I. Go to Extensions -> Apps Script.

<figure><img src="/files/hwRU1D3CaL8EhJi0vWtX" alt=""><figcaption></figcaption></figure>

II. Delete all code in the Code.gs panel and click the "Save" icon. If you cannot edit or save, make sure you are viewing the page with a Google account that has Editor rights.

<figure><img src="/files/5sEChmkBT3fnsHQmkbx8" alt=""><figcaption></figcaption></figure>

III. Under "**Libraries**", click on the three dots next to "**libComponentEditor**", and then "**Remove**".

![](/files/fMJWaTmfcCHv4Tt9nfhm)

IV. Reload your Google Sheet. Done.

You will now no longer see the "AA Component Manager" menu on top. Instead, all the Component Manager functions are now under **Extensions -> AA Component Manager:**

<figure><img src="/files/iS0uXJSHxvGRmKz4Q3Ty" alt=""><figcaption></figcaption></figure>


# Required Google Workspace Settings for Installing the Component Manager Add-On

Explains the required settings of your company's Google Workspace account so you can install the Google Sheets Extension/Add-on "AA Component Manager"

If you run into problems installing the [Component Manager Google Sheets Extension](https://workspace.google.com/u/0/marketplace/app/aa_component_manager/561445625333) from Google Workspace Marketplace, try to contact your Google Workspace Admins and give them the following instructions.

1. Log into your Google Workspace Admin Console <https://admin.google.com/>
2. Navigate to the page with the Google Workspace Marketplace allowlist access settings.
3. Set "Allow users to install and run only selected apps from the Marketplace".

<figure><img src="/files/O5Iv2rYlzMqEk6X7ZV8F" alt=""><figcaption></figcaption></figure>

4. Then go to "Apps list":

<figure><img src="/files/9FdwII30ywbWMaQAOT86" alt=""><figcaption></figcaption></figure>

5. Open the "Allowlist App" tab. Then search for "AA Component Manager" and select the add-on below:

   <figure><img src="/files/GASlsPyYJ6ANT0f46DkY" alt=""><figcaption></figcaption></figure>
6. Then Select "Everyone" or specific user groups that should be allowed to install the app:

<figure><img src="/files/ZHVT3Z49vsLeuF0RZ5U1" alt=""><figcaption></figcaption></figure>

7. The Component Manager should now show under "Allowlisted Apps" and users should be able to install the app.

<figure><img src="/files/jDdiwYbaWZWw0MyVAsMm" alt=""><figcaption></figcaption></figure>

It can a couple of minutes for the settings to be effective. If it still does not work, log out of your Google account, delete cookies, and log in again.

## **Still not working?**

In rare occasions, your organization's network might block requests to certain Google URLs. In rare occasions, browser plugins like Ad Blockers can also harm the experience.

* Try disabling the ad blocker.
* Try in another browser without plugins
* Try on a private computer or/and with a private Google account. If that works, it is due to your org's network settings.

You can always contact us at <component-manager@datacroft.de>. We like to help, and we are usually fast.


# Main Functions

Get to know all the efficiency-boosting functionality that the Adobe Analytics Component Manager for Google Sheets has to offer in these tutorials:


# Component Editor

How to use the Component Editor (component\_editor) tab

## Summary

The Component Editor (`component_editor`) tab allows you to:

* edit or delete components globally
* or for Curated Components of multiple Virtual Report Suites (VRS) at once: You can
  * add or remove them from VRS or
  * edit their VRS-specific "Curated Name"

![The Component Editor tab and its menu functions](/files/-MiG0T8qm-qulVfT2gD3)

## Step-by-Step Guide

### 1. Reload all Components from Adobe Analytics

First you want to make sure to work with the most recent state in your Adobe Analytics account. For that, quickly reload the components from Adobe Analytics by clicking on "Component Editor" -> "Reload Components from AA":

![Refresh the Component Manager by reloading all components from AA](/files/-MiG6G57bY7Wip1j7sZa)

### 2. Select the Components for editing via the "Component Viewer"

In the background, this actually refreshes the `full_comp_import` tab, which is where the "**Component Viewer**" reads from. In the Viewer (on the blue-green left side), you can view a list of all components, or only the curated components of a specific VRS by selecting a VRS in the drop-down menu on top:

![Filter the components you want to see on the left side.](/files/-MiG17JqWcjZVWsEAzsy)

{% hint style="info" %}
You can [**configure the VRS's**](/main-functions/configuring-virtual-report-suites) for your Component Manager in the "**config**" tab in cells A4:B4 and below (column C "Import Sheet Prefix" is no longer needed).
{% endhint %}

Then simply copy the IDs of the components you want to edit to the "ID" column of the Component Editor (the orange part on the right). Wait a couple of seconds, the Component Editor will automatically populate the other columns with the current values:

{% embed url="<https://www.youtube.com/watch?v=GbhDr34aGeM>" %}
How to copy from the Component Viewer to the Component Editor
{% endembed %}

Of course, you can copy the IDs from any of the other tabs as well. It does not have to be from the "Component Viewer".

### Supported Edit or Delete Operations

The Component Manager supports the following operations:

1. **change:** change name/description globally or VRS-specific curatedName
2. **add:** add to VRS
3. **remove:** remove from VRS
4. **delete:** delete globally (component will be gone)

See the following screenshot for a visual explanation:

![Supported Editing and Deletion options](/files/-MiG-Q1M_PQfYkk_bEpB)

### Which Component Types can be edited/deleted?

* VRS operations (**add/remove/change curated name**) are supported for **any component type**
* **change or delete** operations are supported for **segments, calculated metrics and date ranges**
* to **edit eVars, props or Success Events,** **go to the "**[**Report Suite Editor**](/main-functions/report-suite-editor-evars-props-success-events)**"**.

### 3. How to edit or delete, step by step:

1. **Copy the Component IDs into the "ID" column** (as many IDs as you'd like), as shown in the previous chapter.
2. Wait for the other columns to populate all columns with the current values.
3. For each component (each row), **choose the** "**method**" (or simply copy-paste), i.e. change/remove/add/delete (explanation in previous chapter).
4. **Edit the "Curated Name", "Name" or "Description" fields** for those components where you want to change something (e.g. add the new name in the "name" column if you want to change the name)
5. If you have any VRS-specific operations (add/remove/change Curated name), **add an "x" to the Virtual Report Suite columns** where these operations should apply.
6. Run **"Component Editor -> Validate Data to Send"**.

![](/files/-MiGNJYMCm8nDp4sVmKH)

{% hint style="info" %}

* Leaving a field **empty** will be interpreted as "no change". As of now, there is no method to entirely "clear" a value. Adding a space " " however does the job.
* You can **combine VRS add/remove operations with changes to the (curated) name or description.** E.g. If your method is "add" or "remove" and you also submit a change to the global or Curated name or the description in the same row, these changes will be executed as well, so you don't need an extra row for them.
  {% endhint %}

You are now taken to the **"update\_export"** sheet where you can see a preview of all the planned updates. The **validation** checks if the updates you want to send are "valid". In the example below, the validation failed because no "method" was specified:

![](/files/-MiGNXhNB6WqYtD6L-qg)

Note that this validation is not exhaustive, it covers most of the typical errors.

After successful validation, click **Component Editor -> Send Updates to AA** and confirm the message. You can now follow the updates in the "Status" of the "component\_editor" tab.

![](/files/-MiGPI44dir5loTzvV1Z)

Once done, you see: "Component update finished. See update\_log tab for effective changes."

{% hint style="info" %}
**What happens to AA functionality if I delete segments or calculated metrics?**

**Analysis Workspace projects** with deleted segments, calculated metrics or date ranges will still work

**DWH Exports** using deleted segments will still work.

API Queries using deleted calculated metrics, segments or date ranges will still work.

**Alerts** using deleted segments or calculated metrics usually work, but there has been a case reported where they no longer worked.

You **cannot delete segments that are published to the Adobe Experience Cloud.** These will be reported as "issues" in the update logs (see next tab). Go into these segments in Adobe Analytics, unpublish them from the Experience Cloud and then you try again.

There has recently been a case however where a segment was used in an **Adobe Target** audience, and when that segment was deleted, that Target Activity stopped working. It also did not start to work again after the segment had been revived. So the Target experiment needed to be recreated completely (thanks to Adobe Analytics expert Mirko Catucci from the great [Softlab Italy](https://www.soft.it/en/) team for bringing this to my attention).

To avoid that, check your Target experiments for Adobe Analytics segments before deleting them. Another method is to put all your Target and Alert segments and calculated metrics into a Workspace so they never appear as the "zero-usage" components.
{% endhint %}

### 4. Check the change (update) logs

The "**update\_log**" tab contains

* a list of all changes *sent* to Adobe Analytics (does not mean the changes were effective)
* a link to an Excel file with a log of the effective results after the change has been executed: In this log file, you can see whether the changes actually were effective or if any errors occurred

![](/files/-MiGPvekJMQlQ9XkUkGy)

Download the log file by double-clicking on the cell next to "Effective changes (logs)" and open it in Microsoft Excel (or import the file into Google Sheets).

The following example screenshot should help you understand how to interpret the update logs. You can also [download this example](https://docs.google.com/spreadsheets/d/16vCgonWHEkTmy7iKYsAVq6pgxEO-2kVw/edit?usp=sharing\&ouid=104141914278396589924\&rtpof=true\&sd=true) for more comfortable viewing:

![How to interpret the update log](/files/-MiGo75qgpwbBLX7S_xr)

### 5. Clear the Edit Area

To avoid accidentally sending the same change again, it is recommended to clear the edit area after each update run. Select "Component Editor -> Clear Edit Area" to do so:

![](/files/-MiGg_hxQlQV4ZRsBk1Y)


# All Components

Understand the tab that gives you a quickly refreshed, compact list of all components.

The `full_comp_import` (also called "All Components") tab contains a list of all components, but in a more compact way (less columns => fast refresh) than the [**Component Usage tab**](/main-functions/the-component-usage-tab) (`all_comp_usage`). The "[**Component Viewer**](/main-functions/the-component-editor-tab#2-select-the-components-for-editing-via-the-component-viewer)" (part of the Component Editor tab) reads from this tab and displays some of its columns.

![The "full\_comp\_import" tab shows all components in a compact form that can be quickly refreshed.](/files/-MibR9HnT7qOn4qHmHuf)

### Benefits of the full\_comp\_import ("All Components") tab

* You can **quickly refresh** the `full_comp_import` tab via **"Component Editor - Reload Components from AA"**. That takes less than a minute for a medium-sized account with 3-4 VRS. This is especially useful when you do changes (e.g. name changes) and quickly want to get the freshest data, because the Component ***Usage*** tab usually takes a lot longer to refresh as it does many more calculations.

![Quickly refresh the whole list with the newest data from Adobe](/files/-MicHWgYD9hHk8uoo2aE)

* Even though the `full_comp_import` has a lot less columns than the Componen Usage tab, it still shows you many **more columns than the Component&#x20;*****Editor** tab's "**Component Viewer**",* e.g. the very useful VRS columns or additional "owner" columns.
* You have **way more space** than in the other component tabs, e.g. to add temporary columns with your own formulas for efficient editing or own queries (note that these may be removed again when you reload the components.


# Component Usage

How to interpret the Component Usage tab (all\_comp\_usage).

## Summary

The Component Usage tab is a "gold mine" for Adobe Analytics admins trying to optimize their setup. It shows, for example:

* all components and how often they are used, and where, i.e.
  * in how many and which **Workspaces** ("Projects")
  * in how many and which **Segment** or **Calculated Metric** definitions
  * in how many and which **Alert** definitions
* **duplicate** Segments and Calculated Metrics (same definition, but different name/description)
* to which **Virtual Report Suites's "Curated Components**" a component belongs

## Updating the Component Usage tab

After [setting up your Component Manager](/getting-started-with-the-component-manager), click "**Component Usage -> Updated Component Usage tab**" to update.

<figure><img src="/files/fWXEKopsVeR8EUrbvIe4" alt=""><figcaption></figcaption></figure>

You can **follow the progress** in the status bar:

![](/files/-MiISrF5uIJSxresois4)

When done, it will show "*FINISHED!".*

{% hint style="info" %}

### **The first update: Be patient!**

**Be patient!** The **first** update of the Component Usage tab **can take a while.** It takes roughly ...

* 15 min to 45 hour for a small account (< 2'000 Workspaces and 7'500 Components)
* up to 2 hours for a medium account (< 5'000 Workspaces and 30'000 Components)

It is **recommended not to run other tasks during the update** to [avoid 429 "too many requests" API errors](https://www.adobe.io/apis/experiencecloud/analytics/docs.html). The Component Manager can work around them, but anytime it encounters this error, it will take a little break, so the execution will take longer.

If you have a **really huge account** and **cannot get all results within 2 hours**, scroll down to the chapter on *"*[*Limiting the data*](#limiting-the-data)*"*.

Scroll down to that chapter as well if you have more than the **maximum Components or Workspaces for an individual run.**

### **After the first time: Much faster!**

The next time you run the Component Usage update, it is generated by calculating the **delta to the previous update**. So unless you have changed a huge number of workspaces since then, it should not take more than 5-15 minutes.
{% endhint %}

## Interpreting the columns

#### The most **relevant and not self-explanatory columns:**

* **owner name:** Name of the owner (if [personal data is enabled](/what-data-is-processed-and-stored-where#personal-data)).
* **modifiedById:** User ID of the user who last modified the component
* **definition:** The technical definition in JSON format
* **rsid:** The "Parent" Report Suite ID in which this component was created.
* **componentType:** The type (segment, calculated metric, dimension, metric or date range)
* **includeType:**
  * shared = "shared with all"
  * all = "all components" (no matter if shared)
  * templates = out-of-the-box component (e.g. "Visit") visible to anyone
* **matching\_projects\_count**: In how many Workspace projects is this component used (= the workspace contains at least one panel in which this component is used in whatever form (e.g. in a table, a graph, a dropzone filter, etc...)
* **matching\_calc\_metrics\_count:** In how many Calculated Metrics definition does this component figure?
* **matching\_segments\_count:** In how many Segment definitions does this component figure?
* **matching\_alerts\_count:** In how many Alert definitions does this component figure?
* **matches\_total:** Previous 4 columns summed up. A zero here means a component is an "***orphan***", i.e. it exists, but it is not used anywhere --> a [deletion candidate](/cleaning-up-workspaces-and-deleting-unused-components)
* **matching\_projects\_ids:** The matching Workspace Project's IDs
* **matching\_projects\_names:** The matching Workspace Project's names
* **matching\_segments\_ids:** The matching Segments' IDs
* **matching\_segments\_names:** The matching Segments' names
* **matching\_calc\_metrics\_ids:** The matching Calculated Metrics' IDs
* **matching\_calc\_metrics\_names:** The matching Calculated Metrics' names
* **matching\_alerts\_names:** The matching Alerts' names
* **matching\_alerts\_ids:** The matching Alerts' IDs
* **duplicate\_segments\_count:** For segments, shows number of duplicates, i.e. segments which are the same by their definition, but may have a different name or description
* **duplicate\_segments\_ids:** The IDs of all segments that are duplicates to this one (including this one)
* **duplicate\_segments\_names:** The names of those segments
* **duplicate\_calcmetrics\_count:** For Calculated Metrics, shows number of duplicates, i.e. Calculated Metrics which are the same by their definition, but may have a different name or description
* **duplicate\_calcmetrics\_ids:** The IDs of all Calculated Metrics that are duplicates to this one (including this one)
* **duplicate\_calcmetrics\_names:** The names of those Calculated Metrics
* **write\_timestamp:** When was this row generated (UTC)
* **VRS columns:** show if the component is among the curated Components of the VRSs and the Curated Name used in that VRS (if any). [See "Configuring Virtual Report Suites"](/main-functions/configuring-virtual-report-suites).

### **Caveats**

#### **Not all components support all fields:**

* either the Adobe API does not provide this info (e.g., there is no data on the last modification date of an eVar)
* or some fields simply make no sense for all components (e.g. you simply *cannot* modify the built-in "Visits" metric, so there is no modification date either)

In such cases, you see `not supported by this component`.

**Very long values are cut off**

Columns like "description", "definition", or the "matching names" can get very long and are thus truncated after a certain number of characters. Otherwise they could break Google Sheet's max cell limits or make writing to GoogleSheets via the API impossible. The calculations, e.g. of the number of matches, are made before truncation. Truncation is only applied shortly before the data is written to the Google Sheet.

#### **Classifications: matches can be undercounted in accounts set up after mid-August 2026**

Adobe stores **old ("legacy") Classification IDs inside Workspace project definitions** and only rewrites them to the current ID format once that project is **opened and saved again** in Workspace. A Classification that has not been touched for years is therefore still referenced by an ID like `variables/evar1.1` (parent variable + the position of the Classification), not by the ID Adobe uses today.

To find those matches anyway, the Component Manager used to build a **lookup map from legacy to current Classification IDs**. The only Adobe API that could deliver this mapping was the Analytics **1.4 API**, which Adobe **shut down on August 12, 2026**. Adobe's 2.0 Classification API identifies Classification columns by UUID and offers **no way to convert legacy Classification IDs to current ones**.

{% hint style="warning" %}
**What this means in practice:** Accounts whose lookup map was built **before** mid-August 2026 are unaffected — legacy IDs never change, so the existing map stays valid.

For **accounts set up after** that date, no such map can be created anymore. There, `matching_projects_count` (and `matches_total`) can be **too low for Classification dimensions**, because matches in project definitions that still carry legacy IDs are not detected.

This only affects **Classifications**. eVars, props, events, Segments, Calculated Metrics and Date Ranges are matched by their regular IDs and are not impacted. The gap also keeps shrinking over time: every time a project is opened and saved in Workspace, Adobe replaces the legacy IDs in its definition with the current ones.
{% endhint %}

## How are project-specific Components and dimensional value filters treated?

The following video summarizes this chapter. For details, read on below.

{% embed url="<https://youtu.be/6Pls8xwvWJI>" %}

#### Project-specific Components

The Component Manager displays all *public* Components. Public Components are those components that Admins can see in Adobe under:

***Components -> Segments, Calculated Metrics or Date Ranges -> Other Filters -> Show all***

"Private" Components, also called "ad hoc" or "**project-specific**" Components are **not listed** in the Component Manager. You can recognize them by this info when clicking on the :information\_source: icon of a component:

![](/files/WpKehd4HtTfmgnBXlXhN)

Project-specific Components can be created in a number of ways, among them:

* **Ad-hoc Segments:** E.g., in the "dropzone" on the top
* **Ad-hoc Calculated Metrics:** E.g., by right-clicking on a metric in a table, and then "create metric from selection"
* **Ad-hoc Date Ranges:** E.g., by right-clicking on a metric in a table, and then "Add time period column"

**The Component Manager does not show such project-specific Components because they are irrelevant for cleanups:** They only "live" inside of single projects and don't spam the Component list for other users. The number of such project-specific Components can be substantial, which would also slow down your experience unnecessarily.

#### Will a drag-and-drop Dimensional value filter show as a "match" for the underlying Component in the Component Usage list?

What about the yellow drag-and-drop Dimensional value filters, e.g. when I pick and drag one or more values of a dimension onto another dimension or under a metric or segment?

E.g., in this example, I am dragging "Campaign Delivery (eVar3)" onto the Country "Canada".

<figure><img src="/files/i1loKKyhjjDw6TwNRFm0" alt=""><figcaption></figcaption></figure>

*Will Campaign Delivery (eVar3) now show as being "used" in this specific workspace in the "matching\_projects\_count" column?*

***Yes.*** Dimensional Value filters will show the underlying dimension (eVar3) as "matching" for the specific Project ("Test Project" in this example):

<figure><img src="/files/tkEZl9GMUJYaPQBPp67G" alt=""><figcaption></figcaption></figure>

## Suggest Components for deletion

With "**Component Usage -> Suggest Components for deletion**", you can have the Component Manager weed through the Components in the Component Usage tab, find the thousands of unused components that are deletable and suggest them for deletion. If you do not want to delete them directly, you can also automatically append a "warning" text to component names, e.g. "- WILL BE DELETED SOON".

See this video on how to:

{% embed url="<https://drive.google.com/file/d/15nCaSDaznw8HBPLR5tcixJwCDJObHlk6/view>" %}
Find unused segments, calculated metrics & date ranges with ONE click and mark them for deletion.
{% endembed %}

## Harmonize Duplicate Components

Together with the [Component Replacer](/main-functions/component-replacer-step-by-step-guide), the Component Manager can also be used to harmonize duplicate segments or calculated metrics.

{% embed url="<https://www.youtube.com/watch?v=ZAWbdSkntn4>" %}
Detect and harmonize duplicate segments or calculated metrics
{% endembed %}

## Limiting the data

{% hint style="info" %}
If you think you need to use any of the filters below, it is best to contact your Datacroft support for the best strategy. The following is not an exhaustive explanation.
{% endhint %}

If you have a huge account that goes beyond the maximum allowed components per Component Usage run (7500 workspaces), or if you want to gain speed by just concentrating on certain component types (e.g. "only segments and calculated metrics"), you can limit the data via the "**Component Usage Tab Filter**" settings in the "**config**" tab (it is not required to fill in all fields):

<figure><img src="/files/sWTZh7OZelBOUf5OKG1n" alt=""><figcaption></figcaption></figure>

In this example, we are telling the Component Usage generator ...

* to look for component matches only in Workspaces with changes since Dec 31, 2020 and Sep 30, 2021
* to limit the components types to check to Segments and Calculated Metrics
* to check only components of the type "all" and "shared" (since we cannot change template components anyway)
* to check a maximum of 5k **workspaces** matching the other filters.
* Furthermore we limit the workspaces scan to Workspaces **created in** RSIDs "reportsuite1", "reportsuite2" and "reportsuite3"

The **maximum applies per run.** So you could do the first run for 5'000 Workspaces with modification dates in this year, and then change those dates to last year for the second run and thus get matches in all your 8'000 Workspaces.

## Run with Hard Refresh (Reset Component Usage Stats)

By default, the Component Usage analysis only looks at Workspaces that have been modified since the last run. This speeds up the analysis mightily.

However, after changing a config setting (see last chapter) or if you suspect some problem, you can reset the Component Usage analysis. It will then run like the very first time, looking at all workspaces, ***not*** only those that were modified since the last run.

For this, use the `run_with_hard_refresh` setting in the `config` tab and set it to `TRUE`. If you don't see this setting in your sheet, you can simply add it yourself. The text in the "Component Usage Tab Filter Description" does not matter.

<figure><img src="/files/H0KvPcK0pmMRbcNL75KG" alt=""><figcaption></figcaption></figure>

The value resets to "FALSE" after the run.

## Limit Workspaces for Component Usage

In some instances, you want to focus on component matches in "relevant" workspace projects only. A typical case is when migrating to Adobe Customer Journey Analytics (CJA). Here you may want to know which components are used in certain important workspaces, i.e., workspaces you want to reproduce in CJA.

Another typical use case is limiting the component matches to workspaces with a certain minimum number of views in the last x days (See [Workspace Usage Stats](/main-functions/the-workspaces-tab#workspace-usage-stats)). This way, you can ignore component matches in "dead" workspaces that nobody views anymore.

1. Create a copy of the "workspaces" tab. Give the new tab any name you like, e.g., `wsp_to_limit_comp_usage`
2. In this new tab, shorten the list so it contains only the "relevant" workspaces:<br>

   <figure><img src="/files/knGPUtNesaG0A16hZKQi" alt=""><figcaption></figcaption></figure>
3. In the `config` tab, set `limit_workspaces_for_comp_usage` to the name of the tab with the relevant workspace list (in our example, `wsp_to_limit_comp_usage` ):<br>

   <figure><img src="/files/ta6TgB6zamAX150rz0Hb" alt=""><figcaption></figcaption></figure>
4. If you have previously executed Component Usage Update runs, you also need to set `run_with_hard_refresh` to `TRUE` for the first run with your new limitation settings.<br>
5. The `matching_projects_count` column in the `all_comp_usage` tab will now count matches only if the component is found in the "relevant" workspaces:<br>

   <figure><img src="/files/46iW1wK2Y73sLEDj9tg0" alt=""><figcaption></figcaption></figure>

{% hint style="info" %}
The `run_with_hard_refresh` setting will jump back to FALSE after the run to avoid the resource-intense re-analysis of all, even unmodified workspaces. **So whenever your list of "relevant" workspaces changes, you need to set the** `run_with_hard_refresh` **flag to** `TRUE` **again for the first run after the change**.
{% endhint %}


# Replacer

How to use the Component Replacer of the Adobe Analytics Bulk Component Manager for Google Sheets

## Summary

The Component Replacer ("Component Usage" -> Run Component Replacer") **replaces a component by another one.** This is useful for cleaning up duplicates (see the "duplicate" columns in the Component Usage tab) or automatically updating existing workspaces / segments to a new component when an old one is deprecated.

{% hint style="info" %}
Read the "**Important Restrictions" further down before starting** with your first replacement job.
{% endhint %}

![The Component Replacer in the menu](/files/-MiAeq0LyhomeUeCvgKM)

The Component Replacer scans for the components to be replaced in:

* **all Workspaces** (restrictions below!)
* **Segment Definitions**
* **Calculated Metric Definitions**

If the Replacer finds the component to be replaced, it updates the Workspace/Segment/Calculated Metric.

The Component Replacer supports replacing **all component types, i.e.**:

* Dimensions: e.g. eVars (e.g. eVarX by eVarY), props and Classifications, but also built-in components like "Site Sections" or "Page Name"
* Metrics ("Success Events")
* Segments
* Calculated Metrics
* Date Ranges

The following 2 videos show how the replacer works.

### Video 1: How to auto-replace Components

{% embed url="<https://www.youtube.com/watch?v=uEPeSQga4yU>" %}
Get through the basics of the replacer in this video
{% endembed %}

### Video 2: How to harmonize duplicate components with the replacer

{% embed url="<https://youtu.be/ZAWbdSkntn4>" %}
How to use the "Suggest Duplicates to Harmonize" feature, and how to detect and harmonize duplicate components manually.\
Note that the feature has been improved to prioritize components that are shared with all users (includeType "shared") over plain "matches".
{% endembed %}

## Important Restrictions to understand before starting

The Component Replacer has some important restrictions. In the following, "**old component**" refers to the component to be replaced, and **"new component"** to the component that replaces the old component.

{% hint style="info" %}
Check the **Replacement Log** that you get in the **update\_log** tab after the replacements have completed. It is an Excel sheet with all successful and failed replacements.
{% endhint %}

#### Old and new component **have to be of the same type**

E.g., replacing a segment by a dimension will not work and can even cause your workspace to break. You *can* replace a prop by an eVar or a built-in dimension (e.g. "Page Name") by e.g. eVar78, but make sure you know what you are doing (e.g. do not replace a list prop by an eVar or a Merchandising eVar by a prop).

### To avoid breaking **things**, limit the **replacements to certain Report Suites**

If you use the Replacer for the first time, it asks you to go to the "report\_suites" tab to select the Report Suites where to do the replacements:

![](/files/-MiAfJOBx0U5qWHFYtVR)

#### What does this Report Suite Filter do?

The Report Suite filter is important if you want to replace components that work differently from Report Suite to Report Suite.

For **example**, assume you want to replace

* eVar10 ("Page Category deprecated")
* by eVar20 ("The new Page Category").

But you have multiple Report Suites in your Adobe Analytics account:

* In Report Suite A-C, eVar10 was set up as "Page Category deprecated",
* but in Report Suite D, eVar10 was set up as "Product Type".

You obviously want to replace only those eVar10's that are used in the context of Report Suite A-C (where they mean "Page Category deprecated").

This is where the Report Suite Filter kicks in. It limits the replacements in the following manner:

* **Workspace panels** that are from other Report Suites will not be updated
* **Segments and Calculated Metrics** will only be updated if their **Parent Report Suite** is among the filtered Report Suites. You can see the Parent Report Suite e.g. in the "**all\_comp\_usage**" tab under "**rsid**":

![Find the Parent Report Suite of your segment or calculated metric](/files/-MceHEcq8O0_f_wOki_b)

### How to apply the Report Suite filter

Go to the **report\_suites tab** and get the latest list of your report suites by running **"Other -> Refresh Report Suites"**:

![](/files/-MiAg5K4pLzwekLnPbZM)

Now select all the Report Suites for the Replacer in the **column "replace in panels from these RS"**:

![](/files/-MiAgVUdhJKu_V2nkWMS)

Now go back to the replacer tab, and you see the selected Report Suites listed:

![](/files/-MiAgn-rlL1CT3Wc6TX8)

### Other Restrictions

* **Workspaces that were last saved before ca. 2020** when Workspaces did not support Report Suite selectors in panels yet **cannot be updated via the Component Replacer.** This is because their data model is older (no Report-Suite-specific panels etc.). To include these Workspaces in the replacement process, open and save them once. In the **Replacement log** that you get after the Replacer has run, you can find a note in the "projects\_replace\_fail" column saying *"no RS panels.Open project->save->try again"*.
* **Replacing dimensions in Workspaces will not work when the dimension is used as a** "**dimensional value filter**" (where you drag in a dimensional value into a table or under a column). This is because Adobe Analytics, in this case, does not save the actual value ("e.g. "campaignXY"), but a value ID (e.g. "1234". This value ID is tied to the current dimension and makes no sense in another one (or even returns a completely different value). This only affects Workspaces. The replacement log will show you the workspaces where this was the case in the "projects\_replace\_fail" column saying:

  ```
  {proj_id}:panel {panel_id}:dim val filter for {id_old} cant be auto-replaced.
  ```
* Since the Replacer is built on top of the Component Usage Tab, **replacements only happen in Workspaces that are within the Component Usage Tab filters from the "config" tab**. So if you e.g. have a filter set to update the Component Usage Tab only for Workspaces with a modification date newer than 20210101 ("wsp\_mo&#x64;*\_*&#x64;ate\_from"), only workspaces within that filter will be taken into account
* Likewise, check the "comp\_max" and "wsp\_max" cells in the config tab for the current **maximum of components and Workspaces to scan** with a single run. Contact your Component Manager Admin for a best practice how to work around limits if your Adobe Analytics account is really huge.
* Replacements only work in classical Workspaces, so e.g. not in **Mobile Scorecard** **Projects**.
* **Template Components** (built-in components like "Conversion Rate") cannot be updated (obviously)
* When replacing built-in dimensions, make sure the replacement makes sense. E.g. replacing a special animal like "Hit Depth" in Segments by e.g. "eVar8" will cause the segment to break.

## How to replace: Step by Step

1. If you have not updated the Component Usage tab in a long time, run "Adobe Component Manager" -> "Component Usage" -> "**Update Component Usage tab**" first. The Component Usage tab ("**all\_comp\_usage**") is also the best place to identify components that should be replaced (e.g. duplicates).
2. Identify the components you want to replace.
3. Go to the **"replacer"** tab
4. Under **"Old IDs" and "Old Names"**, paste the IDs and (optionally) names of the components you want to replace by others. The easiest way is to simply copy and paste them from the "**all\_comp\_usage**" tab. Avoid inserting the same ID in multiple rows!
5. Under **"New IDs" and "New Names"**, paste the IDs and (optionally) names of the components that should replace the old ones. Here you can insert the same ID in multiple rows, e.g. to merge 5 duplicate segments into 1.
6. In the main menu, choose "Adobe Component Manager" -> "Component Usage" -> "**Run Replacer".**

![Start the replacer and relax... :)](/files/-MceWYJuhA6veSQ1uEYu)

You can now follow the process in the status field. :)

### The Replacement Log

When done, you will get a link to a **replacement log** file (CSV) where you can see if your replacements worked.

![Check the log file, especially if it says there were issues.](/files/-Mce_973t-2lr7AA4HzA)

![The Replacement Log CSV](/files/-McepAhXXsnznW6gpF5q)

The Replacement Log contains the Projects (Workspaces), Segments and Calculated Metrics where the old Component ID was found. So if a project does not show up there, it means the component simply did not exist in that workspace at the time it was scanned.

For each **Component Type** (Project, Segment, Calc Metric), there is a **"\_success" (replacement worked) and a "\_fail" column.**

In the **Projects columns**, you see comma-separated status messages for each project-panel combination, e.g. **{project id 1:panel id 3 of project 1:message in case of fail}.** The optional message helps you in the "\_fail" column to understand why a replacement may not have worked. In the example above, we see in the first row: *"dim val filter variables/evar130 cant be auto-replaced".* This refers to the restriction with dimensions when used as dimensional value filters mentioned above (see "*Replacing dimensions in Workspaces will not work when the dimension is used as a "dimensional value filter").*

For Calculated Metrics and Segments, you see comma-separated messages in the format **{component id:message in case of fail}** (one message per component in which a replacement took place or should have taken place).


# Account Usage

The "account\_usage" tab gives you transparency over the people you should care about most: your organization's Adobe Analytics users!

* How popular is Adobe Analytics at my organization and how has this developed over time? For example, are logins and workspace views trending up or down?
* Who are my power users?
* Which users are at risk (less active recently compared to earlier)?

For questions like these, there is the account usage tab.

To **update the tab**, simply go to **"Adobe Component Manager -> Other -> Get Account Usage Stats"** and enjoy the insights.

![Shed light on the activity of your organization's Adobe Analytics users](/files/ssQ9mRVlKAmUnBTsz3D2)

Updating the tab for the first time can take a while, usually between 5 and 45 minutes, depending on how much is going on in your Adobe Analytics account.

To see email addresses or login names instead of hashes, uncheck the "**no personal data**" **checkbox in the "config" tab.**

### Copy the stats to your own Google Cloud Storage bucket

If you want the raw account usage data outside of Google Sheets — for example to feed it into your own data warehouse or BI pipeline — the Component Manager can automatically write a CSV copy of the account usage stats to a Google Cloud Storage (GCS) bucket in **your own** Google Cloud project.

To enable this, set the **`gcs_bucket`** key in the **"config" tab** to the name of your target bucket (e.g. `my-company-component-manager`). From then on, every account usage update writes a copy of the stats CSV to that bucket.

The bucket must grant **Storage Object Admin** (`roles/storage.objectAdmin`) permission to the Component Manager service account **`gcf-scripts-runner-v2@dim28-comp-mgr.iam.gserviceaccount.com`** so it can create and overwrite the file.

{% hint style="info" %}
See the [config tab reference](/main-functions/the-config-tab) for all available config keys.
{% endhint %}

### **Frequent Questions**

#### Are views from technical users (e.g. via API) counted?

No. Account Usage Stats and Workspace Stats filter out all operations by technical users (via the "\*@techacct.adobe.com" email address).

#### Does the moment a Scheduled Project is generated count as a Workspace view?

Adobe Analytics does generate a project\_view event (= a Workspace view) for the respective project and the user that created the schedule at the time of dispatch. It can't be distinguished from a regular project\_view. The opinions on this differ: Some people see this as beneficial - this way, getting a Workspace PDF to your mailbox can be seen as a way to "view" a Workspace.


# Workspaces (Projects)

How to use the "workspaces" tab of the Adobe Analytics Component Manager for Google Sheets

## Summary

The "workspaces" tab gives you an overview over all (not only shared) workspaces, also called "projects" of your Adobe Analytics account. You can **filter, sort, and delete** **multiple Workspaces at once.** On the top right, you also see some useful **usage stats**!

![The "workspaces" tab and its main functions](/files/-Mj9iYU2lkqGJiDIKev2)

## Workspace Usage Stats

The usage stats help you understand how active your users are currently, and which workspaces draw the most attention:

![The workspace tab also shows useful usage stats - how's your data democratization doing?](/files/-Mj9b0NajRCBDGoE21cN)

### Set how far back the Workspace Usage Stats should go?

By default, Workspace usage stats go 90 days back. If you want another time range, you can set it in the "config" tab in the "Other Settings" column by adding the following settings there:

* Settings Code: `workspace_views_days_back`
* Settings Value: `a value between 1 (min) and 400 (max)`

![](/files/zZR2fReFbfVBwZHLF4dx)

In the following, we refer to this time range as {n}.

### Total Workspace Usage Stats (top right)

The usage stats on the top right help show you the general activity of your organization's usage of Adobe Analytics:

* **Number of Workspaces:** If you are passing the 1'000's, it's usually time to do a cleanup. See next chapter.
* **Workspaces with >= 1 view in the last {n} days:** You have many Workspaces, but which of them actually get any attention at all?
* **Views last {n} days:** Views in the last {n} days for all your Workspaces. Monitor this to see how engaging your Adobe Analytics experience is.
* **Users with >=1 View last {n} days:** How many users have viewed at least 1 Workspace in the last {n} days? The all-important *"how many active users do we have?"* question
* **Sum Active schedules:** How many regularly scheduled email exports (e.g. PDF, CSV) does your organization have?

### Workspace Stats (in each row)

* **viewsLast{n}Days:** How many views did a Workspace get in the last 90 days?
* **usersLast{n}Days:** How many users viewed this Workspace at least once in the last 90 days?
* **activeScheduledJobs:** How many scheduled emails (e.g. regularly scheduled PDF exports) do exist currently for a Workspace?

## Rename Workspaces

You can rename Workspaces or change their descriptions in bulk. Simply start changing the text in the "name" or "description" columns, and you see the yellow "rename" column to the right showing an "x". The row also gets highlighted in yellow:

<figure><img src="/files/XBjfmcZyZSNbfoEugArr" alt=""><figcaption></figcaption></figure>

If you do not want to rename a workspace after all, just remove the "x" in the "rename" column. The yellow highlight disappears.

To apply the renamings, simply run **"Workspaces -> Rename Workspaces"**. Now wait for the status bar on top to finish.

The following video shows the Renaming feature in more detail:

{% embed url="<https://www.youtube.com/watch?v=8LTl5iQSQ3g>" %}

If you **do not see the "rename" column**, simply recreate the Workspaces tab via "Other -> Recreate this tab" ([more on this](/main-functions/updating-the-layout)).

## Clean up Workspaces

The following is a guide how to use the workspaces tab as the first step of a typical **cleanup**. You will learn all the functions during the way.

### Video with all steps

{% embed url="<https://www.youtube.com/watch?v=5QW2oLapNrk>" %}
Watch the video or follow the text guide below
{% endembed %}

### Step-by-Step Guide in Text Form

#### 1. Update the List

Cick on "Workspaces" -> "**Update Workspace List**" to pull in the up-to-date workspaces list. The **status bar** on the top shows you the progress. Usually this does not take longer than a minute.

![Follow the progress in the status bar](/files/-Mi2xy_hdnkd_8LwyNMt)

#### 2. Understand the columns

The most important columns ones are explained below:

* **owner\_id:** The numeric user ID (unique to the Experience Cloud) of the owner of the Workspace
* **owner readable & owner email:** The owner of the Workspace. If you see "na" here, Personally Identifiable Information (PII) is disabled in your Component Manager. If you are authorized to do so, remove [the "no personal data" flag in the "config" tab](/what-data-is-processed-and-stored-where#personal-data).
* **id:** The unique ID of a Workspace project
* **name:** The title
* **description:** The description (accessible e.g. when you save a Project in Analytics)
* **rsid:** Report Suite ID where the Workspace was **created.** Can be different from the Report Suites that are used in this Workspace's panels.
* **companyTemplate:** Is this Workspace a [Custom Template](https://experienceleague.adobe.com/docs/analytics/analyze/analysis-workspace/build-workspace-project/starter-projects.html?lang=en)?
* **type:** Is it a normal "project" (Workspace) or a "Mobile Scorecard"?
* **accessLevel:** The access level of the technical user for the API access that you created during the [initialization of the Component Manager](/getting-started-with-the-component-manager#2-create-a-jwt-api-2-0-token-and-adobe-analytics-admin-account). Usually irrelevant, but if you see mostly "duplicate" here, it means your technical user does not have the necessary rights (e.g. to edit all workspaces).
* **tags:** Tags your users assigned to this Workspace
* **shares:** With whom is this Workspace shared
* **approved:** Is the Workspace "approved" by Admins?
* **siteTitle:** The "Site Title" of the Report Suite this Workspace was created in
* **modified:** When was the Workspace last modified?
* **created:** When was the Workspace created?
* **viewsLast90Days:** How many views did a Workspace get in the last 90 days?
* **usersLast90Days:** How many users viewed this Workspace at least once in the last 90 days?
* **activeScheduledJobs:** How many scheduled emails (e.g. regularly scheduled PDF exports) do exist currently for a Workspace?
* **link:** A link directly to the Workspace. Note that this link may not work if you have a multi-client Adobe account (switch to the client in the Experience Cloud's navigation bar first, then try again).
* **delete:** In the coloured "delete" column, you can mark Workspaces you want to delete with "x" and then delete them via "Workspaces -> Delete Workspaces".

### 3. Filter for unused Workspaces ("candidates for deletion")

1. Mark the row with the column headers
2. Click the Google Sheets filter icon twice. First, to remove the filters, then to add them again. This ensures all Workspaces (also the new ones you may have just pulled by updating the list) are part of the filtered range. You can verify that all rows are included by going into the "id" column and pressing CTRL + SHIFT + DOWN ARROW.
3. Click on the Filter symbols in the column headers to do the following selections:
   1. activeScheduledJobs = 0
   2. viewsLast90Days = 0
   3. companyTemplate = FALSE
   4. modified => “Date is before” -> “exact date” -> your date in format “2020–07–01”, e.g. select only Workspaces that were not modified in the last 12 months

This is just the most general approach to cleaning up. You can of course filter for anything else that makes sense in your case. An example would be filtering for...

* **unshared workspaces** (shares = "blank") of
* **owner names** that have left the organization (including the default "Unknown User" that Adobe Analytics assigns if a user is deleted and his Workspace is not reassigned)

### 4. Copy the filtered list to another Google Sheet and give your users some time to object to the deletion

1. Select the filtered Workspaces list by clicking anywhere into the filtered range and then pressing CTRL + A (Select All)
2. Copy it into the Clipboard by pressing CTRL + C
3. Create a new empty GoogleSheet and call it "Workspace Deletion Candidates"
4. Paste the list from the Clipboard into this new sheet. This way only the filtered Workspaces (=only the deletion candidates) will be pasted.
5. Add a column for your users where they can mark the workspaces they still need.
6. Add some text above that tells owners until when they can object to the deletion.
7. Send an email to the owners of the workspaces (you can get a list of all unique email addresses by running the [UNIQUE function ](https://support.google.com/docs/answer/3093198?hl=en)on the owner email” column, in a free column to the right. Then simply copy-paste them into your email recipient field).\
   \
   In the email to the owners, send the link to the sheet, explain the benefits (cleaner, faster Analytics with less interpretation errors, misunderstandings and frustration) and explain that they need to mark all Workspaces they still need with “x”.

![Give your owners a bit of time to object to the deletion](https://miro.medium.com/max/2000/1*8Jj-9P02fSUH15Qyge7MBA.png)

### 5. Proceed with the Deletion

Now that your users have marked the Workspaces they still need with "x", we can copy the *other* Workspaces back to the "workspaces" tab (or use a smart lookup formula to get the same result). If your Google Sheets skills are a bit rusty, this is the easiest way to to do it:

1. Filter the sheet for the owners by blanks in the "I still need it" column
2. Put an "x" into the "delete" column for all those Workspaces (because those are the ones you can delete)
3. Go to the "workspaces" tab of the Component Manager, remove the filter and delete all the content below the column headers between column "id" and the "delete" column so that you end up with an empty list:

![](/files/-Mi3S7l1xHHY_dXmv7vc)

4\. Copy-paste the filtered list from the sheet for the owners from the "id" column to the "delete" column. Now, the "workspaces" tab should contain only the workspaces to delete with an "x" in the "delete" column:

![Ready for deletion!](/files/-Mi3TCO4TwpA9it-SB09)

5\. Now go to the menu and run "Workspaces" -> "Delete Workspaces".

6\. After completion you will see a success message in the Status bar. Also check out the **deletion log in the update\_log tab** to verify that the deletions were successful.


# Alerts

How to get, delete, disable or renew Alerts in bulk.

## Summary

All your org's Adobe Analytics Alerts, all in one place together with the rest of your AA components - no problem with the Component Manager. And you delete, disable, or renew Alerts right from the Google Sheet - in bulk.

## Get/Refresh Alerts

To get or refresh Alerts in your Component Manager Sheet, simply run:

**Extensions -> AA Component Manager -> Alerts -> Refresh Alerts:**

<figure><img src="/files/co4XvHcJjXCehTzSFSxx" alt=""><figcaption></figcaption></figure>

If you have never done this before, an "alerts" tab is created first. After that, the Component Manager gets all the Alerts including their definitions (JSON), owners, granularity etc. into that new tab:

<div data-full-width="true"><figure><img src="/files/ocF1iLjhb4vgot17l4CE" alt=""><figcaption></figcaption></figure></div>

## Delete, Disable, or Renew Alerts in Bulk

To delete, disable, or renew one or more Alerts, simply put an "**x**" into the colored columns to the right for those Alerts you want to update.

* **Delete:** The Alert is deleted and cannot be accessed anymore
* **Disable**: The Alert is paused and won't trigger (send e-mails) anymore. It can be enabled at any time.
* **Renew**: The Alert's expiration time is extended by one year. If the Alert was disabled, it will be enabled again. So if you want to ***enable*** some Alerts, just "renew" them.

<div data-full-width="true"><figure><img src="/files/YA7qL9yNbHmBqRQ71nQy" alt=""><figcaption><p>In this example, we would disable 2 Alerts, delete 2 others, and renew one Alert.</p></figcaption></figure></div>

Then, run **Alerts -> Delete/disable/renew Alerts:**

<figure><img src="/files/GOJm8ji4wzaZbYOMgBTD" alt=""><figcaption></figcaption></figure>

Once the updates are done, you get a link to an Excel file with the results of the operations. If any of the operations failed, you will be notified in the status bar, so you don't need to download the logs every time to check whether everything went well:

<figure><img src="/files/msNhbUv8k2A6stHo1Vu6" alt=""><figcaption></figcaption></figure>


# Project Schedules

Get your workpace project schedules, filter by owner, or see which schedules have expired and when.

With daily scheduled projects now (since January 2023) expiring after a month already, it is easy to miss expired project schedules.

However, in Adobe Analytics, only Admins can see their expired project schedules, i.e. projects delivered via CSV or PDF to users via email on a regular basis. **Non-Admin users can only see their&#x20;*****running*****, but not their&#x20;*****expired*****&#x20;schedules!**

With the Component Manager, you (and whoever you share the Google Sheet with) can see all schedules, filter by owner, expired status, and more.

Simply run "Workspaces" -> "**Refresh Project Schedules**":

<figure><img src="/files/UCiTQQqzZt6qlHGusxZI" alt=""><figcaption></figcaption></figure>

You can now add a filter to the tab and e.g. filter by the "expired" column. See a full list of the available columns here:

<figure><img src="/files/AKHBxX5JLfHym7tPgodk" alt=""><figcaption></figcaption></figure>

* **id:** Schedule ID
* **owner\_id, owner\_name, owner\_login:** owner (creator) of the schedule
* **projectId:** scheduled workspace project
* **scheduledItemName:** Name of the scheduled item (=name of the Workspace)
* **description:** info text in the scheduled e-mail
* **rsid:** Main Report Suite ID associated with the scheduled project
* **tags:** Tags given to the schedule
* **tasks:** A JSON object containing further details, like the recipients of the schedule
* **modified:** last time the schedule was modified
* **rsLocalStartTime:** date in your Report Suite's timezone when the schedule started
* **rsLocalExpirationTime:** date in your Report Suite's timezone when the schedule will expire or has expired
* **triggerObject:** details on the sending frequency (e.g. daily at 4 PM)
* **expired:** TRUE if schedule has expired, otherwise FALSE


# Compare Report Suites

How to use the "Compare Report Suites" tab to find inconsistencies across Report Suites

## Summary

The “compare\_rs” tab gives you a comparison of all Report Suites’ **eVars, props, Success Events including all List variables and Classifications’** names and descriptions.

### Short Video guide

{% embed url="<https://www.youtube.com/watch?v=6p7ZTR12hgk>" %}

### Full Guide

1. Select the Report Suites to compare in the report\_suites tab:

![](/files/Cyjtj0turoULoAxRzXsx)

2\. Run the Comparison via Report Suites -> Compare Report Suites:<br>

![](/files/PepkrCKUekcuuncj1pAE)

3\. You are now taken to the "compare\_rs" tab and the comparison starts. After it is done, you see a screen like the one below.

The column “**Differences**” highlights the components that are not identically set up in all Suites. Then you can simply scan through the columns to the right to see where the differences are (to protect the client, I am showing “Rep Suite 1–14” instead of the real Report Suite IDs you normally see there).

![Clean, consistent variable setup](/files/2LS5XG230z5v9CdUfkbS)

![Variable setup with inconsistencies](/files/ZNAClkS8IJvUVJyvboAT)

#### Transparency and Version Control for your Report Suites

Simply run this function **regularly**, e.g. once a week (you can ask your Datacroft contact to set up such a regular run), and you always have the latest state as well as the history. Because in the Google Sheets version history, you can always go back.

Version History of Google Sheets is not exactly Git, but pretty useful anyway

![Version Control in Google Sheets helps finding out past statuses](https://miro.medium.com/max/582/1*UImnQ-Uwm2_Kjve6D9Bo2Q.png)

This makes it a lot easier to find out when something was deleted or edited accidentally and what that eVar was like before that guy accidentally changed it. And of course, it makes finding inconsistencies in your setup and reconciling those a lot easier.

### Found differences? Now reconcile them across multiple Report Suites

You can do extremely convenient bulk-editing for eVars, props and Success Events across multiple Report Suites with the [**Report Suite Editor**](/main-functions/report-suite-editor-evars-props-success-events).

See [more tips on standardizing your Report Suite setup](https://lukas-oldenburg.medium.com/9e57bb54ec88).


# Report Suite Editor (eVars, props, Success Events)

The "Report Suite Editor" offers editing eVars, props and Success Events in bulk.

{% hint style="danger" %}
**Temporarily unavailable starting late September 2026**

Viewing and editing Report Suite variables is only possible via Adobe's **Analytics 1.4 API**, which Adobe will **shut down in late August, 2026**. Adobe's 2.0 API currently offers **no replacement** for reading or writing the eVar, prop and Success Event settings of a Report Suite.

All functions of the **rs\_editor** tab — "Refresh Vars", "Refresh Vars w. Stats" and "Send Var updates" — therefore stop with this status message:

> Due to Adobe discontinuing the API 1.4, Edit and Update Report Suite Vars functions are not available anymore. Adobe has promised to offer these functions again in the future.

As soon as a 2.0 equivalent is available, we will strive to offer the same functions again. The rest of the Component Manager (deleting/editing Calc Metrics, Segments, Date Ranges, Workspaces etc.) is **not** affected.
{% endhint %}

{% hint style="info" %}
**Note:** To edit or delete segments, calculated metrics, date ranges, curated components and curated names for Virtual Report Suites, see the [**Component Editor**](/main-functions/the-component-editor-tab)**.**
{% endhint %}

Want to deactivate 500 Success Events in 10 Report Suites at once?

Want to finally get those names, descriptions and settings of your eVars and props streamlined across Report Suites after you found inconsistencies via the "[Compare Report Suites](/main-functions/compare-report-suites)" feature?

Want to see those variables that track no data so you can disable them?

The "Report Suite Editor" (**rs\_editor** tab) can do all this for you, super-efficiently.

Check out the video guide:

{% embed url="<https://youtu.be/nAeA39Mirpg>" %}
Edit, disable or enable eVars, props & Succes Events across one or more Report Suites
{% endembed %}

## Find Variables without data (new, not shown in video)

To identify those variables that have no data, you can now run **"Refresh Vars w. Stats"** (supported for eVars and Success Events):

<figure><img src="/files/lG5z2U59AvHfImrsJOyo" alt=""><figcaption></figcaption></figure>

This will add the **"Instances last 3 days"** column to the tab. It shows the number of Instances for that variable in the last 3 full days, i.e. the Hits in which the eVar or the Success Event was explicitly set. 0 Instances means you eVar or Event is never set.

This helps detect implementation issues or find old stuff that you probably don't need anymore. Go ahead and set "enabled" to FALSE right away, then run "RS Editor: Send Var updates". Done! :smile:

<figure><img src="/files/ZR70a7CUeXMsO1BBM3gS" alt=""><figcaption></figcaption></figure>


# Report Getter

Exports reports from Adobe Analytics to Google Sheets and allows scheduling them regularly.

{% hint style="info" %}
Please [install the AA Component Manager Google Sheets Add-on](/getting-started-with-the-component-manager) before continuing.
{% endhint %}

## Video Guide

The following video guide shows the main functionalities. Note that the menu has now moved to **Extensions -> AA Component Manager** (the video shows an older version).

{% embed url="<https://www.youtube.com/watch?v=wHGPFsc3uOA>" %}

## Step-by-Step Guide

First, Select **Reports -> Create New Report** (You can create as many reports as you like)

<figure><img src="/files/n9aMGzuw76MmR1mE4ddQ" alt=""><figcaption></figcaption></figure>

Now, enter a name for the new report tab.

{% hint style="info" %}
You can change the tab name later, but if you have a report schedule tied to this tab, the schedule will fail if it cannot find a tab with this name anymore. If you want to change the name, first deactivate the running schedule, then change the name of the tab, then reactivate the schedule.
{% endhint %}

A new tab is created. Now go to the Analysis Workspace. Enable the debugger via **Help -> Enable debugger:**

<figure><img src="/files/6HVz0VoYOZgWXv8IvBlK" alt=""><figcaption></figcaption></figure>

Now go to the freeform table report that you want to export to GoogleSheets and click on the Debug icon on the top right of the table, then on "Freeform Table":

<figure><img src="/files/q7ICq8EXVNkspitsF0M0" alt=""><figcaption></figcaption></figure>

If you see multiple timestamps, click on the last one:

<figure><img src="/files/f77SbaD9GecRAhJs87JB" alt=""><figcaption></figcaption></figure>

Copy the **JSON Request** to your clipboard:

<figure><img src="/files/ONiKoV3m2VCdzWRXWM29" alt=""><figcaption></figcaption></figure>

Go to your Google Sheet Report tab and paste the JSON into the "**Query Payload**" field:

<figure><img src="/files/eGI6ukr0BrJlVaweral0" alt=""><figcaption></figcaption></figure>

Choose **daily or no granularity.** Daily granularity will get you the data for each day in the date range as a 2-dimensional report (first dimension: day, second dimension: the dimension from your AA report).

<figure><img src="/files/N8XpCdejdzYFHXA3Vd8E" alt=""><figcaption></figcaption></figure>

Select a **start and end date**. Double-click into the field to get a date picker overlay. You can also type in the date manually (date format "2022-11-22") or **use formulas,** e.g. `=TODAY()-1` (=>yesterday) to refer to rolling date ranges. This is especially useful for scheduled reports.

<figure><img src="/files/iLRmgntoQHDLxMKCnXKH" alt=""><figcaption></figcaption></figure>

**Results:** Type in the number of desired results (=rows)**.** The maximum is 50'000 (limited by the Adobe Reporting API). See more under [Limitations](#limitations). To make your report fast and avoid stretching the infrastructure unnecessarily (also think of the greenhouse gas emissions that this creates), use a sensible limit, e.g. don't use 50'000 rows if the first 5'000 rows give you enough information.

<figure><img src="/files/FfCRZalcqj1xoY4hc1Xt" alt=""><figcaption></figcaption></figure>

**Headers:** Choose technical Component **IDs** (don't change, but hard to read or even cryptic (Calculated Metrics) or Component **Names** (human-readable like in the interface, but can change).

<figure><img src="/files/aH1xbe2VrfGCEV2YuG3R" alt=""><figcaption></figcaption></figure>

**Export Destination (New!):** Choose **"Sheet"** or **"CSV":**

<figure><img src="/files/MApeyl7da22TpDt55UUg" alt=""><figcaption></figcaption></figure>

* **Sheet:** The report data is written to the same tab below
* **CSV** (Premium only): After each run, an CSV download link is provided to the right. Since Google Sheets can handle only a limited number of cells and large sheets get very slow, exporting daily-granular data with tens of thousands of rows each day can make your sheet unusable. With the CSV option, you don't need to worry about these limits:

<figure><img src="/files/Z6XwU6qVX0HOCOymCInX" alt=""><figcaption><p>When choosing "CSV" as the export format, a "Last Export Location" link will be written to the sheet once the report completes.</p></figcaption></figure>

**Run the Report:** Select **AA Component Manager -> Reports -> Run Report**.

<figure><img src="/files/ThwfwDt5skGYE1yUcnJD" alt=""><figcaption></figcaption></figure>

Follow the status updates on the top of the sheet. It tells you when the report has finished.

<figure><img src="/files/EytzmE5cwi8J4fS3mP5Q" alt=""><figcaption></figcaption></figure>

That's it: Enjoy digesting your report data!

<figure><img src="/files/3TD5jDIR4pIqC9zvkmcs" alt=""><figcaption></figcaption></figure>

### Schedule a regular Adobe Analytics-to-Google-Sheets report

To activate a regular schedule for a report, go to the tab on which the report is that you want to schedule.

Next to "**Schedule**", choose your schedule, e.g. "**daily at 13:00**". Times are in UTC.

<figure><img src="/files/5RazfTIJN4A0cryNagJA" alt=""><figcaption></figcaption></figure>

Now select **AA Component Manager -> Report -> Activate Schedule.**

<figure><img src="/files/urHp7MpMUm0f7Bt4iJpo" alt=""><figcaption></figcaption></figure>

After some seconds, you see the scheduled report confirmation in these 2 places.

<figure><img src="/files/Foutd0fzMEbvQ2RVAssl" alt=""><figcaption></figcaption></figure>

Your report will get scheduled every day now (around 4 AM UTC).

{% hint style="info" %}
Note that the scheduled report is generated based on the settings of the report tab **at the moment of delivery**!

Assume that you e.g. have a daily scheduled report with daily granularity and your settings report tab today says "1000 results". You receive the report on 2 consecutive days. Both these 2 days will export a maximum of 1000 rows.

Now you change the setting to 5000 results. The next run will get 5000 results, but only for that incremental day. The already imported days are left untouched.

If you want to re-run the report for all of the days, simply delete the existing report data, and then run a manual granular report with 5000 results once.
{% endhint %}

### Deactivate a schedule

To **deactivate a schedule,** simply choose **AA Component Manager -> Reports -> Deactivate schedule.** You will get a confirmation in the status bar, and "Active Schedule" now says "none" again:

<figure><img src="/files/xLPzuJJ5Vjh1bEdn2w3N" alt=""><figcaption></figcaption></figure>

## Limitations

#### **Row Limit**

The Adobe Analytics Reporting API allows for a maximum of 50'000 rows to be exported. When using date-granular reports, the row limit is 50'000 **per day**. So a report for 10 days with a limit of 50'000 rows will require a maximum of 500'000 rows in total.

#### **One-dimensional reports only**

Similar to Analysis Workspace's "export to CSV" feature, you cannot export multi-dimensional reports, since the Adobe Analytics Reporting API is incapable of doing this for larger amounts of data.\
\
The **exception are date-granular reports** which are 2-dimensional where the first column is the date and the second column the actual dimension.

#### **8:30 minutes maximum per report query**

A report will fail it takes longer than 8:30 minutes to generate. For date-granular reports, this limit applies only to each individual day, not the time for all days together. So if you have a daily-granularity report across 30 days and each individual day takes less than 8:30 minutes, that is fine.

#### **24 metrics (columns) maximum**

To not sacrifice on performance, the Report Getter can process a maximum of 24 metrics (columns). If you use segments or date ranges to **split a metric into multiple columns**, those count as their own columns and will display the metric name only.\
\
Example: A table like this ...

<figure><img src="/files/hKcfSwaVRiDKY1sfyppA" alt=""><figcaption></figcaption></figure>

... will end up in the Google Sheet like this:

<figure><img src="/files/g7Ex5Orh0DFfCt7dWLkd" alt=""><figcaption></figcaption></figure>

So instead of splitting columns, create individual calculated metrics that contain the segment you use for splitting. Ideally, all your your columns are just one green component (= 1 (calculated) metric).


# Variable Health Report

One Adobe Analytics account, so many eVars, props, & Success Events to keep an eye on. The Health Report looks at all of them regularly and summarizes the biggest changes - even in a Slack channel!

The Health Report is a must-have for Admins trying to stay on top of Data Quality issues. Implementations change, bugs happen, and many trends in the data are hard to spot without looking at a lot of reports regularly. While you can and should set up customized Alerts with smart Calculated Metrics in them, you can rarely cover everything.

The closest to everything is the "Variable Health Report". It checks all your Metrics (Success Events and Instances of eVars) and Dimensions (eVars, props, Classifications), calculates the trends, and finally summarizes the biggest observations.

<div data-full-width="true"><figure><img src="/files/p2zfxQm08YiaHZInaivt" alt=""><figcaption></figcaption></figure></div>

You can **filter the Variable Health report by segments** of your choice. You can **schedule** it to run daily or weekly.

You can create **as many Variable Health reports as you like,** e.g., one for dimensions in Report Suite 1 with Segments S and T applied, and another one for metrics,plus another one for data from another Report Suite.

In addition to the summary being shown in the Google Sheet, it can also be sent to a **Slack Channel** of your choice.

<figure><img src="/files/Vinhq9ardALpIdtVyLfY" alt="" width="507"><figcaption></figcaption></figure>

## Step-by-Step Guide

The following video explains the most important parts of the Variable Health Report:

{% embed url="<https://www.youtube.com/watch?v=aaFv1pXOrGo>" %}

For more details, see the following chapters:

{% hint style="info" %}
Please [install the AA Component Manager Google Sheets Add-on](/getting-started-with-the-component-manager) if you haven't yet.
{% endhint %}

### Create a Variable Health Report

From the menu, select Variable Health Report -> Create new Health Report.

<figure><img src="/files/F1VB4ZihJXmMQZk1Q7TS" alt="" width="563"><figcaption></figcaption></figure>

In the popup, give the health report a name, e.g. "metrics\_reportsuiteX". The tab name will be "**health\_**&#x6D;etrics\_reportsuiteX" (with a "health\_" prefix).

{% hint style="info" %}
You can change the name of the tab as long as you don't have a schedule running for the it. Removing the "health\_" prefix will break the health report however.
{% endhint %}

The Health Report has the following main areas:

<div data-full-width="true"><figure><img src="/files/MoZdPf2kARtnwTr6iVNN" alt=""><figcaption></figcaption></figure></div>

We will start with the **Report Configuration:**

<div align="center"><figure><img src="/files/fqhRyzDsq7Xug1hEd7uY" alt=""><figcaption></figcaption></figure></div>

* **Report Suite:** Select the (Virtual or regular) Report Suite from where to pull the data. If the drop-down menu shows nothing to select from, run "Report Suites" -> "Refresh Report Suites" once
* **Variable Type:** Dimensions or Metrics. The "Dimensions" report checks all dimensions for trends, the "Metrics" report does the same for all Metrics. More details below.
* **Period Length:** which time frame (in days) should be looked at? "7" means: Compare the last 7 full days to 8-14 days ago. Enter any value between 1 and 28.
* **Filter by Segment ID(s):** Enter the segment IDs separated by comma that you would like the report to filter the data for. Multiple segments will be stacked (combined with an AND condition), just like in AA. You can find Segment IDs e.g. in the ["full\_comp\_import" tab](/main-functions/the-full_comp_import-tab) (refresh it via "Component Editor -> Reload Components").
* **Vars to exclude entirely:** Some variables like User IDs are rarely useful. Others are not useful because you already have the same info in another variable. To speed up the report and avoid useless entries in your report summary, enter any number of variables to exclude from the analysis, separated by comma. You can find the IDs e.g. in the ["full\_comp\_import" tab](/main-functions/the-full_comp_import-tab). You can enter the IDs like this:
  * full ID: `variables/evar2, variables/prop37.classificationx, metrics/event89, metrics/evar82instances`
  * ID without prefix: `evar2, prop37.classificationx, event89, evar82instances`
* **Vars to exclude from summary:** Some variables may be of interest in the report details, but you may not want them in the report summary text. Enter them exactly like explained under "Vars to exclude entirely".

### **Run and interpret the Health Report**

Click "Variable Health -> Run Health Report" and confirm the ensuing popup. Now follow the status bar for the progress. In the end, you will see a **summary** in the summary area as well as a **detailed trend report for each metric/dimension** below.

The following chapter describes in detail how the reports work:

#### Metrics

If you choose Variable Type "Metrics", the Component Manager will get the Occurrences for all Success Events and eVar Instances for the time periods chosen and compare the values with a "change pct" metric in the column to the right. Thanks to the colored highlights, you quickly see the biggest changes in dark red.

<figure><img src="/files/d0BvDfaCEhkPCslWXvI8" alt=""><figcaption></figcaption></figure>

#### **Dimensions**

In the "Dimensions" variant of the Health Report, the Component Manager will get the top 25 top 25 values of both the current and previous period **per dimension** and compare them. The darker the red, the bigger the change. You can of change the conditional formatting via the regular Google Sheets function if you prefer another color scheme.

<figure><img src="/files/nVHAatsRfXWYQ4sKLVPY" alt=""><figcaption></figcaption></figure>

### **Report Summary**

While scanning through all these rows is still a big time saver, the Component Manager summarize the most important trends for you in the "Report Summary" area as the **"Top 10 Risers**" and **"Top 10 Fallers"**:

{% hint style="info" %}
You can also send the report summary to a **Slack channel.** See below.
{% endhint %}

<figure><img src="/files/Fq572FCM3kd7DzVxkqY4" alt=""><figcaption></figcaption></figure>

To show as many useful results as possible, the Report Summary contains the values (metrics or dimensional values) with the biggest changes, sorted by change percentage) with the following restrictions:

* minimum 100 Occurrences in the previous period (e.g. for a 7-day report, the value must have had at least 100 Occurrences 8-14 days ago)
* the change must be at least by 10%

These thresholds can be configured for your account by Datacroft support. Just contact us.

#### Send the Health Report Summary to a Slack Channel

While you can wait and consume the Variable Health Report summary in the Google Sheet itself, it is more convenient to [have it sent to a Slack channel](/main-functions/slack-channel-integration) when it is ready, especially when you run the health report automatically from a schedule.

The Slack version of the summary is also more readable.

Example **"Dimensions" Variable Health Report:**

<figure><img src="/files/Vinhq9ardALpIdtVyLfY" alt=""><figcaption></figcaption></figure>

Example "**Metrics" Variable Health Report**:

<figure><img src="/files/SFYXcd6HvAgCaaXmjhLV" alt=""><figcaption></figcaption></figure>

**Setting up a Slack integration is super-easy**. 😊 Just follow [these instructions](/main-functions/slack-channel-integration).

### Scheduling Health Reports

The best way to use the Health Reports is by scheduling them regularly and then consuming them in Slack.

Simply select the schedule frequency and time of your choice:

<div data-full-width="true"><figure><img src="/files/2Dck9aFt1MFCR4JP95XX" alt=""><figcaption></figcaption></figure></div>

To **activate a schedule**, run "Variable Health Report" -> "Activate Schedule". You will then see the schedule confirmed in the Status Bar as well as next to "**Active Schedule**" on the right.

To **deactivate a schedule**, run "Variable Health Report" -> Deactivate Schedule". Again, you will see the status bar confirmation. Next to "Active Schedule", you will now see "none".

### Further Notes

#### Don't schedule too many reports at the same time

The AA Component Manager uses one and the same API user for all its queries. Adobe has a limit of API requests per minute. When that limit is reached, the Component Manager takes a forced break until it tries again.

Thus, if you schedule multiple reports at the same time, it is more likely that your reports take longer than they should have because they will overload the API. This can even lead to your reports going over the 9-minute timeout. See the next chapter on this:

#### Dealing with Report Timeouts

The Health Report can run for a maximum of 9 minutes.

The Metrics report should not take more than a minute or two.

The Dimensions report can take longer, depending on the amount of data in your AA account and the number of dimensions chosen. The status bar should tell you that it was not possible to fetch data for all dimensions in a message like this:

```
Could only get 83 of 130 dimensions. You can try with a shorter time range or by 
reducing the number of dimensions to be checked via 'Vars to exclude entirely'.
```

In this case, try running the report again (some data gets cached by Adobe and thus faster to retrieve the second time). If it still fails to complete, try without Classifications and/or reduce the number of dimensions via the "Vars to exclude entirely" configuration field. Of course, you can also try with a shorter time range.

Additionally, you can ask for an individual longer run by contacting Datacroft support.


# Segment Pruner

The Segment Pruner takes a segment and reduces it to a smaller definition, thereby making it faster and easier to maintain.

## Summary

Large segments (e.g. for Bot Filters in Virtual Report Suites) with many conditions can massively slow down your Adobe Analytics reporting performance. The Segment Pruner shows you the smallest possible alternative to a segment without any dreadful manual work.

The Segment Pruner works as follows:

1. It creates alternative smaller temporary versions of a segment by an algorithm that recursively prunes the segment, i.e. it removes one element combination at a time, but only combinations of elements which are themselves "**non-data-changing"**. "Non-data-changing" means the pruned version returns the same data as the original segment.
2. The Pruner checks which of these pruned versions of the segment are **not** data-changing. The **smallest possible, non-data-changing alternative version "wins".**
3. The Pruner then creates an alternative segment in your Adobe Analytics account which you can verify by yourself. **Don't worry, it does not change the original segment!**
4. The pruning algorithm works in an efficient manner from largest combination of pruned elements to smallest. The process is stopped when the mathematically smallest possible segment has been reached.
5. For multi-value elements like **"contains any of"**, **"equals any of"** or their negative variants, the Pruner also reduces the list of values to the minimum non-data-changing possible.

## Video Guide

{% embed url="<https://youtu.be/V5Cr_BcfmDI>" %}

## Step-by-Step Guide

1. If you have not installed the Component Manager yet, [do that](/getting-started-with-the-component-manager) first. After that, populate the "Report Suites" (Extensions -> AA Component Manager -> Report Suites -> Refresh Report Suites) tab and, ideally, the "[All Components](/main-functions/the-full_comp_import-tab)" tab (Component Editor -> Reload Components).
2. Run "Extensions -> AA Component Manager -> Component Editor -> Prune Segment". The first time, this will insert the template tab for the Segment Pruner.
3. Configure the Segment Pruner:<br>

   <figure><img src="/files/yLIUl31hf9JNYdpECBca" alt=""><figcaption></figcaption></figure>

   1. **Report Suite ID:** Select a Report Suite (for this, Report Suites -> Refresh Report Suites needs to have run at least once)
   2. **Days back:** The Segment Pruner works by comparing alternative shorter versions of the segment to the data that the original segment returned. Enter how many days back the data of alternative segment versions should be compared to the original. Premium clients can select up to 750 days. In the free version, it is up to 30 days. Only full past day are evaluated, today's data will not be evaluated as it may increase during the pruning process.
   3. **Segment ID:** Enter the ID of the segment which should be pruned. You can easily find the ID e.g. in the "full\_comp\_import" tab.
   4. **Metric IDs:** By default, the Segment Pruner checks against Occurrences and Orders. If you prefer other metrics, enter their IDs separated by commas. **Only 2 metrics** are supported.
   5. **Tolerance rows:** By how much can the alternative version of the segment be off compared to the original segment and still considered a valid alternative? Recommendations:
      * We recommend a softer threshold like 0.001% for the first, not-so-important metric (e.g. Occurrences) and a hard threshold (0%) for the second, important metric (e.g. Orders).
      * This guarantees that you are not leaving complex conditions in there even though they have nearly no impact on the data.
      * If the segment is large, the Pruner will run a lot of queries and take a while to complete, and if you have data source imports for historic data during that time, the data might change slightly during the run. In that case, all new definitions will be "not identical" if there is no tolerance threshold.
4. Run the Pruner (Component Editor -> Prune Segment) and wait for the result in the status field. Depending on how big your segment is and how many days back you want to go, it can several minutes to complete.<br>

   <figure><img src="/files/mR1tYvi8iiBOgVKxp4H7" alt=""><figcaption><p>Summary: Pruning successful! <span data-gb-custom-inline data-tag="emoji" data-code="1f44d">👍</span></p></figcaption></figure>

   1. The final summary gives you two possible outcomes:
      1. No pruning possible: The segment is already in an ideal state and can't be made smaller.
      2. Pruning was possible (see screenshot). The Pruner created an **alternative, pruned** version of the segment. You can check this version in AA and compare it to the original in a Workspace. Note that the **owner** of the segment is the same as the owner of the original segment, so if you don't see the segment right away in AA, go to Components -> Segments and then select "Other Filters -> Show All" on the bottom left.<br>

         <figure><img src="/files/0NsanIbtOmvMzE22D8lU" alt=""><figcaption><p>Example of what was removed from the segment without changing the data that the segment returns.</p></figcaption></figure>
   2. If you are happy with the result, edit your original segment, drag in the pruned segment and then delete all existing elements:<br>

      <figure><img src="/files/TbxjvK0hxafhV3FazNKY" alt=""><figcaption></figcaption></figure>

## Limitations

### Execution Time

If the execution takes longer than 9 minutes, it will be aborted.

**Do not restart the Segment Pruner unless you see a message that it completed or that there was an error, or if you don't see anything in the status field for more than 9 minutes.**

If you have very large segments that cannot be pruned within 9 minutes, try the following:

* split the segment into smaller segments and prune those separately first. For example, if you have a large multi-value "contains-any-of" element in your segment, create a segment with just that element and prune that one first, then re-insert the pruned version into the original segment and try again.
* try with a shorter "days back" condition
* if you are a premium client, you can also contact your Datacroft contact to have them run an exceptionally long pruning process manually.

### Supported Segment Types

Supported are all containers, but the most testing was done for "AND" and "OR" containers. Sequential containers should work, too, but are not officially supported.

### How "perfect" is the Segment Pruner?

While the pruner is trying hard, there may occasionally be cases where an even smaller definition would have been possible. If you encounter such a case, please report it to <component-manager@datacroft.de> so we can improve the algorithm further.


# Updating the Layout

Want to get the newest Layout? Messed up your sheet? No problem!

## What is the Layout Version?

The Component Manager is continuously updated. Sometimes, layout changes are inevitable. Not updating your layout would mean that e.g. the data from Adobe that is written into the sheet will not be written into the correct columns and rows.

The following shows you how you can update your Google Sheet's layout to the newest version with the **"Recreate Sheet/Tab"** function. This also helps if you have accidentally messed up the layout, e.g. by inserting columns that should not be there.

## Manual Layout Update

You can always **get the newest layout version** by going to

* "**Other -> Recreate Sheet"** (for the whole Google Sheet)
* "**Other -> Recreate this Tab**" (for the current tab)

![](/files/-MjVFPjc-iGejyLo2XXj)

{% hint style="info" %}
If you choose "**Recreate Sheet**", any contents (**columns, comments etc.**) you may have added in the ***standard** tabs* **will be&#x20;*****deleted!*** Tabs that you have added yourself will not be deleted!

However, you will be asked if you want to **create a copy of the current sheet** (will be in your Google Drive Root folder):
{% endhint %}

![](/files/-MjVOX_Y3fgQT3wv-OBu)

**After starting the sheet recreation, do not do anything in the sheet until you see the success message:**

![](/files/-MjVNUgB1G-BktdGrBcU)

You will now have a fully new, fresh, but empty sheet. Run the individual functions (e.g. "Workspaces -> Update Workspace List") to repopulate the sheet with data again.


# Configuring Virtual Report Suites

How to make the magic happen around Virtual Report Suites Curated Components in the Adobe Analytics Component Manager for Google Sheets.

You can set up the VRS's your Component Manager should support in the "**config**" tab in cells A4:B4 and below (column C "Import Sheet Prefix" is no longer needed).

Simply **add a row per VRS ID and a "readable name"** (will be used in column headers in other sheets).

***Important:** All VRS's need to have* [***Component Curation***](https://experienceleague.adobe.com/docs/analytics/components/virtual-report-suites/vrs-components.html?lang=en) ***enabled** and contain **at least one Curated Component!***

![Add the VRS's your Component Manager should support here](/files/-MiGH0GbgBe4hJVnFvUN)

{% hint style="info" %}
You can find a **list of all Report Suite IDs including Virtual Report Suites** in the "report\_suites" tab. Refresh the list via "Other -> Refresh Report Suites".
{% endhint %}

After updating the config tab, **run "Component Editor -> Reload Components from AA"** and "**Component Usage -> Update Component Usage Tab".**

You will then see Virtual Report Suites-related functionality in the following places:

* [**Component Editor**](/main-functions/the-component-editor-tab)**:** there will be a column for each VRS, and you can now add/remove components to/from one or more VRS's "Curated Components" and define "Curated Names" in bulk
* [**Component Usage**](/main-functions/the-component-usage-tab) (`all_comp_usage`) / **Full Components** (`full_comp_import`) tabs: additional columns to the right show if a component is among the Curated Components of a VRS and what its "Curated Name" is there.

![The VRS Columns in the Component Editor](/files/-MiGIYDvv-OMEwjYyu7U)

![VRS in columns in the "full\_comp\_import" and "all\_comp\_usage" (Component Usage) tabs.](/files/-MiGM-TYDAPkiMptq8IB)


# Slack Channel Integration

Shows how to configure the Slack integration with the Datacroft Component Manager.

To configure your Slack Channel to receive Component Manager messages, e.g. for the [Health Report Summary](/main-functions/variable-health-report#report-summary), follow these steps.

{% hint style="warning" %}
Slack changes their layout occasionally, so the screenshots may not be up-to-date here.
{% endhint %}

You need the necessary rights to do these steps. If you cannot see the options shown, talk to your Slack Administrator.

You can use an existing channel or create a new one. You can call it anything you like, e.g. "analytics-alerts".

<figure><img src="/files/F7Ks9FV33gL0cmWkHVS7" alt=""><figcaption></figcaption></figure>

Now, click on the caret next to the channel name to get to the channel settings. Then "Integrations", then "Add an App".

<figure><img src="/files/owz4Rc0YQCezMqYIyEck" alt=""><figcaption></figcaption></figure>

Now search for "**incoming-webhook**" and click "Install". You should be taken to the configuration page. Otherwise, click "Configuration".

On the Configuration page, select your channel (e.g. "analytics-alerts") and click "Add Incoming WebHooks integration":

<figure><img src="/files/WyGEFAbM0rMPW7GvUers" alt=""><figcaption></figcaption></figure>

You are now taken to a page where you can see your Webhook URL. Copy the URL to the clipboard:

<figure><img src="/files/2Q9AJnUrUnfzJjPf85xU" alt=""><figcaption></figcaption></figure>

Now go to the **config** tab of your Component Manager and paste the URL into the first empty row in column I. In column G, enter `slack_url`, in column H anything you like (e.g. "Slack URL"):

<figure><img src="/files/rt4DATWBl6TMUSQbYQWY" alt=""><figcaption></figcaption></figure>

That's it. You will now receive Slack messages from the Component Manager. Currently, only the [Variable Health Report](/main-functions/variable-health-report) supports Slack notifications.

When we add more, we will make them configurable so you only get those that you want. We will also never use your Slack integration to send you ads or anything not related to the particular feature.


# The config Tab

Reference of all keys in the "config" tab of the Component Manager Google Sheet — what each setting does and whether you may edit it.

Every Component Manager Google Sheet has a **"config" tab** that stores the settings and connection details for that sheet. Most keys are managed automatically by the Component Manager; a few are meant to be set or changed by you.

{% hint style="warning" %}
Only change keys marked **Configurable** in the table below. Editing **Fixed** (system-managed) keys can break the connection to Adobe Analytics or the add-on's internal state.
{% endhint %}

The **Type** column tells you whether a key is:

* **Configurable** — you may set or change it. Some configurable keys (the credentials) are filled in for you during the [initial setup](/getting-started-with-the-component-manager) and normally only change when you renew or migrate your Adobe API connection.
* **Fixed** — written and maintained by the Component Manager automatically. Don't edit these by hand.

{% hint style="info" %}
The example values below are **anonymized placeholders**, not real credentials. Your own values will differ.
{% endhint %}

| Parameter                   | Description                                                                                                                                                                                                                                                                                               | Type                   | Example                                                                                    |
| --------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------- | ------------------------------------------------------------------------------------------ |
| `client_id`                 | Adobe API Client ID (OAuth Server-to-Server)                                                                                                                                                                                                                                                              | Configurable via Setup | `a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4`                                                         |
| `secret`                    | Adobe API Client Secret. For security reasons this is only entered once upon setup, but then cleared and **not** stored in the sheet                                                                                                                                                                      | Configurable via Setup | *(entered during setup, not stored)*                                                       |
| `scopes`                    | OAuth V2 scopes granted to the Adobe API connection                                                                                                                                                                                                                                                       | Configurable via Setup | `openid, AdobeID, read_organizations, additional_info.roles, …`                            |
| `tech_id`                   | JWT Technical Account ID (legacy JWT auth only)                                                                                                                                                                                                                                                           | Configurable via Setup | `<id>@techacct.adobe.com`                                                                  |
| `org_id`                    | Adobe Organization ID                                                                                                                                                                                                                                                                                     | Configurable via Setup | `<id>@AdobeOrg`                                                                            |
| `no_personal_data`          | Do not show values in columns with potential personal data (owner, shared to, login names, etc.). Uncheck to reveal emails/login names instead of hashes                                                                                                                                                  | Configurable           | `FALSE`                                                                                    |
| `company`                   | Component Manager Company ID (internal client identifier)                                                                                                                                                                                                                                                 | Fixed                  | `examplecorp0`                                                                             |
| `base_rsid`                 | Base Report Suite ID — the basis for dimensions, metrics and Virtual Report Suites (see "What is the Base Report Suite ID" in Getting Started Guide                                                                                                                                                       | Configurable           | `examplecorpprod`                                                                          |
| `beta`                      | Enable beta features                                                                                                                                                                                                                                                                                      | Configurable           | `FALSE`                                                                                    |
| `layout_version`            | Master Sheet Layout version on which the last full sheet creation was based                                                                                                                                                                                                                               | Fixed                  | `7`                                                                                        |
| `reset_filters`             | Should filters be reset when updating a component list? Avoids filters no longer matching the filtered rows after an update                                                                                                                                                                               | Configurable           | `TRUE`                                                                                     |
| `workspace_views_days_back` | For how many days back Workspace views are calculated (min 1, max 400)                                                                                                                                                                                                                                    | Configurable           | `90`                                                                                       |
| `terms_and_users`           | Array of objects tracking Terms & Conditions acceptance per user: `u` = email, `s` = date the T\&C were last shown, `a` = date of acceptance                                                                                                                                                              | Fixed                  | `[{"u":"user@example.com","s":"2023-02-13T13:29:13.521Z","a":"2023-02-13T13:29:23.656Z"}]` |
| `setup_status`              | Whether the Component Manager account & Adobe Analytics connection were initialized                                                                                                                                                                                                                       | Fixed                  | `success`                                                                                  |
| `contract_start`            | Contract start (UTC)                                                                                                                                                                                                                                                                                      | Fixed                  | `Feb 13 2023, 17:03`                                                                       |
| `contract_end`              | Contract end (UTC)                                                                                                                                                                                                                                                                                        | Fixed                  | `Feb 27 2025, 17:03`                                                                       |
| `contract_expired`          | Whether the contract has expired                                                                                                                                                                                                                                                                          | Fixed                  | `FALSE`                                                                                    |
| `contract_trial`            | Whether the contract is a trial                                                                                                                                                                                                                                                                           | Fixed                  | `FALSE`                                                                                    |
| `slack_url`                 | Slack Incoming Webhook URL for [Slack notifications](/main-functions/slack-channel-integration)                                                                                                                                                                                                           | Configurable           | `https://hooks.slack.com/services/XXX/XXX/XXX`                                             |
| `gcs_bucket`                | A Google Cloud Storage bucket to which CSV copies of the [account usage stats](/main-functions/account-usage) are written on every update. The bucket must grant Storage Object Admin (`roles/storage.objectAdmin`) to the service account `gcf-scripts-runner-v2@dim28-comp-mgr.iam.gserviceaccount.com` | Configurable           | `my-company-component-manager`                                                             |


# Cleaning up Workspaces and Deleting Unused Components in 7 Steps

Guide on how to find the workspaces and components that you can likely delete

{% embed url="<https://lukas-oldenburg.medium.com/7-steps-to-clean-up-your-adobe-analytics-in-a-data-driven-manner-98bda7808f7b>" %}


# Prepare Migration from AA to CJA

This is a summary of a presentation held at the Feld M "Road To Summit" Event on April 20, 2026. It shows how the Adobe Analytics Component Manager for Google Sheets makes your migration from Adobe Analytics (AA) to Customer Journey Analytics (CJA) - or any other tool - likelier to succeed.

{% embed url="<https://docs.google.com/presentation/d/e/2PACX-1vQe-1GeQYAYTIW7fMdbOGxWpIwA55m0_RGlBeU5JmGdMdY6JDi2lNMh_HXIe8cboQ/pub?start=true&loop=true&delayms=3000>" %}

## Intro: A failed migration

**"Where is my dashboard? Why are the numbers so different? What should I believe now? Where is that segment I used in AA?"**

If you have messed up your migration, an explosion like this is likely.

It is the worst thing that can happen migration-wise: Frustrated early adopters telling everybody in the org how bad the new CJA experience is, that you have to build everything again — but even then, you can't, because dimensions x, y, z are missing in CJA.

So make your end users your migration priority — and that counts for migrations to CJA just the same as to any other tool. CJA is both great and tricky in that sense. The interface is nearly identical to AA, so while that helps users avoid a steep learning curve, it can also fool them into believing everything will work the same as in AA. It won't.

The Component Manager helps prevent such migration failures.

And remember: **You can never make a second first impression.**

## Side note: What do I mean by "migration"?

* A migration is **not** a "relocation", i.e., a one-by-one "as-is" replacement of each AA element or Workspace.
* Workspaces, Segments, Calc Metrics, and Dimensions do not need to be built or named exactly the same way in CJA.
* But CJA must offer an **equivalent** for the important AA elements — one that gives users the same data and information as the original in AA.

So the key questions are:

* What questions do our users answer with AA today?
* And then: How do we offer a CJA equivalent?

## Example Client Scenario

The actual true example client in our scenario...

* wants to migrate to CJA
* considerable AA content: > 13k thousands of segments, Calculated Metrics, > 3000 Workspaces, etc.

**=> Impossible to migrate everything**, even 10% of that with reasonable effort.

**=> Migrating everything is also nonsense** — why would you want the >50% of your AA setup that nobody uses anymore to end up in CJA?

## Can't we use Adobe's "**Component Migration Tool**"

The Component Migration Tool (see <https://developer.adobe.com/analytics-apis/docs/2.0/guides/endpoints/compmigration/> or the post by Alana Davis from Concord: <https://www.concordusa.com/blog/streamlining-your-journey-to-customer-journey-analytics-a-guide-to-adobe-analytics-component-migration-tool>) e.g. creates workspaces, calc metrics, segments and date ranges in CJA based on AA workspaces, but...

* ... for that to work properly, you need a one-to-one match of AA components to XDM fields in the CJA Data View.
* In many cases, such a matching makes no sense because what requires 3 different eVars with different attribution settings in AA is often doable with one XDM field in CJA which you then curate to be provided as 3 dimensions in the CJA interface
* Even if you match everything, certain AA logic will be "migratable", but simply won't work in CJA, e.g., segment conditions where the underlying eVar is based on the AA Visitor profile
* Some component types are not supported at all in CJA and need to be removed from the Workspaces before being able to migrate it, e.g. Analytics 4 Target, "Page Summary" panels

**But more importantly,**

* You should use the CJA migration also as the long-awaited opportunity to get rid of legacy AA thinking models
* Chicken-and-egg problem: It requires you to have already created a near-full configuration in CJA to have sth to map to - but for that, you need to know what you actually need in CJA
* In short: **The migration tool helps with the actual migration step, but it still does not tell you WHICH workspaces, segments, calculated metrics etc. you&#x20;*****should*****&#x20;migrate**

Last but not least, **expert practitioners like my friend Patrick Hegnauer** [**recommend against the migration tool**](https://experienceleague.adobe.com/en/perspectives/cja-readiness-three-key-considerations-before-migrating-to-cja)**:** *"We avoided using the Component Migration Tool and instead built a new, streamlined setup. \[...] We reviewed and refined segments, metrics, and other components to prevent legacy elements from being carried over."*

His key reasoning also is: With the Component Migration Tool, you are cementing the old AA Logic (thinking in eVars and props) in the new system.

Even if you choose to go with Adobe's Component Migration Tool, you need a selection of **what** to migrate. That's where the Component Manager will help you tremendously.

## Strategy: Use the Component Manager to clean up first, then identify what is worth migrating

This is crucial — a migration from AA to CJA is a giant, expensive project.

Everything you can leave out of the migration lowers the migration costs across the board: tracking concept, dev implementation, AEP & CJA configuration, testing, report/workspace setup, user onboarding and training, etc.

## Part 1: Clean up Workspaces and Components

First, we'll clean up the mess that has accumulated in our years of Adobe Analytics usage. The first 3 steps are thus "normal" steps that any Component Manager client would do (even if they are not migrating away from AA).

### Step 1: Identify and delete dead Workspaces

Check the ["Clean up Workspaces" chapter and video](https://docs.datacroft.de/main-functions/the-workspaces-tab#clean-up-workspaces) here.

### Step 2: Identify and delete dead components

The deletion of Workspaces frees up a lot of now "orphaned" components - segments, calculated metrics, date ranges and dimensions or metrics that are now "without parents" - because the workspaces where they had been used are now gone.

This enables us to take the next typical cleanup step: Deleting unused Segments, Calculated Metrics and Date Ranges. For this, you can refer to [this guide](https://lukas-oldenburg.medium.com/7-steps-to-clean-up-your-adobe-analytics-in-a-data-driven-manner-98bda7808f7b) (Step 4 and 5).

In short, you update the Component Usage (all\_comp\_usage) tab, then either just run "Component Usage" -> "Suggest Components for Deletion", or you do it manually, i.e. you filter for:

* "matches\_total = 0"
* componentType = "segment", "dateRange" or "calculatedeMetric"
* includeType = "all" or "shared"

Then copy over all IDs from the "id" column to the "id" column on the right (orange) side of the "component\_editor" tab.

Then set "method" to "delete" and run "Component Editor" -> "Send Updates to AA".

### Step 3: Harmonize duplicate components using the Component Replacer

Run "Component Usage" -> "Suggest Duplicates to Harmonize", and then the replacer (see [this guide, chapter "How to harmonize duplicate components with the replacer](https://docs.datacroft.de/main-functions/component-replacer-step-by-step-guide)"). Otherwise you may miss the true importance of some segments that exist under 10 different names with identical definitions — or end up migrating the same thing five times.

## Part 2: Identify the components used in the Workspaces worth migrating

The previous steps got our example client from 13,900 segments, calc metrics & date ranges to 3,300 and from 2,100 Workspaces to 300.

But even after deleting thousands of dead Workspaces and components, plenty will remain — far too many to migrate all of them.

You will also need to keep some Workspaces alive in AA during the transition period when both AA and CJA run in parallel.

**So how do you prioritize which segments, date ranges, and calc metrics should really be considered for rebuilding in CJA?**

### Step 4: Create a copy of the "workspaces" tab

Give the new tab any name you like, e.g., `wsp_to_limit_comp_usage`.

### Step 5: Filter the workspace list in this new tab to only the "relevant" workspaces — those worth migrating

**Example:** "All with at least x Views in the last y days, minus those with certain tags or prefixes, plus some manual selections."

You can also involve your users: send an email to the owners of the relevant workspaces with a link to the list so they can mark or prioritize those that absolutely need a CJA equivalent.

<figure><img src="/files/knGPUtNesaG0A16hZKQi" alt=""><figcaption></figcaption></figure>

### Step 6: In the `config` tab, set `limit_workspaces_for_comp_usage` to the name of the relevant workspace tab

(In our example: `wsp_to_limit_comp_usage`)

<figure><img src="/files/ta6TgB6zamAX150rz0Hb" alt=""><figcaption></figcaption></figure>

### Step 7: Set `run_with_hard_refresh` to `TRUE`

This resets previous Component Usage data and enables a full one-time scan of all your Workspaces on the next Component Usage update run. It automatically jumps back to `FALSE` after the run.

### Step 8: Run "Component Usage Update" again

The `matching_projects_count` column in the `all_comp_usage` tab will now count matches only within the "relevant" Workspaces:

<figure><img src="/files/46iW1wK2Y73sLEDj9tg0" alt=""><figcaption></figcaption></figure>

**=> These components are the ones worth considering for a CJA migration.**

See also [this guide for more details](https://docs.datacroft.de/main-functions/the-component-usage-tab#limit-workspaces-for-component-usage).

## Part 3: eVars / props / Success Events / Classifications — revise the basic ingredients

While CJA should not contain elements called "eVars/props & Success Events", the data stored in an AA eVar will likely become a CJA dimension. So the usage of AA dimensions, classifications, and Success Events is a strong indicator of what data will be valuable in CJA.

* If a variable is popular → it should be part of the CJA arsenal.
* If a variable is barely used → you have a strong case for reducing the tracking and configuration complexity of CJA.

**This is crucial.** It is difficult to remove Success Events, eVars, or Classifications from AA because doing so can have all kinds of side effects, so most companies rarely clean up — and tech debt keeps growing. The migration is likely your only chance in a decade to **really** clean up. The fewer basic ingredients you need, the less complex your overall CJA setup can become.

### Step 9: Identify relevant eVars, props, Classifications and Success Events in the Component Usage tab

The cleanup and workspace-limiting work from Parts 1 and 2 also surfaces the usage of dimensions, classifications, and metrics (eg Success Events):

* Low usage → can they be left out of your CJA tracking plan?
* High usage → are they part of the CJA tracking plan? If not, consider adding them.

## Part 4: Users

### Step 11: POCs with Power User Allies — instead of a Big Bang Rollout

The Component Manager's Account Usage tab shows your most active AA users. These are your most important migration stakeholders.

As mentioned, frustrated early adopters can be catastrophic. Mitigate this by involving your power users early. Work together with them on a migration POC for some of their key Workspaces.

Don't make them feel overlooked. Make them your allies.

### Step 12: Finishing it up - Help the Stragglers

When CJA becomes the recommended tool for everyone and the end-of-life of your AA is approaching, use the Component Manager to identify users who are still active in AA. Why are they still there? Did you miss something important? Can you offer them targeted CJA onboarding?

## Key Takeaways

* Migration is architecture work, not relocation. Whatever you don't clean up before the migration, you'll carry with you for the next ten years.
* Adobe's Component Migration Tool can only migrate what you've selected beforehand — the selection is the actual work. The Component Manager helps with that - in a data-driven, user-centric manner.
* Power Users decide whether the migration succeeds. Lose them early, and the migration is politically dead.

## Want to Learn more?

Contact us via the form on the [datacroft website](https://datacroft.de/en/component-manager/). We can help get set up for free and give you a demo.


# What is the Component Manager?

Summary of the main functions and advantages of the Adobe Analytics Component Manager for Google Sheets, by Datacroft

## Main benefits: Component Curation & Account Usage stats

The Adobe Analytics Component Manager is a Google Sheets Extension that makes your Adobe Analytics admin life a lot easier. It will **save you hundreds of hours of tedious admin work**, give you a **better overview** over your setup and **improve the experience for your org's users**.

While **component cleanup** and **curation** are the core features, the Component Manager also gets you **account usage stats** to track the adoption of AA in your organization, see which users drive it the most, and who has lost interest.

Additionally, there are some useful reporting features, e.g. the **Variable Health report** which regularly scans all your dimensions and metrics for unexpected trends, or the **Report Getter** which allows you to get any Workspace report into Google Sheets or CSV - regularly and up to 50k rows per day.

## Component Cleanup and Curation

One of the strengths of Adobe Analytics are the many components that can be created quickly for each case, i.e. the workspaces, segments, calculated metrics, date ranges, etc. Flexibility is also a benefit for classic components such as dimensions (eVars/props) and metrics (success events).

But: Managing these components in the AA interface is tedious. Frequent questions:

* the half-life of most components is short. But which ones can be deleted? Which ones are still needed?
* Which eVars or success events could we remove from the implementation because nobody uses them?
* How can we efficiently establish a uniform naming convention?

It is even more difficult if you want to manage components for several virtual report suites, although this approach is the best for acceptance by non-technical users. Too many components also slow down your workspace loading performance.

The Component Manager brings order. Some of the most useful [features](/main-functions):

* Manage & tidy up components according to **actual usage**
* See all components and workspaces in one clear Google Sheet, edit or delete them in bulk
* Replace component A with B automatically (in workspaces, segments and calculated metrics)
* Add/remove/rename curated components in multiple Virtual Report Suites at once Data Democratization: See if users are using the new components you add
* Bulk-create/edit eVars, props, Success Events across multiple Report Suites

## See the Component Manager in Action:

* 7 Steps to clean up your Adobe Analytics in a Data-Driven Manner: <https://lukas-oldenburg.medium.com/7-steps-to-clean-up-your-adobe-analytics-in-a-data-driven-manner-98bda7808f7b>
* Find and delete 100's of unused Adobe Analytics Segments with a few clicks (Video): <https://lukas-oldenburg.medium.com/find-and-delete-100s-of-unused-adobe-analytics-segments-with-a-few-clicks-video-18762313826a>
* Who is losing interest in Adobe Analytics? <https://lukas-oldenburg.medium.com/who-is-losing-interest-in-adobe-analytics-3-key-indicators-150b3e8b097d>


# Component Manager in Kürze und auf Deutsch

Zusammenfassung der wesentlichen Funktionen und Vorteile des Adobe Analytics Component Manager for Google Sheets, by Datacroft

Eine Stärke von Adobe Analytics sind die vielen, für jeden Fall schnell erstellten Komponenten, also die Segmente, Calculated Metrics, Date Ranges etc. Auch bei den klassischen Komponenten wie Dimensionen (eVars/props) und Metriken (Success Events) ist Flexibilität Trumpf. Aber:

* Das Verwalten dieser Komponenten im AA Interface ist mühsam
* Die Halbwertszeit der meisten Komponenten ist gering. Doch welche kann man löschen? Welche werden noch gebraucht?
* Welche eVars oder Success Events könnten wir aus der Implementierung entfernen, weil sie niemand nutzt?
* Wie etabliert man effizient eine einheitliche Naming Convention?
* Noch schwerer wird es, wenn man Komponenten für mehrere Virtual Report Suites managen will, dabei ist gerade dieser Ansatz der beste für die Akzeptanz bei nicht-technischen NutzerInnen.
* Zu viele Komponenten drücken auch auf die Ladezeiten

Mit dem Component Manager kehrt Ordnung ein:

* Verwalten & aufräumen von Komponenten gemäß tatsächlicher Nutzung
* Alle Komponenten und Workspaces in einem übersichtlichen Google Sheet sehen, in Massen bearbeiten oder löschen
* Komponente A durch B automatisch (in Workspaces, Segmenten und Calculated Metrics) ersetzen
* Hinzufügen/Entfernen/Umbenennen von kuratierten Komponenten in mehreren Virtual Report Suites auf einmal
* Data Democratization: Sehen, ob NutzerInnen die neuen Komponenten nutzen, die man neulich vorgestellt hat / Naming Conventions forcieren
* alles in einem GoogleSheet, daher sind beliebige eigene Erweiterungen möglich

## Weiterführende Links

Plastische Beispiele, wie eine Aufräumaktion ablaufen kann:

* 7 Steps to clean up your Adobe Analytics in a Data-Driven Manner: <https://lukas-oldenburg.medium.com/7-steps-to-clean-up-your-adobe-analytics-in-a-data-driven-manner-98bda7808f7b><br>
* Find and delete 100's of unused Adobe Analytics Segments with a few clicks (Video): <https://lukas-oldenburg.medium.com/find-and-delete-100s-of-unused-adobe-analytics-segments-with-a-few-clicks-video-18762313826a>


# Data Protection - what data is used and where is it stored?

A Privacy Policy, written for humans

## Privacy Policy regarding the Adobe Analytics data accessed and stored

### How does the Component Manager process data?

The Component Manager uses an API 2.0 JWT Token to pull component meta data (no report or individual user data) from Adobe Analytics, processes this data via various scripts hosted in a Google Cloud Platform (GCP) project in the European Union and finally writes the data to a Google Sheet. The Google Sheet can be owned by your organization if you want to.

### What Adobe Analytics data does the Component Manager use?

The Component Manager **never accesses Adobe Analytics report data**, so the data e.g. of your website visitors is untouched.

The Component Manager **accesses components meta data**, i.e. data on segments, calculated metrics, date ranges, dimensions, metrics, "Virtual" and regular Report Suites as well as Workspaces. "Meta data" refers to data like the name or description of a component, when it was created or in which Workspaces it is used. If you use the Account Usage Stats feature, the Component Manager will furthermore gather usage log data from Adobe Analytics (logins, workspace views of your organization's Analytics users).

### **Does the Component Manager store personal data (PII)?**

By default, the Component Manager does not store any personal data.

However, the Component Manager is much more useful if it can display the names and email addresses of the owners of a component (e.g. the employees of your company who own certain workspaces) so you can e.g. inform these users about any changes you are doing to their components or filter out components of people who have left your company.

As this is personal data, you can sign an additional Data Processing Agreement when you sign a premium contract. The necessity of the additional data processing agreement depends on the laws of your region and is e.g. required in GDPR regions.

You can then deactivate the `no_personal_data` checkbox in the "config" tab:

* if **active** (default), the "owner" and "shared with" columns of all tabs will simply show "pii disabled". The account usage tab will show salted hashes instead of email addresses for the user activity visualizations
* if **inactive,** the "owner" and "shared with" columns of all tabs will show their normal values, e.g. names of Adobe Analytics account users.

![If this box is unchecked, ...](/files/-MbqrPqxyiX2IU8Q3gc2)

![... instead of "pii disabled", you will see the names of your org's AA users](/files/-MbqtvVcQNEH7gWwmZwB)

### **Where is which type of data stored?**

#### **Personal Data**

If the `no_personal_data` checkbox mentioned above is unchecked, the Component Manager writes the names and (if Adobe IDs) email addresses into your Google Sheets. Personal data is **not stored anywhere else**, also not in logs or on our servers.

**API Credentials**

The credentials used for the Adobe Analytics API connection are stored safely and in an encrypted way using Google Cloud Platform's Secret Manager, an industry standard for security. You can furthermore simply disable the API Connection via the Adobe Developer Console at any time.

**Other non-sensitive data**

Some of the data in the Google Sheet, but no personal data, is stored in Google Cloud Platform's "Cloud Storage" as well as Google Cloud Platform's "Firestore" document database, both located in the European Union. This is done ...

* to make queries faster (e.g. to only query the delta between the last and the current "component usage" run makes the second and ensuing queries up to 95% faster, saves a lot of processing power)
* to track usage stats (e.g. how often which function is used and how long it runs) for performance and product optimization
* to generate parts of the "update logs" in the `update_log` tab (e.g. a list of all deleted Workspaces) to document changes.

#### Data in the Google Sheet

By default, all data in Google Sheets is stored [in Google's world-class data centers in an encrypted manner](https://support.google.com/docs/answer/10381817?hl=en), so this also applies to the Component Manager, which is basically a Google Sheets enhancement.

## Privacy Policy regarding the Google Sheets Add-on

If you install the Component Manager as a Google Sheets Add-on, the following applies regarding personally identifiable information from **your Google account**:

Upon first use of the Component Manager, we (Datacroft) ask you to accept the terms and conditions and this privacy policy. To remember who has accepted and when, we access and store your Google account's email address in the particular Google Sheet.

To use the Component Manager, you need to share your Google Sheet with "edit" access to the Google Cloud Platform Service Account e-mail address that is mentioned in the ["getting started" guide](/getting-started-with-the-component-manager). When you do this, Datacroft gets programmatic read and write access to all data in this Google Sheet. This is required because the service cannot be provided otherwise.

When you run the Component Manager Setup, we also store your Google account's e-mail address with the date when you agreed to the terms & conditions in our database in an encrypted form. This is required to prevent abuse and to have a legally binding proof of your agreement to the terms & conditions.

### Google Privacy Policy

See <https://policies.google.com/privacy> on how Google handles your data when using Google Sheets.

## End of Service

If you no longer wish to use the Component Manager, simply delete your Component Manager Google Sheet(s).

## Data access and deletion requests

You can at any time request us to send you all data stored about your person by writing to component-manager\[at]datacroft.de.

All account-related data is always deleted automatically after 6 months. You can at any time have all your personal and account-related data be deleted by writing to component-manager\[at]datacroft.de.

## Changes <a href="#h.f4pqvof1u1ec" id="h.f4pqvof1u1ec"></a>

Our Privacy Policy may change from time to time. We will not reduce your rights under this Privacy Policy without your explicit consent. We will post any privacy policy changes on this page and, if the changes are significant, we will provide a more prominent notice

## Last modified

March 10, 2025


# Terms and Conditions

## Service Certificate for the Free Trial Version of the "Datacroft Component Manager" Online Service

### 1. Object <a href="#toc477868752" id="toc477868752"></a>

The Client hereby orders from FELD M GmbH, Sandstraße 33, 80335 Munich, Germany ("**FELD M**"), the online service "Datacroft Component Manager“ (hereinafter referred to as the "**Service**" or "**Online Service**“) pursuant to the attached "General Terms and Conditions of Business of FELD M GmbH for Online Services“ ("**AGB-OD**").

### 2. Online Service Specifications

The Online Service includes the functionalities described below in the "Component Manager Service Specifications".

### 3. Support

See "Component Manager Service Specifications".

### 4. Availability

FELD M will provide the service on the basis of the "Component Manager Service Levels".

### 5. Remuneration

One-off setup fee and licence fees are waived for the free trial version of the Component Manager. At no point shall the free trial version automatically be converted into a paid contract.

### 6. System requirements and duty to collaborate

The standard system requirements for "Software as a Service" (SaaS) products (network connection, browser) shall apply.

### 7. Term of the contract <a href="#toc477868761" id="toc477868761"></a>

The contract commences on the date when the customer has completed the setup of the service, using the "Setup" function or after getting the tool set up by Datacroft.

The agreement has an indefinite term and may be freely terminated by either Party without any notice period.

### 8. Exhibits

The Exhibits are integral components of this contract:

* "General Terms and Conditions of Business of FELD M GmbH for Online Services"
* "Component Manager Service Specifications"
* "Component Manager Service Levels"

Exhibit: General Terms and Conditions of Business of FELD M GmbH for\
Online Services (AGB-OD)
------------------------

### 1. Content and conclusion of contract

#### 1.1. **Parties and subject matter.**

These General Terms and Conditions of Business govern the legal relationship between FELD M GmbH, Sandstraße 33, 80335 Munich ("**FELD M**") and its clients ("**Client**") in connection with the provision of software for use via the internet (Online Services). In addition, the relevant Service Certificate applies to the provision of individual Online Services. FELD M does not provide its services to consumers, but only for the Client's commercial or freelance professional activity.

**No deviating regulations.** The validity of any deviating provisions or provisions going beyond those set out here is excluded. This applies, in particular, to the Client's general terms and conditions of business, including if FELD M accepts an order from the Client, in which the Client has referred to its own general terms and conditions of business or to which the same are attached, and if FELD M has not objected to their validity.

### 1.2. **Conclusion of the contract**.

The contract is concluded by the Client and FELD M signing a Service Certificate or completing the "Setup" function in the Component Manager.

### **1.3. Obligations in electronic commerce**.

The provisions of Section 312g (1) no.1, 2 and 3 as well as of Section 312g (1) sentence 2 of the German Civil Code (BGB), stipulating specific obligations of the trader, are excluded.

## 2. Services provided by FELD M

### 2.1. **Right of use**.

FELD M provides the software product ("**Software**") designated and described in the Service Certificate to the Client for use via the internet ("**Service**" or "**Online Service**“).

### **2.2. Provision of Services**.

The Software is operated and provided through a Frontend and a Backend. The Frontend is based on Google Sheets which is part of the Google Workspace services. The Frontend communicates with a backend, latter is operated on the Google Cloud Platform. The backend forms the interface and middleware between the Frontend and the Adobe Analytics account of the Client. The Google Cloud Platform accounts used are held by FELD M or its subcontractor dim28 GmbH, Switzerland. The Google Workspace account (for Google Sheets) holder can be determined by the Client and can be the client's own Google Workspace account, Feld M's or dim28's. If the Client chooses to use its own Google Workspace account, the company policies for Google Sheets must allow sharing edit rights to non-company users and running AppsScript from third parties.

### 2.3. **Usage rights**.

For the term of this contract, the Client is granted the non-transferable right to access the "Frontend" via a browser and internet connection and use it exclusively for its own business purposes in connection with its commercial or independent professional activity. The right of use is indicated in the Service Certificate. The Client is not entitled to grant use of the software or to provide the Service to third parties.

### **2.4. Availability**.

FELD M will provide the Service to the Client in accordance with the Service Levels Specifications.

### 2.5. **Setup**.

Unless otherwise specified in the Service Certificate, FELD M provides the Frontend (Google Sheet) for the client, set up the backend logic and import the initial components data into the sheet. The client can copy a "starter sheet" and then go through the setup process as described in the documentation at docs.datacroft.de. The setup requires the client to provide Adobe Analytics API 2.0 JWT credentials for an Adobe Analytics admin user. FELD M will use the API 2.0 JWT token to read and manage solely component and Adobe Analytics account usage log information from the Client’s Adobe Analytics account. FELD M will not access the Client’s report data stored in Adobe Analytics, in particular no information about end-user’s (website visitor’s) individual access to the Client’s websites. FELD M is not required to modify the Service, in particular not to re-program it according to the Client's wishes. Such services are to be agreed upon and paid for separately.

### **2.6. Support.**

FELD M will provide support only if agreed upon in the Service Certificate. Unless otherwise agreed there, the following shall apply: Support by FELD M does not include: general know-how transfer, training, configuration and implementation or customer-specific documentation or software adaptation. FELD M's support services are provided on working days from Monday to Friday between 9 a.m. and 5 p.m. Excluded are German national holidays at the seat of FELD M as well as 24 and 31 December of each year. Support is provided by email. The time to the first response to email inquiries is 24 hours. Inquiries that are received outside the support hours are deemed to be received on the next working day. Statutory defect liability claims remain unaffected.

### 2.7. **Documentation.**

Unless otherwise agreed, FELD M only owes the provision of user documentation in the form of online help (docs.datacroft.de). Any further documentation, training or instruction services are to be agreed upon and paid for separately.

### **2.8. Service modifications.**

The Client knows that the Software is standard software, which is provided as an Online Service, and that a multitude of clients access a central system. The economies of scale resulting from such a multi-tenancy model can only be exploited if it is a uniform software product that can be developed further. For this reason, the parties agree upon the following: FELD M may modify the Service (including the system requirements) for an important reason. Such a reason is given, in particular, if the modification is required due to (i) necessary adaptations to a new legal situation or jurisprudence, (ii) changed technical framework conditions (new browser versions or technical standards), or (iii) the protection of system security. In addition, FELD M may reasonably modify the Service as part of further development of the Software (e.g. deactivation of obsolete functions that are largely replaced by new ones).

### 2.9. **Subcontractors.**

FELD M is entitled to use subcontractors to render the Services. In particular, FELD M may use the services of dim28 GmbH, Grubenackerstrasse 73, 8052 Zürich/Switzerland and Software and cloud services (in particular Google Workspace and Google Cloud Platform) of Google. The respective Google entity acting as subcontractors can be determined by the following overview: <https://cloud.google.com/terms/google-entity>.

## 3. Duties and obligations of the Client

### 3.1. **Adobe Analytics Service Account with Admin User Rights.** <a href="#toc381978943" id="toc381978943"></a>

The client is obliged to provide Adobe Analytics API 2.0 JWT credentials for their Adobe Analytics account for a service account user with Admin rights.

### **3.2. GoogleSheets access.**

The client must be allowed to use GoogleSheets at its organization.

### 3.**3**. **Modification of the main structure of the GoogleSheet.**

The Client can add her own content (e.g. additional columns or tabs) to the Component Manager. However, the client is aware that major changes to the structure of the sheet (e.g. changing the position of headlines, status message cells or inserting rows in the config sheet) can lead to the functionality breaking.

### **3.4. Backup.**

FELD M does not provide or guarantee any backups.

### 3.**5.** **Lawful use.**

The Client shall use the Service only within the limits of the contractual and statutory provisions and shall not violate any third-party rights during use. When using the Service, the Client shall observe, including but not limited to, the regulations regarding data protection, competition laws and copyright laws and shall not enter any harmful or illegal data or misuse the Service in any other manner.

### **3.6. System requirements and duty to collaborate**.

The hardware and software requirements to be met by the Client correspond to Google's requirements for using GoogleSheets (see <https://support.google.com/docs/answer/2375082>). Any organisational requirements and the Client's duties to collaborate are regulated in the Service Certificate.

## 4. Confidentiality

### **4.1. Confidential Information**.

"Confidential information" means all documents, information and data designated as "confidential" by the disclosing party in writing or verbally, which are made available or disclosed to the parties as part of their collaboration as well as any information which is to be regarded as confidential by nature. In particular, the terms and conditions of this contract constitute confidential information.

### 4.2. **Exceptions.**

The aforementioned obligations shall not apply (without a right or a licence being granted) insofar as a contracting party that has received confidential information can demonstrate that such confidential information was lawfully

a) in the public domain at the time of disclosure or has become public thereafter, or disclosed by another person to the receiving party, or

b) already in the possession of or known to the receiving party at the time of disclosure, or developed by the receiving party independently of confidential information, or

c) to be disclosed in accordance with statutory or administrative regulations or due to an enforceable legal decision, provided that the disclosing party is notified immediately of this requirement and the scope of disclosure is restricted as far as possible.

### 4.3. **Third parties.**

Lawyers, auditors and the financial authorities as well as other individuals obliged to secrecy by law are not third parties within this sense. In addition, vis-à-vis FELD M, subcontractors of FELD M (e.g. hosters) are not regarded as third parties.

## 5. Claims for Defects

### 5.1. **Freedom from defects and quality**.

FELD M will provide the Service free from defects of quality and title and maintain it in a condition suitable for contractual use during the contractual term. As regards the contractually agreed quality of the Service, only the Specifications shall be decisive, but not any statements on the website, verbal or written statements of FELD M prior to the conclusion of the contract or any information included in marketing materials of FELD M. The duty to maintain the Service does not include adaptation to changed conditions of use and technical and functional developments, such as changes in the IT environment, in particular, changed hardware or operating systems, adaptation to the functionality of competing products or ensuring compatibility to new data formats.

### **5.2. Remedy of defects**.

The Client shall notify FELD M immediately of any defects in the Service and explain the detailed circumstances. FELD M will remedy the defect within a reasonable period. FELD M is entitled to inform the Client of preliminary trouble-shooting possibilities and to remedy the defect subsequently by modifying the Service, if tolerable by the Client.

### 5.2. **Limitation due to provision free of charge**.

Since FELD M provides the services free of charge, the provisions regarding the loan shall apply, i.e. in particular, FELD M’s liability for defects is limited to fraudulent intent according to § 600 BGB, liability according to § 599 of the German Civil Code (“BGB”) is limited to intent and gross negligence and the shortened limitation period of six months according to § 606 BGB shall apply.

## 6. Duties of indemnification

### 6.1. **Duty of indemnification.**

If third parties (including public institutions) hold FELD M liable for claims or legal violations that are based on the allegation that the Client has violated its contractual duties, in particular, has used the Service in an anti-competitive or otherwise unlawful manner, the following shall apply: The Client shall indemnify FELD M immediately from and against these claims, offer reasonable support to FELD M for legal defence and indemnify FELD M against the costs of legal defence.

### **6.2. Prerequisites for the duty of indemnification.**

A prerequisite for the duty of indemnification pursuant to No. 6.1. is that FELD M notifies the Client immediately in writing of any claims made, does not submit any acknowledgements or similar declarations and allows the Client - insofar as possible - to conduct all judicial or extrajudicial negotiations regarding such claims at the Client's cost.

## 7. Limitation of liability

### 7.1. Limitation to intent and gross negligence. <a href="#ref96679836" id="ref96679836"></a>

Due to the provision of the services free of charge, FELD M’s liability is limited to intent and gross negligence for damages caused within the scope of a provision of services free of charge (see clause 5.3).

### 7.2. Employees and contractors of **FELD M**.

The limitations of liability set forth in 7.1 shall also apply to any claims against the employees and contractors of FELD M.

## 8. Term and termination

### 8.1. **Term**.

The agreement has an indefinite term and may be freely terminated by either Party without any notice period.

There is no auto-renewal or automatic switch to a paid model after a certain time.

### 8.2. Temporary Full Access during Trial Period.

Feld M may offer a certain period during which the full functionality can be tested (e.g. "full functionality for n days"), after which only a reduced functionality will be possible.

### **8.3. Form**.

Notice of termination must be given in writing or by email.

### 8.4. **Treatment of data at the end of the contract**.

At the end of the contractual term, the Client can no longer access its data. The Client is responsible for exporting its data before the end of the contractual term and saving it internally for further use. At the end of the contract, FELD M will delete the data, insofar as FELD M is not obliged by law to retain it. If deletion is only possible with a disproportionately high effort (e.g. in backups), FELD M is entitled to block the data.

## 9. Final provisions

### 9.1. **Service Certificate.**

The Service Certificate is an integral part of the contract. In the event of disputes between these General Terms and Conditions of Business and the Service Certificate, the conditions of the Service Certificate shall prevail.

### **9.2. Written form**.

Any changes to this contract must be made in writing. This shall also apply to a waiver of the written form requirement.

### 9.3. **Applicable law.**

This contract is governed exclusively by German law, the UN Sales Convention being excluded.

### **9.4. Place of jurisdiction.**

If the Client is a merchant, legal person under public law or special separate assets of the Federal Government, the exclusive place of jurisdiction is the seat of FELD M. FELD M remains entitled to sue the Client at the Client's seat.

### 9.5. Partial invalidity.

If individual provisions of this contract are or become invalid, the validity of the remaining provisions shall not be affected. The invalid provision is deemed to be replaced by a provision that comes closest to the original purpose intended by the parties in economic terms. This shall also apply to a regulatory loophole in the contract.

## Exhibit: Component Manager Service Specifications <a href="#hlk74145951" id="hlk74145951"></a>

## 1. Scope of services <a href="#hlk74145951" id="hlk74145951"></a>

### **1.1. Scope of services.**

The Component Manager gives the Client better control over her Adobe Analytics components in a GoogleSheet. "Components" refer to Segments, Metrics ("Success Events" and built-in Metrics like "Visits"), Calculated Metrics, Dimensions (eVars, props, Classifications and built-in dimensions like "Site Section"), Date Ranges, Workspaces and Virtual Report Suites.\
\
With the Component Manager, the Client can see, search through and filter all components for her Adobe Analytics account comfortably in one GoogleSheet.

### 1.2. **Features.**

With the free trial version of the service, the Client can use a limited functionality. The features that are available in this limited functionality can change over time. The current feature scope of the free version is listed on docs.datacroft.de.

## 2. Provision

In addition to the Exhibit "Service Levels", the following features apply to the provision of the services:

* The Component Manager is subject to GoogleSheets limitations, e.g. the maximum cells limit.
* Other limits may apply where necessary to avoid excessive usage (e.g. maximum runtime of an individual function) and performance.

## 3. Support

### **3.1. Definition of support services**

Support requests can be raised at component-manager\[at]datacroft.de. Nevertheless, the Client has no right to any kind of support during the free trial usage of the Service.

## Exhibit: Component Manager Service Levels <a href="#toc438199338" id="toc438199338"></a>

## 1. Target availability

During the free trial contract, availability is not guaranteed. FELD M will however use reasonable commercial efforts so that the Service is provided with a target availability of >95% over a calendar month during operating time. This excludes unavailability caused by downtimes or bugs at Adobe, Google Workspace or the Google Cloud Platform. The operating time is 24 hours a day (24/7). Operating time does not include announced maintenance windows of up to eight hours per calendar month. Availability refers to the availability of the Component Manager-related functionality in the GoogleSheets.

## 2. Achieved availability <a href="#toc438199339" id="toc438199339"></a>

When calculating actually achieved availability ("**achieved availability**") of the service, failures due to force majeure (e.g. strikes, unrest, natural disasters, epidemics) are not taken into account. In addition, blockings of the Service by FELD M, which it deems to be necessary for security reasons, are not taken into account, provided that FELD M has taken reasonable precautions to secure its own service (e.g. denial of service attack, serious security gap in third-party software without an available patch).

## 3. **Exclusion of Remedies** <a href="#toc438199354" id="toc438199354"></a>

If the target availability is not achieved, Client’s sole remedy shall be to terminate the agreement. Any other claims, in particular damage claims or other compensation claims shall be excluded, except in case of intent or gross negligence of FELD M.


# Contact

## **Want to find out more? Contact us!**

* [**Component Manager Product Website at Datacroft: Request a free demo**](https://datacroft.de/en/component-manager/)
* <https://twitter.com/lukasoldenburg>
* <https://www.linkedin.com/in/lukas-oldenburg/>
* <https://www.dim28.ch/contact>


