Support Forum
Cannot customize click item event handler
Hi,
I have implemented iOS classic SDK, and in function "didClickPlacementName" i have return false so that i can handle event by my own as per documentation.
But Taboola sdk is opening that link along with my handler.
Let me know, how i can stop taboola to handle event.
Thanks & Regards,
Ankit Sabharwal
Posted by Ankit Sabharwal 6 days ago
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)
}
})
2. 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
Posted by Nikhil Kumar Agarwal 15 days ago
In iOS app adding taboola in table view as tast cell cause the table view to scroll up automatically.
Hi,
In our iOS app we have used tabolla SDK. The page where we used taboola is a table view and we are adding taboola when user reaches the bottom of the table view. But while we add taboola cell to the table view as the last cell and reload the table, table view automatically scroll up. This scroll up effect is happening only on iPhone 6 and iPhone 6s. Please let us know if there is any solution for this.
Posted by Rupam Bharat 20 days ago
In Mobile SDK v3 (Android), we dont have com.taboola.android.TaboolaWidget?
Hi,
I was looking at the documentation of Mobile SDK v3 (Android), and There was no mention of Native units.
When I check the sample - https://github.com/taboola/android-sdk-examples-3x
It was loading Taboola native widget programmatically unlike the Classic widget which has TBLClassicUnit. in XML also.
I have a few questions -
1. Are views like "TaboolaWidget" which are presented in V2 no longer in V3?
2. Can we add a Native unit using XML?
Posted by Nikhil Kumar Agarwal 22 days ago
Show/hide "Sponsored Links by ..."
Hi there!
I was wondering if there is any way to configure the TaboolaView from iOS side to obtain the "Sponsored Links by Taboola" or if the way to do it is by asking to Taboola account manager.
Thanks!
Posted by David 4 months ago
Is there any macro which can be used to pass gaid in appsflyer tracking url while running ads?
Is there any macro which can be used to pass gaid in appsflyer tracking url while running ads?
Posted by Anant 4 months ago
Android Taboola Classic Unit Implementation only loading single item
Hi,
I am loading tblclassicunit in the following way and I am getting only one view
layout structure
<ObservableScrollView
android:id="@+id/scroll_view"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true"
android:overScrollMode="never">
<FrameLayout
android:id="@+id/scroll_view_child"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:clipChildren="false">
<LinearLayout
android:id="@+id/linearTaboolaContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingTop="4dp"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:paddingBottom="22dp"
/>
</FrameLayout>
</ObservableScrollView>
and I am inflating a tblClassic in this container
code that I am using is,
private void buildBelowArticleWidget(TBLClassicUnit tblClassicUnit, final int position, final HashMap<Integer, Boolean> nativePositions) {
tblClassicUnit
.setTargetType("mix");
//optional
if (!TextUtils.isEmpty(mWidgetProperties.get(Constants.PAGE_URL_KEY))) {
tblClassicUnit.setPageId(mWidgetProperties.get(Constants.PAGE_URL_KEY));
}
//used for enable horizontal scroll
HashMap<String, String> extraProperties = new HashMap<>();
extraProperties.put("enableHorizontalScroll", "true");
extraProperties.put("useOnlineTemplate", "true");
extraProperties.put("darkMode", "true");
tblClassicUnit.getLayoutParams().height = TBLSdkDetailsHelper.getDisplayHeight(tblClassicUnit.getContext());
TBLClassicPage tblClassicPage= Taboola.getClassicPage(mWidgetProperties.get(Constants.PAGE_URL_KEY), "article");
tblClassicUnit.setAutoResizeHeight(true);
enableFeedContentScrolling(true);
tblClassicUnit.setUnitExtraProperties(extraProperties);
HashMap<String, String> extraProperties1 = new HashMap<>();
extraProperties1.put("setFetchPolicy", "1");
tblClassicPage.setPageExtraProperties(extraProperties1);
TBLClassicListener tblClassicListener;
tblClassicListener=new TBLClassicListener() {
@Override
public void onTaboolaWidgetOnTop() {
super.onTaboolaWidgetOnTop();
Log.e("taboola","onTaboolaWidgetOnTop");
// enableFeedContentScrolling(false);
}
@Override
public void onAdReceiveSuccess() {
Log.e("taboola","onAdReceiveSuccess");
mLoadTaboolaListener.onTaboolaAdLoaded();
super.onAdReceiveSuccess();
}
@Override
public void onAdReceiveFail(String error) {
Log.e("taboola","onAdReceiveSuccess");
mLoadTaboolaListener.onTaboolaAdFailed();
super.onAdReceiveFail(error);
}
@Override
public void onResize(int height) {
super.onResize(height);
}
@Override
public boolean onItemClick(String placementName, String itemId, String clickUrl, boolean isOrganic, String customData) {
//return super.onItemClick(placementName, itemId, clickUrl, isOrganic, customData);
if (isOrganic) {
//do something
return false;
}
return true;
}
};
tblClassicPage.addUnitToPage(tblClassicUnit,mWidgetProperties.get(Constants.PLACEMENT_KEY),mWidgetProperties.get(Constants.MODE_KEY),TBL_PLACEMENT_TYPE.FEED,tblClassicListener);
// tblClassicPage.addUnitToPage(tblClassicUnit,"Feed without video","thumbs-feed-01", TBL_PLACEMENT_TYPE.FEED,tblClassicListener);
fetchIfRequired();
}
Posted by anu 6 months ago
[iOS] How do I get my app to build on my M1 Mac (iOS Simulator) when Taboola is installed via Carthage?
I think the question says it all. I recently updated my machine, went to install the TaboolaSDK via Carthage, and got the error during build (for simulator):
This is a known issue, well described here: https://medium.com/@quentinfasquel/carthage-issues-xcode-12-xcframeworks-apple-silicon-etc-1c60d8635dbc
```
[email protected] iOS-App % ./carthage.sh bootstrap --platform iOS
*** No Cartfile.resolved found, updating dependencies
*** Downloading binary-only framework TaboolaSDK at "https://cdn.taboola.com/taboola-mobile-sdk/ios/carthage/TaboolaSDK.json"
*** xcodebuild output can be found in /var/folders/22/62ggb_8x21l87nh68dc2hm6w0000gp/T/carthage-xcodebuild.9PI6S7.log
*** Downloading binary-only framework TaboolaSDK at "https://cdn.taboola.com/taboola-mobile-sdk/ios/carthage/TaboolaSDK.json"
```
As far as I understand, 2 solution paths would be to support building .xcframeworks (and provide some support documentation about this issue), and/or additionally installing via Swift Package Manager (SPM).
Anyway, is there a way forward here?
I currently use the 'carthage.sh' script, given here: https://github.com/Carthage/Carthage/blob/master/Documentation/Xcode12Workaround.md
Where it explicitly says "this won't work on Apple Silicon" i.e. the simulator.
So I'm basically stuck.
Posted by Stephen O'Connor 7 months ago
Android Native Implementation Question
I have a TaboolaWidget inside a RecyclerView. Right now the widget has a fixed height with a nested scroll to view all the overflowing ads. What I want is to make the widget's size to be as large as needed in order to fit all the ads WITHOUT having to use the nested scroll that the widget provides.
Thanks.
Posted by george 7 months ago
How to get campaign level flowing details
Hi
I want to het flowing things through api
Campaign level page
1.campaign play/paused function
2.Changing Daily budget function
3.Daily Bid changing function
get a campaign page
1.get a campaign level sites block /unblock function
2.get a campaign level sites bid modifier
account level
i want to get account level
campaign name
click
actuall cpc
ctr
spend
account level block /block
Please guide me to fix this my issues
Posted by Nithu Shan 10 months ago