Is it possible to use a data element to set the reporting suite within Adobe DTM? - adobe-analytics

I have an Adobe Activation (DTM) container that I would like to dynamically set the reporting suite value using data elements, such as "%reportingSuiteProd% and %reportinSuiteStage%.
When I try to use these values within the Adobe Analytics tool, they are passed as strings instead of using the data element functionality. Is it possible to use data elements here? If not, what is the cleanest way to set a dynamic reporting suite value within DTM?
Example:
http://trackingserver.com/b/ss/%reportingSuiteProd%/1/JS-1.6.1-D6I2/s53779788912776.....

For reasons unclear to anybody, Adobe does not allow data element references to be used for the report suite fields. If you want to use a data element to populate the report suite, you will need to change the settings in Library Management.
Set the Code Configuration to "Custom" and then check the checkbox for "Set report suites using custom code below".
Then, within the "Code Hosted > In DTM" Editor (or within the Customize Page Code Editor) you can do this:
if (_satellite.settings.isStaging)
s.account=_satellite.getVar('reportingSuiteStage');
else
s.account=_satellite.getVar('reportingSuiteProd');
The major downside to this is if your previous setup was to have the Adobe Analytics library Managed by Adobe, well, that is no longer an option, and you will need to ensure the library is kept up to date yourself.

The answer provided is correct, but i recomend instead of put the report of the suit directly on the data element, save the data first and then use it.
In my personal experience, do it in that way only solve some issues related with the pageview and no with the interactions, if you use local var you provide a robust solution:
The code is
var reportSuite;
if (_satellite.settings.isStaging)
reportSuite=_satellite.getVar('reportingSuiteStage');
else
reportSuite=_satellite.getVar('reportingSuiteProd');
s.account = reportSuite

Related

Is there a way to export the enabled Conversion Variables, Traffic Variables and Success events to excel in Adobe Analytics?

I wanted to export the list of variables defined in Adobe Analytics, to create a document. But then other than copy paste i don't see any other way to do the same. I have to do the same for more than 70 Report suits. I feel its too much manual work.
I have tried copy paste. Which i don't want to do, as its too much manual work.
Is there a way which i am missing in Adobe Analytics which does this easily in one click or something? As in Google Analytics Google Tag Manager we have an option to export the container which i don't see in Adobe Analytics.
Thank you #CrayonViolent. But i found one more way to get the list of variables defined.
The admin Report Suite Manager lets you to do the same.
Analytics > Admin > Report Suites
Select Report Suite
Click on Download:
This will Generates an Excel spreadsheet of all settings for the currently selected report suites.
I hope this helps.
Both the API and export options are great.
Another option is to use ObservePoint's free Google Sheets add-on to pull all props, eVars, listVars, processing rules, etc. into a spreadsheet. I believe it's limited to one report suite at a time, but I use it regularly to generate sharable and editable SDRs. (The add-on supports making updates in the spreadsheet and pushing them back up to Adobe Analytics.)
https://chrome.google.com/webstore/detail/observepoint-labs/ohpgoaikjjdkfjalakolccdibikodoeo?hl=en

Translate JMeter menu items

