Support Forum

Ask a Question
Back to all

Getting 400 in Native widget request

I am integrating Taboola native widget in my application in a list. Every third item need to be the Taboola view

  1. I have created a TBLNativePage and TBLNativeUnit instances like this

Note - same properties are used in your sample

val properties = PlacementInfo.widgetProperties()
val nativeTaboolaPage = Taboola.getNativePage(properties.pageType, properties.pageUrl)

val requestData = TBLRequestData().setRecCount(1)
taboolaNativeUnit = nativeTaboolaPage.build(properties.placementName,TaboolaAdProvider.publisherInfo, requestData,
    object : TBLNativeListener() {
        override fun onItemClick(
            placementName: String?,
            itemId: String?,
            clickUrl: String?,
            isOrganic: Boolean,
            customData: String?
        ): Boolean {
            println("Taboola | onItemClick | isOrganic = $isOrganic")
            return super.onItemClick(placementName, itemId, clickUrl, isOrganic, customData)
        }
    })
  1. In ViewHolder I have fetched recommendation with this unit
taboolaNativeUnit.fetchRecommendations(object : TBLRecommendationRequestCallback {
    override fun onRecommendationsFetched(recommendationsResponse: TBLRecommendationsResponse?) {
        // add data to view
	}

    override fun onRecommendationsFailed(throwable: Throwable?) {
        // Getting 400 Bad Request here
    }
})

But I am getting 400 error code in network request with message - HTTP ERROR 400 Problem accessing /apiHandler/1.2/json/sdk-tester-rnd/recommendations.multiple-get. Reason: The source.type [article] is not supported

URL - https://api.taboola.com/1.2/json/sdk-tester-rnd/recommendations.multiple-get?device.id=04af5eac-4ea5-4ada-a69a-132a5dc3adc3&placement1.available=true&ad=%7B%22sdkd%22%3A%7B%22appv%22%3A%225.5.0%22%2C%22appid%22%3A%22com.homepage.news.android.dev%22%2C%22sdkt%22%3A%22Taboola%20Android%20SDK%20-%20API%22%2C%22os%22%3A%22Android%22%2C%22osv%22%3A%2210%22%2C%22sdkv%22%3A%223.5.2%22%2C%22app%22%3A%22HomePage%20News%22%2C%22model%22%3A%22Xiaomi%20POCO%20F1%22%2C%22lng%22%3A%7B%22main%22%3A%22eng%22%2C%22locale%22%3A%22en_IN%22%2C%22dsplng%22%3A%22English%22%2C%22sim%22%3A%22in%22%2C%22netw%22%3A%22in%22%2C%22kbd%22%3A%5B%22%22%5D%7D%2C%22kotlin%22%3Atrue%2C%22androidx%22%3Atrue%2C%22net%22%3A%22wifi%22%2C%22mem%22%3A%225767008%22%2C%22scr%22%3A%7B%22wd%22%3A1080%2C%22ht%22%3A2027%7D%7D%7D&user.opt_out=false&source.id=%2F&app.type=mobile&placement1.name=Widget%20without%20video&source.type=article&req_id=cdb0b553-40f4-41a4-af79-61c00d47142e&source.url=https%3A%2F%2Fblog.taboola.com&app.apikey=c4c6a04f0b48c7992ff477c89a28ef8d41932d12&placement1.organic-type=mix&user.session=v2_ab99edabbcddf419ff23cdf341124161_04af5eac-4ea5-4ada-a69a-132a5dc3adc3_1651576349_1651576349_CNawjgYQ5OxKGL7ihcnu5ZasBSABKAUwZziY0QpA8I8QSIb33ANQod0VWABggwNo_cXPy5zUwd5pcAE&app.name=HomePage%20News&placement1.rec-count=1&placement1.visible=false&view.id=1651578149421

Please let me know what is missing here or where I am creating the wrong request.

Note. For same adapter Classing Widget (XML) is working fine