All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.day.cq.analytics.testandtarget.TestandtargetService Maven / Gradle / Ivy

There is a newer version: 2024.11.18751.20241128T090041Z-241100
Show newest version
/*************************************************************************
 *
 * ADOBE CONFIDENTIAL
 * __________________
 *
 *  Copyright 2011 Adobe Systems Incorporated
 *  All Rights Reserved.
 *
 * NOTICE:  All information contained herein is, and remains
 * the property of Adobe Systems Incorporated and its suppliers,
 * if any.  The intellectual and technical concepts contained
 * herein are proprietary to Adobe Systems Incorporated and its
 * suppliers and may be covered by U.S. and Foreign Patents,
 * patents in process, and are protected by trade secret or copyright law.
 * Dissemination of this information or reproduction of this material
 * is strictly forbidden unless prior written permission is obtained
 * from Adobe Systems Incorporated.
 **************************************************************************/
package com.day.cq.analytics.testandtarget;

import java.util.Collection;
import java.util.Date;
import java.util.List;
import java.util.Map;

import org.osgi.annotation.versioning.ProviderType;

import com.day.cq.analytics.testandtarget.impl.TestandtargetCampaign;
import com.day.cq.analytics.testandtarget.util.CampaignType;
import com.day.cq.wcm.webservicesupport.Configuration;

