Invalid detection of duplicated tweets

api

#1

Hello,

We’re facing an issue when creating tweets containing different URL parameters (to have different landing pages, depending on the region/language). We always got the error DUPLICATE_TWEET after we created the first tweet.

I already saw a bunch of topics about it, but not resolved:

Sending to you a few details below, could you please investigate this issue and let us know if it’s a known limitation or a bug? For your information, it’s possible to create them using the Twitter Ads tool so it should be possible over the API too.

Here, our tweets should have the same texts, medias but different urls (parameters are changing):

  • https://{url}?utm_source={…}&adv.n=DENMARK&utm_medium=display&utm_content={…}DK-en_Global_CPV-Video&utm_campaign={…}DK
  • https://{url}?utm_source={…}&adv.n=SWEDEN&utm_medium=display&utm_content={…}SE-en_Global_CPV-Video&utm_campaign={…}SE
  • https://{url}?utm_source={…}&adv.n=NETHERLANDS&utm_medium=display&utm_content={…}NL-en_Global_CPV-Video&utm_campaign={…}NL
  • https://{url}?utm_source={…}&adv.n=UNITED%20KINGDOM&utm_medium=display&utm_content={…}UK-en_Global_CPV-Video&utm_campaign={…}UK

API call & response:

Input
{
    "url": "https:\/\/ads-api.twitter.com\/1\/accounts\/18ce541hr3v\/tweet\/",
    "method": "POST",
    "parameters": {
        "status": "mmr test 2",
        "as_user_id": "1209608880",
        "video_id": "13_885101598908743680",
        "video_cta": "VISIT_SITE",
        "video_cta_value": "{url}"
    }
}
Output
{
    "errors": [
        {
            "code": "DUPLICATE_TWEET",
            "message": "Duplicate tweet detected"
        }
    ],
    "request": {
        "params": {
            "video_id": "13_885101598908743680",
            "video_cta": "VISIT_SITE",
            "as_user_id": 1209608880,
            "account_id": "18ce541hr3v",
            "status": "mmr test 2",
            "video_cta_value": "{url}"
        }
    }
}

Thanks,

Chris


#2

Thanks for the question, @c_chauve.

This is the behavior we expect through any Twitter API—to disallow duplicate Tweets. We’ve confirmed that it is possible to create these Tweets on ads.twitter.com, but need to do additional investigation to understand why. It will take some time for us to determine what’s going on.

Thanks for raising this issue.


#3

Hi @juanshishido, do you have any news regarding this issue?

Many thanks,
Chris.


#4

Thanks for the follow up, @c_chauve. Yes, we’ve determined why there is a difference, but need to discuss what the behavior should be. This will likely take time. In the mean time, there are no plans to change the way the Ads API behaves.


#5

Hi @juanshishido,

Thanks for your answer.

Just to give you some insights about that, it’s kind of very useful for clients who are targeting different countries (and languages) to be able to deliver ads with different landing pages.

Since it’s possible to do it through the native tool, it’s also complicated to explain that it’s not possible to do it through any marketing partner tools (using the Twitter Ads API).

I really hope that your discussions will end in a positive way to include this possible difference about URL parameters between promoted Tweets.

I’ll wait for your feedback then, thanks again for the support.

Best,
Chris


Significantly similar posts
#6

Most of the team agrees that this use case makes sense. We need to determine whether and when we can prioritize this work, though. No clear timeline on that yet. We appreciate your patience.


#7

@c_chauve: We’ve deployed a change that enables users to create “duplicate” Tweets. This is in quotes because the video_cta, for example, has to be different. Let me show an example.

Original Tweet

$ twurl -X POST -H ads-api.twitter.com "/2/accounts/18ce54d4x5t/tweet?text=duplicate text and video with different video_cta_value&video_id=13_952702240212398080&video_cta=VISIT_SITE&video_cta_value=https://twittercommunity.com/c/advertiser-api&as_user_id=756201191646691328&as_user_id=756201191646691328&trim_user=true"
{
  "data": {
    "created_at": "Tue Jan 23 23:28:37 +0000 2018",
    "id": 955945394667597829,
    "id_str": "955945394667597829",
    "text": "duplicate text and video with different video_cta_value https://t.co/dBmcReXAel",
    "truncated": false,
    "entities": {
      "hashtags": [],
      "symbols": [],
      "user_mentions": [],
      "urls": [],
      "media": [
        {
          "id": 952702240212398080,
          "id_str": "952702240212398080",
          "indices": [
            56,
            79
          ],
          "media_url": "http://pbs.twimg.com/amplify_video_thumb/952702240212398080/img/KdL7sVpb09x0vVeI.jpg",
          "media_url_https": "https://pbs.twimg.com/amplify_video_thumb/952702240212398080/img/KdL7sVpb09x0vVeI.jpg",
          "url": "https://t.co/dBmcReXAel",
          "display_url": "pic.twitter.com/dBmcReXAel",
          "expanded_url": "https://twitter.com/apimctestface/status/955945394667597829/video/1",
          "type": "photo",
          "sizes": {
            "small": {
              "w": 680,
              "h": 453,
              "resize": "fit"
            },
            "thumb": {
              "w": 150,
              "h": 150,
              "resize": "crop"
            },
            "medium": {
              "w": 1080,
              "h": 720,
              "resize": "fit"
            },
            "large": {
              "w": 1080,
              "h": 720,
              "resize": "fit"
            }
          }
        }
      ]
    },
    "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
    "in_reply_to_status_id": null,
    "in_reply_to_status_id_str": null,
    "in_reply_to_user_id": null,
    "in_reply_to_user_id_str": null,
    "in_reply_to_screen_name": null,
    "user": {
      "id": 756201191646691328,
      "id_str": "756201191646691328"
    },
    "geo": null,
    "coordinates": null,
    "place": null,
    "contributors": [
      2417045708
    ],
    "retweet_count": 0,
    "favorite_count": 0,
    "favorited": false,
    "retweeted": false,
    "possibly_sensitive": false,
    "scopes": {
      "followers": false
    },
    "lang": "en"
  },
  "request": {
    "params": {
      "video_id": "13_952702240212398080",
      "video_cta": "VISIT_SITE",
      "as_user_id": 756201191646691328,
      "text": "duplicate text and video with different video_cta_value",
      "account_id": "18ce54d4x5t",
      "trim_user": true,
      "video_cta_value": "https://twittercommunity.com/c/advertiser-api"
    }
  }
}

