Package: experiencecloudapis
Adobe Experience Cloud APIs for PythonThis Project tries to implement all Adobe Experience Cloud APIs for Python under one umbrella. Create an integration,
select an authentication method and call your desired API.Note: In this stage not all APIs and authentication methods are implementedHow to installEither clone this repository and run the setup script or install it via pip:pipinstallexperiencecloudapisAuthentication MethodsCurrently only the Service Account (JWT) client is implemented.Service Account (JWT)Service Account (JWT)In order to get authenticated, you need to create an integration withAdobe I/Ofirst. You can read how to create a integrationhere.
When creating the JWT client, you need to specify the path to yourservice account jsonfile,private keyfile andcompany id.
The service account json file nowadays can be easily retrieved from your Adobe I/O console. In order to do so, navigate to your
intergration and click on the top rightDownload JSONbutton. The authentication client is configured to read and understand this
file out of the box. When creating your integration, you have to upload a private/public key pair to your integration in order to make it work.
This can be done either via the command line or via theGenerate a public/private key pairmethod in your Adobe I/O integration. After your key pair is generated, save the private key safely on your computer and use it for the authentication.
Retrieving the company id is rather a hard nut. In order to achieve it, we logged in into theAdobe Analytics API Swagger UIand executed an API method, then retrieved the company id from the request URL, which looks something like this:https://analytics.adobe.io/api/{COMPANY_ID}/calculatedmetrics# JWT authentication examplefromexperiencecloudapis.authenticationimportJWTpath_to_service_account_json="/path/to/file.json"path_to_private_key="/path/to/private.key"company_id="company_id"# if everything works well, you have created your jwt client and can inject it into your API clientjwt_client=JWT(path_to_service_account_json,path_to_private_key,company_id)Supported APIsCurrently implemented APIs:Analytics(All Analytics 2.0 APIs are implemented and missing ones from 1.4 as Classifications)Request Analytics APIRequesting an API is easy after you managed to create the integration. Plug the authentication client into any of the
APIs you want to request and call the respective method.# setup the Analytics API Client and request the metrics methodfromexperiencecloudapisimportAnalytics# report suite id is required for getting metricsrsid="rsid"# inject the authentication client into your APIanalytics_client=Analytics(jwt_client)response=analytics_client.get_metrics(rsid)Adobe Analytics Report ClassRequesting Adobe Analytics Reports is a common task and in order to ease the way to retrieve and process the response, we have created a helper class.
In order to work easily with the Adobe Analytics Reports API, a helper Class requests and processes responses automatically.
Adobe Reports API responses come in a rather generic format, which needs to be processed in order to be useful for further analysis.
This class processes the response and resolves the data into an intermediate table which can be transformed further into famous formats as pandas.DataFrame, json or csv.
Currently this helper class works only with the Analytics Debugger JSON object, which can be extracted in Analytics Workspace via the Debugger option.
Copy and Paste the request payload into your script and execute the request.
See the example below:fromexperiencecloudapisimportAnalyticsReportpayload={...}# Copy from Analytics Debuggerreport_client=AnalyticsReport(jwt_client)report_client.request_report(payload)# now you have many options how to represent the responsereport_client.to_dataframe()# pandas.DataFramereport_client.to_csv()# csv stringreport_client.to_json()# json stringreport_client.to_dict()# dict