Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
27 commits
Select commit Hold shift + click to select a range
a51cdd7
MOB-3712-add Meta example
DanielFrTB Nov 19, 2024
5df5ac3
MOB-3712-add Meta example
DanielFrTB Nov 19, 2024
c4b20e9
MOB-3712-install unify meta version
DanielFrTB Nov 19, 2024
66224e2
Adding meta ad example to kotlin and metaClassicUnit example to java …
voltfmanSlava Dec 2, 2024
01a7579
restoring Daniel code. before i added my code
voltfmanSlava Dec 4, 2024
71839e0
MOB-3712 switching to a different meta beta version which support TBL…
voltfmanSlava Dec 4, 2024
79bc5fb
MOB-3712 adding MetaAd to kotlin example. Adding new TBLMetaClassicUn…
voltfmanSlava Dec 4, 2024
2ab0c66
MOB-3712 adding MetaAd to kotlin example. pr fixes
voltfmanSlava Dec 5, 2024
09ac63d
MOB-3712 adding MetaAd to kotlin example. pr fixes
voltfmanSlava Dec 5, 2024
02c7e5d
MOB-3712 adding MetaAd to kotlin example. pr fixes
voltfmanSlava Dec 5, 2024
c5757c3
MOB-3712 adding MetaAd to kotlin example. changing sdk to unified ver…
voltfmanSlava Dec 7, 2024
9193684
MOB-3712 adding MetaAd to kotlin example. last pr comment using hashm…
voltfmanSlava Dec 8, 2024
baabf98
Merge pull request #4 from taboola/MOB-3712-example_app_for_meta_inte…
voltfmanSlava Dec 8, 2024
0ca6ae7
MOB-3886 - Meta || Add screen to Example app to show carousels - addi…
voltfmanSlava Dec 16, 2024
81a7ad7
MOB-3886 - Meta || Add screen to Example app to show carousels - pr f…
voltfmanSlava Dec 16, 2024
1a0ca20
MOB-3886 - Meta || Add screen to Example app to show carousels - pr f…
voltfmanSlava Dec 16, 2024
1b28a3a
Merge pull request #5 from taboola/MOB-3886-Meta_Add_screen_to-_Examp…
voltfmanSlava Dec 17, 2024
6e1ff6e
MOB-3869-Add a sample screen to example app of API customization
DanielFrTB Jan 8, 2025
5276c75
MOB-3869-add lines spacing and amount of space
DanielFrTB Jan 8, 2025
c48ccb2
MOB-3869-PR comments
DanielFrTB Jan 8, 2025
23895cf
MOB-3869- PR comments
DanielFrTB Jan 12, 2025
199f99f
MOB-3869-PR comments
DanielFrTB Jan 13, 2025
3dff2c5
MOB-3869- update SDK version
DanielFrTB Jan 14, 2025
7460ca8
MOB-3869- PR comments
DanielFrTB Jan 14, 2025
77cb615
MOB-3869- PR comments
DanielFrTB Jan 14, 2025
81c6e39
MOB-3869-PR comments
DanielFrTB Jan 16, 2025
580c920
Merge pull request #6 from taboola/MOB-3869
DanielFrTB Jan 16, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion Java/app/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,8 @@ dependencies {
implementation 'androidx.annotation:annotation:1.1.0'

//Taboola
implementation 'com.taboola:android-sdk:4.0.0'
implementation 'com.taboola:android-sdk-beta:meta-unified-1.0.3-654-6d9c2e10d'

implementation 'com.squareup.retrofit2:converter-gson:2.9.0'

}
Binary file added Java/app/src/main/assets/fonts/arial_bold.ttf
Binary file not shown.
8 changes: 8 additions & 0 deletions Java/app/src/main/java/com/taboola/sdk4example/Const.java
Original file line number Diff line number Diff line change
Expand Up @@ -23,4 +23,12 @@ public class Const {
public static final String FEED_PLACEMENT_NAME = "Feed without video";
public static final String FEED_MODE = "thumbs-feed-01";
public static final String DARK_MODE = "darkMode";

//Meta widget 1x1
public static final String META_WIDGET_PLACEMENT_NAME = "Below Article Thumbnails";
public static final String META_WIDGET_MODE = "meta-widget-1x1";

//Meta Feed
public static final String META_FEED_PLACEMENT_NAME = "Feed without video";
public static final String META_FEED_MODE = "alternating-thumbnails-a";
}
22 changes: 22 additions & 0 deletions Java/app/src/main/java/com/taboola/sdk4example/MetaConst.java
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
package com.taboola.sdk4example;

