Our customers would like to get a report with the number of times a link in their post was clicked. From reading other posts, I understand url_clicks from Ads API will always return null. Is there an alternative field that we can use? After some testing, I noticed that app_clicks from the Ads API almost always returns the same number as url_link_clicks from API v2. For example:

https://ads-api.twitter.com/8/stats/accounts/18ce53unlvh?start_time=2020-12-01&end_time=2020-12-08&entity=ORGANIC_TWEET&metric_groups=ENGAGEMENT,VIDEO&granularity=TOTAL&placement=ALL_ON_TWITTER&entity_ids=1334980964649353216

{
  "data_type": "stats",
  "time_series_length": 1,
  "data": [
    {
      "id": "1334980964649353216",
      "id_data": [
        {
          "segment": null,
          "metrics": {
            "video_views_50": null,
            "impressions": [
              1159
            ],
            "tweets_send": null,
            "qualified_impressions": null,
            "video_views_75": null,
            "follows": null,
            "video_3s100pct_views": null,
            "app_clicks": [
              8
            ],
            "retweets": [
              1
            ],
            "video_cta_clicks": null,
            "unfollows": null,
            "likes": [
              5
            ],
            "video_content_starts": null,
            "video_views_25": null,
            "engagements": [
              16
            ],
            "video_views_100": null,
            "clicks": [
              14
            ],
            "card_engagements": null,
            "video_6s_views": null,
            "poll_card_vote": null,
            "replies": [
              1
            ],
            "url_clicks": null,
            "video_total_views": null,
            "carousel_swipes": null
          }
        }
      ]
    }
  ],
  "request": {
    "params": {
      "start_time": "2020-12-01T05:00:00Z",
      "segmentation_type": null,
      "entity_ids": [
        1334980964649353216
      ],
      "end_time": "2020-12-08T05:00:00Z",
      "country": null,
      "placement": "ALL_ON_TWITTER",
      "granularity": "TOTAL",
      "entity": "ORGANIC_TWEET",
      "platform": null,
      "metric_groups": [
        "ENGAGEMENT",
        "VIDEO"
      ]
    }
  }
}
GET https://api.twitter.com/2/tweets/1334980964649353216?tweet.fields=organic_metrics

{
  "data": {
    "organic_metrics": {
      "url_link_clicks": 8,
      "reply_count": 1,
      "user_profile_clicks": 0,
      "impression_count": 1159,
      "retweet_count": 1,
      "like_count": 5
    },
    "id": "1334980964649353216",
    "text": "Our Rose Deep Hydration Oil-Infused Serum is topping @POPSUGAR’s list as the best serum to treat dry, Winter skin 🌹 Read what their editor is loving about it here: https://t.co/6OdL7sFln2"
  }
}

Notice that app_clicks is 8 and url_link_clicks is also 8. This holds up over many examples. I know it’s counter-intuitive based on the naming of that field, but is this something we can rely on?