Skip to content

Guide 153 · Events · GA4 + Tag Manager

Track content picks with the recommended select_content event: content_type, item_id, and the GA4 Event tag

Checked 11 November 2026 · Verification: container fragment validated structurally (format 2, unique IDs, trigger resolves, variable references exist); worked example recomputed · Steps traced to Analytics Help and Tag Manager Help, opened 11 November 2026 · 5-minute read

A click on a card, a banner, or a list item is a content pick, and GA4 only learns which content was picked if select_content is sent with content_type and item_id. This guide builds it as a GA4 Event tag that fires on the click, carrying the kind of content and its stable identifier.

Expected signal

After the tag is published, a test click shows in DebugView as a select_content event with content_type and item_id set, and the Realtime report lists it under Event count by Event name within minutes.

Download the container fragment: the select_content event container fragment (JSON) (3201 bytes, MD5 4a9ce53cac66410c8886144f30863038). It holds one GA4 Event tag named GA4 - select_content, the Custom Event trigger that fires when the data layer event equals select_content, and the two data layer variables for content_type and item_id. The Measurement ID is left as G-XXXXXXXXXX for you to replace. Import it from Admin, then Import Container, choosing Merge if the container already has tags.

What you need

  • The Google tag already installed through Tag Manager. This guide adds one event tag beside it.
  • A content pick your site can signal. The push runs when the visitor clicks the card, banner, or list item — the pick itself, not the page the pick leads to.
  • Two values per pick. Google's prescribed parameters for select_content are content_type (the kind of content, such as article or banner) and item_id (the identifier of the content picked).

The worked example

The test below is ten picks from a homepage with three cards. The split is the whole point of the event: one card took more than half the picks.

Card (item_id)Picks
guide-01426
guide-00913
guide-00371
Total picks10
Top card share6 of 10 (60.00%)

Those figures were recomputed here before publication: 6 plus 3 plus 1 is 10 picks; 6 divided by 10 is 0.6, so the top card is 60.00% of the picks. The data layer push that carries one of those picks is the standard form:

dataLayer.push({
  event: "select_content",
  content_type: "article",
  item_id: "guide-0142"
});

The trace

  1. Push the pick to the data layer on the click. When the visitor clicks the card, run dataLayer.push({ event: "select_content", content_type: "article", item_id: "guide-0142" }), with each value set to the real one. The event name is select_content, exactly as Google spells it.
  2. Create the two data layer variables. In Tag Manager, go to Variables, then in User-Defined Variables create one Data Layer Variable per parameter: DLV - content_type for content_type and DLV - item_id for item_id. If the share guide already created them, reuse them; do not create second copies.
  3. Add the GA4 Event tag. Go to Tags, then click New. Name it GA4 - select_content. In Tag Configuration, choose tag type Google Analytics: GA4 Event. Enter your Measurement ID. In Event Name, enter select_content. Under Event Parameters, add two rows: content_type with {{DLV - content_type}} and item_id with {{DLV - item_id}}.
  4. Set the trigger. In Triggering, click the trigger box and choose New, then choose trigger type Custom Event. Set Event Name to select_content and choose All Custom Events. Click Save, then Save the tag.
  5. Check it in Preview and DebugView. Click Preview, enter the site URL, and click Connect. Click the first card on the homepage. In Tag Assistant, the select_content event must appear in the left panel with the tag under Tags Fired. Then open DebugView (Admin, then Data display, then DebugView) and confirm the event shows with content_type article and item_id guide-0142.
  6. Publish it as a version. Click Submit at the top right, select Publish and Create Version, name the version, and click Publish.

Dead ends

DEAD END — THE PAGE VIEW COUNTS AS THE PICK. A page_view on the article page tells you the article was read, not that it was picked from the homepage. If the trigger is the destination page view, every arrival — search, direct, bookmark — counts as a homepage pick. The push belongs on the click.

DEAD END — ITEM_ID IS THE CARD POSITION. A position like card-1 changes the moment the homepage order changes, and the same item_id then means a different article. The item_id is the stable identifier of the content — the slug or the database ID — not where it sat.

DEAD END — CONTENT_TYPE TYPED DIFFERENTLY EACH TIME. article, Article, and articles are three rows in the report for one kind of content. Pick one spelling per kind and use it everywhere.

End state

One tag, one trigger, two parameters. A pick shows in DebugView within a minute of the test, in Realtime within minutes of publishing, and in the Events report within 24 hours, with the pick split visible per item_id. Register item_id as an event-scoped custom dimension if you want to break the Events report down by article — the custom dimensions guide covers that step.

Sources

Checked 11 November 2026. The click paths above are the ones in Google's help and developer pages, opened 11 November 2026. No step in this guide was run inside a live Analytics property or a live Tag Manager container, because both need a Google sign-in and this site does not sign in as anyone. What was run: the container fragment was validated structurally in Python 3.12.3 — export format version 2, unique IDs, the tag's firing trigger resolves to the Custom Event trigger in the file, and both data layer variable references exist as variables — and the worked example was recomputed: 6 + 3 + 1 = 10 picks; 6 / 10 = 60.00% for the top card. Google moves menu items without warning; if a path on this page no longer matches, the linked help page is the current map.