public class MetaConst {

public static final String META_PUBLISHER_NAME = "sdk-tester-meta";
public static final String AUDIENCE_NETWORK_APP_ID = "1097593608162039";
public static final String AUDIENCE_NETWORK_PLACEMENT_ID = "1097593608162039_1097982098123190";
public static final String AUDIENCE_NETWORK_CAROUSEL_PLACEMENT_ID = "1097593608162039_1288555252399206";
public static final String AUDIENCE_NETWORK_APPLICATION_ID_KEY = "audienceNetworkApplicationId";
public static final String AUDIENCE_NETWORK_PLACEMENT_ID_KEY = "audienceNetworkPlacementId";
public static final String ENABLE_META_DEMAND_DEBUG_KEY = "enableMetaDemandDebug";
public static final String DEFAULT_LAYOUT_KEY = "default";
public static final String TEST_LAYOUT_IMAGE_LINK_TYPE = "image_link";
public static final String TEST_LAYOUT_CAROUSEL_TYPE = "carousel";
// UI customization
public static final String ELEMENT_TYPE_BRANDING = "branding";
public static final String DARK_NODE = "darkMode";
public static final String TYPEFACE_ARIAL_BOLD = "arial_bold";
public static final int TEXT_FONT_SIZE = 20;
public static final int NUMBER_OF_LINES = 2;
public static final float AMOUNT_OF_SPACE_BETWEEN_LINES = 0.5f;
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,21 +2,25 @@

import android.content.Context;
import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import com.taboola.sdk4example.sdk_classic.FeedLazyLoadInsideRecyclerViewFragment;
import com.taboola.sdk4example.sdk_classic.FeedWithMiddleArticleDarkModeInsideRecyclerViewFragment;
import com.taboola.sdk4example.sdk_classic.FeedWithMiddleArticleInsideListViewFragment;
import com.taboola.sdk4example.sdk_classic.FeedWithMiddleArticleInsideRecyclerViewFragment;
import com.taboola.sdk4example.sdk_classic.FeedWithMiddleArticleInsideScrollViewFragment;
import com.taboola.sdk4example.sdk_classic.MetaAdCarouselFragment;
import com.taboola.sdk4example.sdk_classic.MetaAdInsideScrollViewFragment;
import com.taboola.sdk4example.sdk_classic.MetaAdUICustomization;
import com.taboola.sdk4example.sdk_classic.MetaClassicUnitFragment;
import com.taboola.sdk4example.sdk_classic.MetaClassicUnitFragmentUICustomization;
import com.taboola.sdk4example.sdk_classic.OCClickHandlerFragment;
import com.taboola.sdk4example.sdk_classic.PullToRefreshFragment;
import com.taboola.sdk4example.sdk_classic.RecyclerViewPreloadFragment;
Expand Down Expand Up @@ -65,6 +69,11 @@ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceStat
addButton(getString(R.string.std_feed_pull_to_refresh), R.id.std_feed_pull_to_refresh, viewGroup);
addButton(getString(R.string.std_feed_lazy_loading_rv), R.id.std_feed_lazy_loading_rv, viewGroup);
addButton(getString(R.string.std_mid_article_with_feed_dark_mode_rv), R.id.std_mid_article_with_feed_dark_mode_rv, viewGroup);
addButton(getString(R.string.std_meta), R.id.std_meta_ad, viewGroup);
addButton(getString(R.string.std_meta_ad_UI_customization), R.id.std_meta_ad_UI_customization, viewGroup);
addButton(getString(R.string.std_meta_tbl_classic_unit_ad_UI_customization), R.id.std_meta_tbl_classic_unit_ad_UI_customization, viewGroup);
addButton(getString(R.string.std_meta_classic_unit), R.id.std_meta_classic_unit, viewGroup);
addButton(getString(R.string.std_meta_carousel), R.id.std_meta_carousel, viewGroup);
}