“Duplicate” Tweet (different video_cta value)

$ twurl -X POST -H ads-api.twitter.com "/2/accounts/18ce54d4x5t/tweet?text=duplicate text and video with different video_cta_value&video_id=13_952702240212398080&video_cta=VISIT_SITE&video_cta_value=https://developer.twitter.com/en/docs/ads/creatives/api-reference/scheduled-tweets#post-accounts-account-id-scheduled-tweets&as_user_id=756201191646691328&as_user_id=756201191646691328&trim_user=true"
{
  "data": {
    "created_at": "Tue Jan 23 23:28:55 +0000 2018",
    "id": 955945471226257400,
    "id_str": "955945471226257400",
    "text": "duplicate text and video with different video_cta_value https://t.co/IjILh0DOiY",
    "truncated": false,
    "entities": {
      "hashtags": [],
      "symbols": [],
      "user_mentions": [],
      "urls": [],
      "media": [
        {
          "id": 952702240212398080,
          "id_str": "952702240212398080",
          "indices": [
            56,
            79
          ],
          "media_url": "http://pbs.twimg.com/amplify_video_thumb/952702240212398080/img/KdL7sVpb09x0vVeI.jpg",
          "media_url_https": "https://pbs.twimg.com/amplify_video_thumb/952702240212398080/img/KdL7sVpb09x0vVeI.jpg",
          "url": "https://t.co/IjILh0DOiY",
          "display_url": "pic.twitter.com/IjILh0DOiY",
          "expanded_url": "https://twitter.com/apimctestface/status/955945471226257408/video/1",
          "type": "photo",
          "sizes": {
            "small": {
              "w": 680,
              "h": 453,
              "resize": "fit"
            },
            "thumb": {
              "w": 150,
              "h": 150,
              "resize": "crop"
            },
            "medium": {
              "w": 1080,
              "h": 720,
              "resize": "fit"
            },
            "large": {
              "w": 1080,
              "h": 720,
              "resize": "fit"
            }
          }
        }
      ]
    },
    "source": "<a href=\"http://twitter.com\" rel=\"nofollow\">Twitter Web Client</a>",
    "in_reply_to_status_id": null,
    "in_reply_to_status_id_str": null,
    "in_reply_to_user_id": null,
    "in_reply_to_user_id_str": null,
    "in_reply_to_screen_name": null,
    "user": {
      "id": 756201191646691328,
      "id_str": "756201191646691328"
    },
    "geo": null,
    "coordinates": null,
    "place": null,
    "contributors": [
      2417045708
    ],
    "retweet_count": 0,
    "favorite_count": 0,
    "favorited": false,
    "retweeted": false,
    "possibly_sensitive": false,
    "scopes": {
      "followers": false
    },
    "lang": "en"
  },
  "request": {
    "params": {
      "video_id": "13_952702240212398080",
      "video_cta": "VISIT_SITE",
      "as_user_id": 756201191646691328,
      "text": "duplicate text and video with different video_cta_value",
      "account_id": "18ce54d4x5t",
      "trim_user": true,
      "video_cta_value": "https://developer.twitter.com/en/docs/ads/creatives/api-reference/scheduled-tweets#post-accounts-account-id-scheduled-tweets"
    }
  }
}

Actual duplicate

$ twurl -X POST -H ads-api.twitter.com "/2/accounts/18ce54d4x5t/tweet?text=duplicate text and video with different video_cta_value&video_id=13_952702240212398080&video_cta=VISIT_SITE&video_cta_value=https://developer.twitter.com/en/docs/ads/creatives/api-reference/scheduled-tweets#post-accounts-account-id-scheduled-tweets&as_user_id=756201191646691328&as_user_id=756201191646691328&trim_user=true"
{
  "errors": [
    {
      "code": "DUPLICATE_TWEET",
      "message": "Duplicate tweet detected"
    }
  ],
  "request": {
    "params": {
      "video_id": "13_952702240212398080",
      "video_cta": "VISIT_SITE",
      "as_user_id": 756201191646691328,
      "text": "duplicate text and video with different video_cta_value",
      "account_id": "18ce54d4x5t",
      "trim_user": true,
      "video_cta_value": "https://developer.twitter.com/en/docs/ads/creatives/api-reference/scheduled-tweets#post-accounts-account-id-scheduled-tweets"
    }
  }
}

Thanks for raising this!