GA4 does not recognize the ecommerce 'items' parameter - e-commerce

To collect e-commerce data, I created a Ga4 data layer with GTM.
value, shipping, tax and items. as below ('item' parameter is just test)
But my GA4 doesn't recognize the 'items' parameter ONLY. Look at the picture below
all of other parameters are doing well, but not 'items'
GA4 does not recognize the ecommerce 'items' parameter.
I can't find a solution.
Do you know why?

One way that works for only one item in the items array, is by defining a datalayer variable for each component of the items array.
Example defining a datalayer variable for each component of the items array
Dont forget to check the last parameter configuration on the image. Ecommerce; check Send ecommerce data, and select Datalayer.
Hernan

Perhaps you are missing the "[]" when you define the variable "items" in the dataLayer.
When this happens, the variable items is recognized as an "object" and you need an "array". You can check this debugging with tag assitant in variables section.
This happens to me many times and you can either correct the data Layer of define a custom java script variables to add the "[]" to the variable.
items: [{ item_id: 'xxxxx', item_name: 'yyyy' , ... ]}
Good luck!
Andrés

Related

GA4 ecommerce items Array do not show up in debug mode

GA4 ecommerce items Array do not show up in debug mode
i am using the GTM, i am sure i passed the Array for items (using Datalayer or CJS), but GA4 does not recognized it , what i see is missing the items tab in debug mode, i don't know how that could be show up , am i doing something wrong? anyone has the same experience?
Looks like the event name is incorrect here -> View_Items.
Make sure that the event name exactly matches view_item
(stylized as snake_case).
As GA4 only allows ecommerce data collection with a set of pre-defined
event names.
Update :
I saw this checkbox is being checked
As you already set the value currency items in the event parameter. You can uncheck this setting.
I think you can follow Google's document about it
view_item_details
items: [
{
item_id: "SKU_12345",
item_name: "Stan and Friends Tee",
affiliation: "Google Merchandise Store",
coupon: "SUMMER_FUN",
currency: "USD",
discount: 2.22,
index: 0,
item_brand: "Google",
item_category: "Apparel",
item_category2: "Adult",
item_category3: "Shirts",
item_category4: "Crew",
item_category5: "Short sleeve",
item_list_id: "related_products",
item_list_name: "Related Products",
item_variant: "green",
location_id: "ChIJIQBpAG2ahYAR_6128GcTUEo",
price: 9.99,
quantity: 1
}
]
Make items array only contain 1 item
Google has a list of recommended events suggesting that the items are automatically collected. If your custom event name doesn't match the listed event, GA4 won't take the items data.
Note that even though you can use the GTM preview mode to check whether the data is correctly constructed, the shown data won't necessarily send to GA4.
The reason is that GTM only forwards the requested data instead of sending it to GA4 directly. To see this behavior, you may have a look at the dev tool such as Chrome dev tool. You can examine the forwarded request's payload in the network tab (search /collect.*/). If it's the recommended event, in payload, there's pr1, pr2, etc., representing your items' array data; otherwise, you'll see nothing, and thus the data won't show up in the GA4 debugging mode.
Do you use the same GTM data layer which initially track for GA Universal events ? If yes, then this may be the cause why the items array did not show on debug view since I found this issue also.
The solution is to create the new GTM Container, and name the data layer differently like 'datalayer2' to differentiate those data layers and set up your config again with 'datalayer2'
for instance, datalayer2.push(
{
event : view_promotion
....}

How to display custom fields in rally?

I have a ruby script that is trying to pull up some custom fields from Rally, the filter works just fine ( the filter contains one of the custom fields i want to pull up) but when I try to display it, it doesn't show up in the list (the value returned for all custom fields is blank, while appropriate values are returned for FormattedID, Name, Description).
Here's the link [link]http://pastebin.ubuntu.com/6124958/
Please see this post.
Do you fetch the fields?
What version of WS API are you using? If it is v2.0 is c_ prepended to the name of the field in the code?
How is the field spelled in your code and how that spelling compares to Name and Display Name of the field in UI?
There is another reason why custom fields might not appear (other than the versioning and 'c_' issues nickm mentioned). I just found this out after a ton of head banging. The Rally SDK's ui stuff will filter out all fields that are hidden (such as _ref, or other 'hidden' custom fields) so you cannot view them in your apps in grids, charts, etc. For example, when constructing a Rally.ui.grid.Grid, a class called Rally.ui.grid.ColumnBuilder is constructed and it executes a command on the columns of the chart that look like this:
_removeHiddenColumns: function (columns) {
return _.filter(columns, function (column) {
return !column.modelField || !column.modelField.hidden;
});
},
As you can see, if you try to display any fields that are hidden (like _ref for example) in a grid, the column gets removed. So, although you may be fetching the custom fields, they will not show up unless those fields are not 'hidden'.

Rally: Creating tables dynamically

I'm building a report in Rally that finds all the defects which have been reopened, Then it looks to see if they have been reopened more than once. The table will list ID, description, creation date, then reopened dates. The problem is when I'm building the config file I have no idea how many reopened dates I'm going to need. I see ways of building the table itself dynamically but I cant figure out how to create the config file dynamically in an efficient way.
I had to do this too. You have to find all your information before you build the table.
You need :
-global array
-configuration object (mine is global but it doesn't have to be)
configSettings = [
{key: 'something1', header: 'something2', etc}
{key: ...
]
You need as many
{key: 'something1', header: 'something2', etc}'s
as columns in your table. For example, if you have "schedulestate" and "blocked", then you will need two of those.
Now, each time you loop looking for stuff, you create an object that has the same form as an item in the configuration settings.
localvar = {'something1' : "whatever you want to set it to", 'something2': 'set this to something'};
You can make something1 and something2 rally objects, like dropdowns or checkboxes or whatever. You can put hyperlinks in there, too.
After you have created localvar, you must push it onto the global array:
globalArray.push(localvar);
When you have finished looping, you can create the table.
Like Kyle said, it's hard to answer this without a code snippet from you.

Magento API Product Create with Dropdown Attributes

I am attempting to load products using the Magento Core API product.create method.
Magento Enterprise 1.10
I am actually having great success with the exception of inserting values for dropdown attributes. It's my understanding that you simply add the attribute code and it's associated value as part of the "Params" array when you call the product.create method. I have set up the attributes as dropdowns so they can be included as filter, and I have added the options or "values" before trying to insert the products via the API. No matter what I do the value is not selected after a successful product upload.
Here are examples of my attempted syntax:
'resolution' => '3000',
'resolution' => 1,
'resolution' => array(1),
'resolution' => array('3000'),
'resolution' => 3000,
Values of YES/NO are accepted for boolean attributes, and I have no problem passing values to regular text fields. Any insight would be greatly appreciated.
Ok - so after much trial and error - it appears that you must enter the Attribute Option ID as the value when passing information to dropdown attributes.
You can use the product_attribute.options method along with the attribute ID to get these IDs - or just check your database.
Soo - if attribute 'test-dropdown' has a dropdown option of 'orange' and that option's ID is '220':
'test-dropdown' => 220,

Show/Hide Parameter Values based on Selected Value of another Parameter. Possible?

I'm trying to find out whether it is possible to engineer a SSRS report where the array of selectable values for a Parameter changes depending on the selected value(s) of another parameter.
Let's say I have the following two parameters :
House : (multi-select parameter with the below selectable values)
[x] Auckland
[ ] Christchurch
Furniture : (multiselect also, with a list of furniture within those houses)
[ ] AKL-TABLE
[ ] AKL-CHAIR
I want to know how to achieve showing/hiding values that belong to a collection tied to each house, in a SSRS report.
If it is not impossible, what extra tables will I need to enable this? If it is impossible within the frame of SSRS, I will give up on it.
It's known as cascading parmeters.
The DataSet for the Furniture dropdown should refer to the House dropdown to filter it. So when House changes, the selection in Furniture changes (this includes initial load too)
Some tutorials:
MSDN
With pictures
Google search