About Translate JMeter projects,
I follow the translating steps and open I18NEdit,
I see the translation text options but I notice that I can't localize Menu items as File, Exit,..
It seems that there are texts (messages.properties) that can't be localized.
Is messages.properties localization is done manually by adding messages_[locale].properties?
Am I missing something ? Is it on purpose or should an enhancement be opened?
We don't really use i18nedit for translation. But you can still use it.
Anyway, Internationalization in JMeter is based on properties files:
src/core/org/apache/jmeter/resources/messages_[locale].properties
src/components/..../*.properties (except some like colors.properties)
src/protocol/..../*.properties
No need to translate deprecated components.
The 2 latter are related to components that rely on TestBean approach (no specific GUI)
Note that a PR (github mirror) is preferred over a patch:
https://github.com/apache/jmeter/blob/trunk/CONTRIBUTING.md

VSCode extension IPC with UI inside HTML preview

I wish to develop a unit test runner extension for VSCode. The extension should display discovered tests grouped into expandable hierarchy, annotate run status, display output and errors for each test, provide run/debug commands on different levels, and of course the red/green bar.
Roughly spearating this into "model" and "view", I plan to implement the model in the extension process, and I plan to implement the view as HTML preview based on a TextDocumentContentProvider. (Is there a better approach?)
Now, the model and the view should communicate with each other. I want to implement the view as a single-page application. The view will send commands to the model, and the model will send events to the view (or the view will poll the model for events). The view will update itself according to received events.
My question is, what communication technique should I use? Can HTML page inside the HTML preview access VSCode/Atom/Electron/Node APIs? Can I share object instances, or do some lightweight IPC? By far I didn't figure out.
I've found that I can invoke VSCode commands or refresh the entire page, when the user clicks a link with href set to specific scheme (command:// or the one I registered for my TextDocumentContentProvider).
I do succeed to open an HTTP listener (http.createServer) in the extension process, and communicate through XMLHttpRequest on the HTML preview side. But it looks to me like a heavy overkill.
I wonder if there are more appropriate ways to do this?
Almenon is referring to the currently proposed Webview API that was released in version 1.21 (Feb 2018). For the time being, this appears to be a much better approach for HTML previews. But in order to use the API, there are special instructions. From the release notes:
These APIs are still proposed, so in order to use it, you must opt into it by adding a "enableProposedApi": true to package.json and you'll have to copy the vscode.proposed.d.ts into your extension project.
What isn't clarified (and probably should be) is how to add the downloaded declaration file to a project. One way to do it is place the file in $/node_modules/vscode, next to vscode.d.ts, which is generated during postinstall. Then add the following line to the top of vscode.d.ts:
/// <reference path="vscode.proposed.d.ts" />
That will link the type declaration files. To make this part of the installation process, write a build task to do it and then call it in the vscode:postinstall script in package.json.
VSCode has a new API that makes this easier.
https://github.com/Microsoft/vscode/issues/43713
You can find the new API here
To try the new API:
Add "enableProposedApi": true to your package.json
Manually download vscode.proposed.d.ts and add it to your project: https://raw.githubusercontent.com/Microsoft/vscode/master/src/vs/vscode.proposed.d.ts
Run your extension with the latest VS Code insiders build

Adobe DTM header for a library download

Background: My company is starting a proof of concept for adobe DTM and I am starting to familiarize myself with it. We have many different domains and many different internal sections that all may want to use different libraries on different pages. We are using the library download setup in DTM. I've watched a lot of the tutorials the tool and have read all of the documentation that I could find on the headers.
Issue: I believe that the libraries are all created with the DTM tool. For instance, if we create a rule, or add 3rd party javascript to DTM, then that would be placed in the library. Because of the way that the team has generally thought about js libraries before, where we upload them ourselves, most of the team believes that we can physically place the 3rd party js libraries in the location designated by the header and that we can reference them with an include() call in the Javascript/Third Party Tags section of a rule. I don't believe this is possible. Is there anyone who can shed some light on this?
Thanks for your time,
Mike
(I already answered this at the Adobe Forums, but I thought I would include the reply here for others looking at stack exchange)
I could be wrong in my assumptions, but I have always understood this method as a way to simply host DTM functionality on your own servers for downtime/uptime/SLA reasons. :) Meaning, you would want to go with this option simply because you need to ensure that DTM embed urls/scripts never ever go down and that they are lightning fast and never give you issues. :) You would then use the script loading capabilities by configuring the DTM UI to load the 3rd party scripts or custom built scripts through rules. You would load them either on pageLoad top or bottom, domReady, or onLoad. There is more documentation on this option here and some reasons why you would use that option:
http://microsite.omniture.com/t2/help/en_US/dtm/hosting.html
http://microsite.omniture.com/t2/help/en_US/dtm/deployment_download.html
However, you can also include these scrips just like you would with any other javascript reference like you mentioned above. The trick would be just figuring out the url to include as your src attribute. DTM itself has an API that you can use to load scripts, and it also includes a "settings" property and "configurationSettings" property that you can use to find a lot of those scripts that you are interested in loading. See all _satellite object documentation here:
http://microsite.omniture.com/t2/help/en_US/dtm/object_reference.pdf
In more detail, you could do something like this to get your script path dynamically after DTM embed scripts have loaded:
var scriptSrc = "//domainOfHost.com/" + _satellite.settings.scriptDir + "scriptSrc.js";
Then you could use this function on the _satellite object to load the script you are interested in:
_satellite.loadScript: function (url, callback)
PARAMETERS:
url: the URL of the script
callback(optional): the function to be called after the script has loaded.
DESCRIPTION: Load an external script.
Thanks,
Ben

Why is WSCript object not known to my script that's controlled by a custom IScriptControl?

I am using someone else's library that provides its own scripting host instance, it appears.
This lib provides me with functions to define the type of scripting language such as "jscript" and "vbscript", and I can supply it with script code and have that executed, with passing arguments in and back. So, basically, it works.
However, when I try to access the "WScript" object, I get an exception saying that this keyword is undefined.
The developer, not knowing much about this either (he only made this lib for me because I do not want to deal with Windows SDKs right now), told me that he is using "IScriptControl" for this.
Oh, and the lib also provides flags to allow "only safe subset" and "allow UI", which I set to false and true, respectively.
Does that ring a bell with anyone? Do a user of IScriptControl have to take extra steps in order to make a WScript object available? Or, can he use IScriptControl in a way that this is supplied automatically, just as when running the same script from wscript.exe?
Basically, all I need is the WScript.CreateObject function in order to access another app's API via COM.
I don't know why WScript is not known, but I suspect it is because the script host doesn't provide it. Maybe only wscript.exe does this.
If you are using Javascript, to create an object you can use new ActiveXObject(). If you are using VBScript, you can just use CreateObject.
See this article for some background.

Resources