Expand Down Expand Up @@ -104,6 +113,21 @@ public void onClick(View v) {
case R.id.std_mid_article_with_feed_dark_mode_rv:
fragmentToOpen = new FeedWithMiddleArticleDarkModeInsideRecyclerViewFragment();
break;
case R.id.std_meta_ad:
fragmentToOpen = new MetaAdInsideScrollViewFragment();
break;
case R.id.std_meta_classic_unit:
fragmentToOpen = new MetaClassicUnitFragment();
break;
case R.id.std_meta_ad_UI_customization:
fragmentToOpen = new MetaAdUICustomization();
break;
case R.id.std_meta_tbl_classic_unit_ad_UI_customization:
fragmentToOpen = new MetaClassicUnitFragmentUICustomization();
break;
case R.id.std_meta_carousel:
fragmentToOpen = new MetaAdCarouselFragment();
break;
}

if (fragmentToOpen != null) {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,86 @@
package com.taboola.sdk4example.sdk_classic;

import static com.taboola.sdk4example.Const.META_WIDGET_MODE;
import static com.taboola.sdk4example.Const.META_WIDGET_PLACEMENT_NAME;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.Nullable;

import com.facebook.ads.NativeAdLayout;
import com.taboola.android.TBLClassicPage;
import com.taboola.android.TBLClassicUnit;
import com.taboola.android.TBLPublisherInfo;
import com.taboola.android.Taboola;
import com.taboola.android.annotations.TBL_PLACEMENT_TYPE;
import com.taboola.android.listeners.TBLClassicListener;
import com.taboola.sdk4example.Const;
import com.taboola.sdk4example.MetaConst;
import com.taboola.sdk4example.R;
import com.taboola.sdk4example.tabs.BaseTaboolaFragment;

import java.util.HashMap;

public class MetaAdCarouselFragment extends BaseTaboolaFragment {

private static final String TAG = MetaAdInsideScrollViewFragment.class.getSimpleName();


@Nullable
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
Taboola.init(new TBLPublisherInfo(MetaConst.META_PUBLISHER_NAME));
View rootView = inflater.inflate(R.layout.fragment_meta_ad_inside_sv, null);
NativeAdLayout adContainerTop = rootView.findViewById(R.id.native_ad_container_top);

Taboola.setGlobalExtraProperties(new HashMap<String, String>() {{
put(MetaConst.AUDIENCE_NETWORK_APPLICATION_ID_KEY, MetaConst.AUDIENCE_NETWORK_APP_ID);
put(MetaConst.ENABLE_META_DEMAND_DEBUG_KEY, "true");
}});

setupAndLoadTaboolaAd(adContainerTop);
return rootView;
}


private void setupAndLoadTaboolaAd(NativeAdLayout adContainer) {
TBLClassicPage tblClassicPage = Taboola.getClassicPage(Const.PAGE_URL, Const.PAGE_TYPE);
TBLClassicUnit tblClassicUnit = tblClassicPage.build(getContext(), META_WIDGET_PLACEMENT_NAME, META_WIDGET_MODE, TBL_PLACEMENT_TYPE.PAGE_MIDDLE, new TBLClassicListener() {
@Override
public boolean onItemClick(String placementName, String itemId, String clickUrl, boolean isOrganic, String customData) {
Log.d(TAG, "onItemClick");
return super.onItemClick(placementName, itemId, clickUrl, isOrganic, customData);
}

@Override
public void onAdReceiveSuccess() {
super.onAdReceiveSuccess();
Log.d(TAG, "onAdReceiveSuccess");
}

@Override
public void onAdReceiveFail(String error) {
super.onAdReceiveFail(error);
Log.d(TAG, "onAdReceiveFail " + error);
}
});
// Force the ad to be of type image_link
tblClassicUnit.setAdTypeForDebug(MetaConst.TEST_LAYOUT_CAROUSEL_TYPE);
tblClassicUnit.setUnitExtraProperties(new HashMap<String, String>() {{
put(MetaConst.AUDIENCE_NETWORK_PLACEMENT_ID_KEY, MetaConst.AUDIENCE_NETWORK_CAROUSEL_PLACEMENT_ID);
}});

tblClassicUnit.setNativeUI(MetaConst.DEFAULT_LAYOUT_KEY);

adContainer.addView(tblClassicUnit);
tblClassicUnit.fetchContent();
}


}
Original file line number Diff line number Diff line change
@@ -0,0 +1,87 @@
package com.taboola.sdk4example.sdk_classic;

