Tapjoy SDK 11 Publisher Integration Checklist:
- Make sure the SDK Key in your code is copied from the Tapjoy Dashboard correctly. The SDK Key is found in the dashboard by going to your app, clicking "Setting" in the lower left, and scrolling to the bottom of the page:
Be sure you are using the key for the correct platform.
- Make sure you are using the latest version of the Tapjoy SDK. You can download the latest version from our download page. You can tell which version of the SDK you have downloaded by examining the name of the .zip file or the folder (e.g. TapjoySDK_iOS_v11.0.3 is the 11.0.3 version of the SDK). If you want to tell what version is integrated into an already existing application, you can examine the Tapjoy connect call (via the console logs if logging is enabled, otherwise you’ll have to sniff the http traffic using Charles or a similar tool). Search the connect call for the "library_version=" parameter. This will give you the SDK version.
- Make sure your application is making a single Tapjoy Connect call on startup. The connect call will look something like this:
2015-04-01 16:11:07.077 Your-app-name [20138:1220196] [TJLog level: 4] Tapjoy Request: https://connect.tapjoy.com/api/connect/v3?library_version=11.0.3&app_version=1.4&pkg_rev=1.4&language_code=en&display_h=920&debug=true&session_id=b881278c5b143d9a0d18407af7cc675b8ee84113f11c7551399a93da141d6467&display_d=326×tamp=1427929867&device_type=iPhone%20Simulator&ad_tracking_enabled=true&fq30=2&os_version=8.2&library_revision=04d86d&timezone=America%2FLos_Angeles&plugin=native&display_w=640&advertising_id=5729C5E2-7CCA-4BE1-A5D4-4AF21EE468F0&installed=1426199328857&platform=iOS&verifier=a1b17295c648a4c00262fe09fbc0147871564c75b8a13789d162d096fc818ffe&analytics_id=1BD9A0BB-379C-42F4-8278-329AA6658DB4&connection_type=wifi&pkg_id=com.zdrake.storytellerdiceroller&display_multiplier=1.000000&country_code=US&sdk_type=event&lad=0&device_name=x86_64&fq7=1&bridge_version=1.0.6&install_id=5FBC85D3-833F-46AE-A261-72C931EFE8ED-4899-00001F3474E297F4&pkg_ver=1.4&app_id=983f7caa-471e-478d-bdc4-3a4c0d599549&session_total_count=3&device_location=true&store_view=true
- If you are on Android, make sure you are sending session start and session end calls in the appropriate places.
- Make sure you have integrated all the placements you intend to integrate. Tapjoy strongly recommends implementing all recommended placements that are applicable in your application. See the list for Android, iOS, Unity, and . This will give you maximum flexibility to control what content you show to your users without having to do further code work on your application.
- Make sure the names of your placements in your code match the name of the placement in the "Content" > "Manage Placements" section of the Tapjoy dashboard exactly. Remember that "App Open", "AppOpen", and "App-Open" are all different placements as far as Tapjoy is concerned. If you are having trouble getting content appearing at a placement, make sure the name in your code matches the placement name in the dashboard. If you call a placement that does not exist in the Tapjoy Dashboard, you will get a "No Content Available" error message:
2015-04-01 16:40:33.475 Your-app-name[20360:1243962] [TJLog level: 4] Send request delivered successfully for placement placement_not_in_dashboard, no content available
- Make sure all your placements in the Tapjoy are classified correctly as "Contextual" or "User Initiated". A Contextual placement is one that is called automatically as the user navigates through your application. So a placement at "App Launch" or "Store Open" would be a contextual. A User Initiated placement is one where the user is explicitly choosing to interact with an advertisement. These are typically things like a button that the user can press to launch a video they can watch to earn currency, or a button that the user can press to launch an offer wall. Contextual and User Initiated placements have very different performance characteristics, so it is important to set this option correctly. Future Tapjoy content optimizations may also make use of this difference to more appropriately target content.