/**
 * The {@code TestandtargetService} is the entry point for all the operations which interact with the
 * Adobe Target API
 * 
 * 

This service is able to perform operations on both Adobe Target entry points - XML and REST. While * care has been taken to make the API backend transparent, to the caller, there are some methods where there are * small differences, usually due the XML API providing less information than the REST API. These limitations * are clearly documented in the method-level javadocs.

* *

As such, clients of this service are encouraged to use the REST API rather than XML API. This setting is * a property on the cloud service configuration and is properly saved by the cloud configuration UI.

* * @see TestandtargetCampaignMediator * @deprecated This service will be removed in future versions. No replacement will be provided. */ @ProviderType @Deprecated public interface TestandtargetService { /** folder list operation */ String OPERATION_FOLDER_LIST = "folderList"; /** campaign list operation */ String OPERATION_CAMPAIGN_LIST = "campaignList"; /** HTML offer save operation */ String OPERATION_SAVE_HTML_OFFER = "saveHtmlOfferContent"; /** HTML offer get operation */ String OPERATION_GET_HTML_OFFER = "getHtmlOfferContent"; /** HTML offer list operation */ String OPERATION_HTML_OFFER_LIST = "offerList"; /** Widget offer deletion operation */ String OPERATION_DELETE = "deleteWidgetOffer"; /** Widget offer save operation */ String OPERATION_SAVE = "saveWidgetOffer"; /** save operation */ String OPERATION_SET_CAMPAIGN_STATE = "setCampaignState"; /** Campaign create operation */ String OPERATION_SAVE_CAMPAIGN = "saveCampaign"; String OPERATION_REPORT = "report"; /** Property name E-Mail */ String PN_EMAIL = "email"; /** Property name password */ String PN_PASSWORD = "password"; String CAMPAIGN_STATE_APPROVED = "Approved"; String CAMPAIGN_STATE_DEACTIVATED = "Deactivated"; /** Property name client code */ String PN_CLIENTCODE = "clientcode"; /** Property name tenant id */ String PN_TENANTID = "tenantId"; /** Property name authentication */ String PN_AUTHENTICATION = "authentication"; /** * Returns a tree of folders available in Adobe Target. * Folders are not supported when using REST API. * * @param configuration Service {@link Configuration} * @return The tree of folders available in Adobe Target. This method returns <code>null</code> * when using Adobe Target REST API * @throws TestandtargetException {@link TestandtargetException} on all errors */ Folder listFolders(Configuration configuration) throws TestandtargetException; /** * Creates a widget offer on Adobe Target. * * @param configuration * Service {@link Configuration} * @param name * Name of the widget offer * @param url * The encoded URL of the third-party server that hosts the * dynamically generated response * @param id * The third-party ID of the widget offer * @return A string representation of the third-party id * @throws TestandtargetException {@link TestandtargetException} on all errors * */ @Deprecated String publishOffer(Configuration configuration, String name, String url, String id) throws TestandtargetException; /** * Deletes a widget offer on Adobe Target. * * @param configuration * Service {@link Configuration} * @param name * Name of the widget offer * @param url * The encoded URL of the third-party server that hosts the * dynamically generated response * @param id * The third-party ID of the widget offer * @return A string representation of the third-party id * @throws TestandtargetException {@link TestandtargetException} on all errors * */ String unpublishOffer(Configuration configuration, String name, String url, String id) throws TestandtargetException; /** * Creates a widget offer. * * @param configuration Service {@link Configuration} * @param name Name of the widget offer * @param url The encoded URL of the third-party server that hosts the * dynamically generated response * @param id The third-party ID of the widget offer * @return A string representation of the third-party id * @throws TestandtargetException {@link TestandtargetException} on all errors * */ @Deprecated String createWidgetOffer(Configuration configuration, String name, String url, String id) throws TestandtargetException; /** * Creates an HTML offer. * * @param configuration Service {@link Configuration} * @param offerName Name of the offer * @param folderId Folder id * @param content Offer content as plain HTML. * @throws TestandtargetException {@link TestandtargetException} on all errors * */ void createHTMLOffer(Configuration configuration, String offerName, String folderId, String content) throws TestandtargetException; /** * Creates a HTML offer * @param configuration the cloud-service configuration * @param request a {@link SaveOfferRequest} object containing the operation's details, such as the offer data. * This object may be incomplete, i.e. just contain the essential data for creating an offer - name and content * @return * the offer id, as set by Adobe Target. If the XML API is used this method return -1 * @throws TestandtargetException {@link TestandtargetException} on all errors * */ long createHTMLOffer(Configuration configuration, SaveOfferRequest request) throws TestandtargetException; /** * Retrieves a HTML offer from Adobe Target * * @param configuration Service {@link Configuration} * @param offerName Name of the offer * @return An HTMLOffer * @throws TestandtargetException {@link TestandtargetException} on all errors * */ HTMLOffer getHTMLOffer(Configuration configuration, String offerName) throws TestandtargetException; /** * Retrieves an offer from Adobe Target * @param configuration the cloud services configuration for the Adobe Target account * @param request a {@link ViewOfferRequest} object containing the request data * @return a {@link ViewOfferResponse} object containing the offer's data * @throws TestandtargetException {@link TestandtargetException} on all errors * */ @Deprecated ViewOfferResponse getReusableOffer(Configuration configuration, ViewOfferRequest request) throws TestandtargetException; /** * Returns a JSON representation of offers. * * @param configuration Service {@link Configuration} * @param folderId Folder id * @return An {@link Collection} of {@link Offer} objects * @throws TestandtargetException {@link TestandtargetException} on all errors * */ @Deprecated Collection listOffers(Configuration configuration, String folderId) throws TestandtargetException; /** * Returns a list of offers currently registered in Target * * @param configuration a reference to the service {@link Configuration} * @param request a {@link ListOffersRequest} object containing the request details * @return a collection of {@link ViewOfferResponse} objects. * @throws TestandtargetException {@link TestandtargetException} on all errors */ Collection listOffers(Configuration configuration, ListOffersRequest request) throws TestandtargetException; /** * Returns a {@link Map} with campaigns. The Map key contains the campaign * ID and the Map value the campaign name. * * @param configuration * Service {@link Configuration} * @param before * A date value. Includes campaigns that were active at least * once before the specified date. By default, the before * parameter is 2100-01-01T00:00. * @param after * A date value. Includes campaigns that were active at least * once after the specified date. By default, the after parameter * is 1969-00-00T00:00. * @param environment * A URL-encoded host group name, as defined in the T&T Tool. By * default, the environment value is Production. * @param name * The campaign name, or portion of the campaign name, that you * want to match. * @param state * Comma-separated list of states to match. Supported values * include: saved, activated, library. By default, the filtered * results include all states. * @param label * Comma-separated list of labels to match. By default, the * filtered results include all labels. * @return Map of campaigns * @throws TestandtargetException {@link TestandtargetException} on all errors * */ @Deprecated Map listCampaigns(Configuration configuration, Date before, Date after, String environment, String name, String state, String label) throws TestandtargetException; /** * Updates the state of the campaign in Adobe Target. * * @param configuration * Service {@link Configuration} * @param campaignState * The campaign state , one of {@link #CAMPAIGN_STATE_APPROVED} or {@link #CAMPAIGN_STATE_DEACTIVATED} * @param testAndTargetCampaignId * The campaign identifier. You must provide either testAndTargetCampaignId or thirdPartyCampaignId * @param thirdPartyCampaignId * The third-party campaign identifier. You must provide either testAndTargetCampaignId or thirdPartyCampaignId * @return true if the operation succeeded * @throws TestandtargetException {@link TestandtargetException} on all errors * */ boolean setCampaignState(Configuration configuration, String campaignState, String testAndTargetCampaignId, String thirdPartyCampaignId) throws TestandtargetException; void checkCredentials(String clientcode, String email, String password) throws TestandtargetException; /** * Retrieves the performance report data for a specific campaign * *

* All parameters are mandatory, except for {@code campaignId} and {@code thirdPartyId} , out of which exactly one * must be specified. *

* * @param configuration the cloud services configuration associated with the Adobe Target account * @param reportType a {@link ReportType} object representing the type of report * @param campaignId the id of the campaign, as defined in Adobe Target * @param thirdPartyCampaignId the third party id of the campaign * @param start the start date of the campaign (used as report filter) * @param end the end date of the campaign (used as a report filter) * @param resolution the campaign's resolution (hour, day etc.) * @return performance report data for a specific campaign * @throws TestandtargetException {@link TestandtargetException} on all errors * * @see Adobe Target * performance report API * */ Reports getPerformanceReport(Configuration configuration, ReportType reportType, String thirdPartyCampaignId, String campaignId, Date start, Date end, Resolution resolution) throws TestandtargetException; /** * Retrieves the performance report data for a specific campaign * *

* The data returned by this method always returns visits for the {@link PerformanceReportItem#getEntryCount()} * method *

* *

* Note that it is recommended that the {@code request} is configured with a campaign id rather than a third party * id. The reason is that when using the REST API an additional call is performed to map the third party id to a * campaign id. *

* * @param configuration the cloud services configuration associated with the Adobe Target account * @param request the request object holding all data needed to retrieve the performance data * @return the performance report data, never null * @throws TestandtargetException {@link TestandtargetException} on all errors * */ PerformanceReport getPerformanceReport(Configuration configuration, PerformanceReportRequest request) throws TestandtargetException; /** * Retrieves a list of segments for the specified {@code configuration} * *

* Optional filtering parameters may be set in the {@code request} parameter. *

* * @param configuration Service {@link Configuration} * @param request optional request parameters. May be null. * @return a list of segments, possibly empty, never null * @throws TestandtargetException {@link TestandtargetException} on all errors */ List listSegments(Configuration configuration, ListSegmentsRequest request) throws TestandtargetException; /** * Detects the usage of an mbox in multiple activities * @param configuration a reference to the Cloud Service configuration * @param mboxName the name of the mbox * @param mboxUrl the URL of the mbox. "http://localhost" is accepted * @return a list of campaign names which reference the specified mbox. The return value can be empty, which signals that there are no collisions. It can also be {@code null}, which signals that there is no information about collisions * @throws TestandtargetException {@link TestandtargetException} on all errors * */ @Deprecated List getMboxActivityCollisions(Configuration configuration, String mboxName, String mboxUrl) throws TestandtargetException; /** * Get the mboxes list for a given configuration * @param configuration a reference to the Cloud Service configuration * @return a list of mbox names. The list can be empty if no mboxes are available for the received configuration * @throws TestandtargetException {@link TestandtargetException} on all errors * */ List listMboxNames(Configuration configuration) throws TestandtargetException; /** * Retrieves a campaign from Target using the thirdPartyId property * @param configuration the {@link Configuration} associated with the Target account * @param thirdPartyId the thirdPartyId of the campaign * @param campaignType the type of the campaign - landingPage or ab * @return a {@link Campaign} object or null if the campaign cannot be found in Target * @throws TestandtargetException {@link TestandtargetException} on all errors * */ Campaign getCampaignByThirdPartyId(Configuration configuration, String thirdPartyId, CampaignType campaignType ) throws TestandtargetException; /** * Retrieves a campaign from Target using the id property * @param configuration the {@link Configuration} associated with the Target account * @param campaignId the id of the campaign, as received from Target during a previous update * @param campaignType the type of the campaign - landingPage or ab * @return a {@link Campaign} or null if the campaign cannot be found in Target * @throws TestandtargetException {@link TestandtargetException} on all errors */ @Deprecated Campaign getCampaignById(Configuration configuration, long campaignId, CampaignType campaignType ) throws TestandtargetException; }




© 2015 - 2024 Weber Informatics LLC | Privacy Policy