import static com.taboola.sdk4example.Const.META_WIDGET_MODE;
import static com.taboola.sdk4example.Const.META_WIDGET_PLACEMENT_NAME;

import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;

import androidx.annotation.Nullable;

import com.facebook.ads.NativeAdLayout;
import com.taboola.android.TBLClassicPage;
import com.taboola.android.TBLClassicUnit;
import com.taboola.android.TBLPublisherInfo;
import com.taboola.android.Taboola;
import com.taboola.android.annotations.TBL_PLACEMENT_TYPE;
import com.taboola.android.listeners.TBLClassicListener;
import com.taboola.sdk4example.Const;
import com.taboola.sdk4example.MetaConst;
import com.taboola.sdk4example.R;
import com.taboola.sdk4example.tabs.BaseTaboolaFragment;

import java.util.HashMap;


public class MetaAdInsideScrollViewFragment extends BaseTaboolaFragment {

private static final String TAG = MetaAdInsideScrollViewFragment.class.getSimpleName();


@Nullable
@Override
public View onCreateView(LayoutInflater inflater,
@Nullable ViewGroup container,
@Nullable Bundle savedInstanceState) {
Taboola.init(new TBLPublisherInfo(MetaConst.META_PUBLISHER_NAME));
View rootView = inflater.inflate(R.layout.fragment_meta_ad_inside_sv, null);
NativeAdLayout adContainerTop = rootView.findViewById(R.id.native_ad_container_top);

Taboola.setGlobalExtraProperties(new HashMap<String, String>() {{
put(MetaConst.AUDIENCE_NETWORK_APPLICATION_ID_KEY, MetaConst.AUDIENCE_NETWORK_APP_ID);
put(MetaConst.ENABLE_META_DEMAND_DEBUG_KEY, "true");
}});

setupAndLoadTaboolaAd(adContainerTop);
return rootView;
}


private void setupAndLoadTaboolaAd(NativeAdLayout adContainer) {
TBLClassicPage tblClassicPage = Taboola.getClassicPage(Const.PAGE_URL, Const.PAGE_TYPE);
TBLClassicUnit tblClassicUnit = tblClassicPage.build(getContext(), META_WIDGET_PLACEMENT_NAME, META_WIDGET_MODE, TBL_PLACEMENT_TYPE.PAGE_MIDDLE, new TBLClassicListener() {
@Override
public boolean onItemClick(String placementName, String itemId, String clickUrl, boolean isOrganic, String customData) {
Log.d(TAG, "onItemClick");
return super.onItemClick(placementName, itemId, clickUrl, isOrganic, customData);
}

@Override
public void onAdReceiveSuccess() {
super.onAdReceiveSuccess();
Log.d(TAG, "onAdReceiveSuccess");
}

@Override
public void onAdReceiveFail(String error) {
super.onAdReceiveFail(error);
Log.d(TAG, "onAdReceiveFail " + error);
}
});
// Force the ad to be of type image_link
tblClassicUnit.setAdTypeForDebug(MetaConst.TEST_LAYOUT_IMAGE_LINK_TYPE);
tblClassicUnit.setUnitExtraProperties(new HashMap<String, String>() {{
put(MetaConst.AUDIENCE_NETWORK_PLACEMENT_ID_KEY, MetaConst.AUDIENCE_NETWORK_PLACEMENT_ID);
}});

tblClassicUnit.setNativeUI(MetaConst.DEFAULT_LAYOUT_KEY);

adContainer.addView(tblClassicUnit);
tblClassicUnit.fetchContent();
}


}
Loading