Data cannot be send at sigfox callbacks

Hi, I have problem where data at ubidots does not read the actual value of arduino coding.

//Send sample SIGFOX messages with UnaBiz UnaShield V2S Arduino Shield.
  //  This sketch includes diagnostics functions in the UnaShield.
  //  For a simpler sample sketch, see examples/send-light-level.
  #include "SIGFOX.h"
  //  IMPORTANT: Check these settings with UnaBiz to use the SIGFOX library correctly.
  static const String device = "g88pi";  //  Set this to your device name if you're using UnaBiz Emulator.
  static const bool useEmulator = false;  //  Set to true if using UnaBiz Emulator.
  static const bool echo = true;  //  Set to true if the SIGFOX library should display the executed commands.
  static const Country country = COUNTRY_SG;  //  Set this to your country to configure the SIGFOX transmission frequencies.
  static UnaShieldV2S transceiver(country, useEmulator, device, echo);  //  Uncomment this for UnaBiz UnaShield V2S Dev Kit
  // static UnaShieldV1 transceiver(country, useEmulator, device, echo);  //  Uncomment this for UnaBiz UnaShield V1 Dev Kit

#define SensorPin A0            //pH meter Analog output to Arduino Analog Input 0
#define Offset 0.00            //deviation compensate
#define LED 13
#define samplingInterval 20
#define printInterval 800
#define ArrayLenth  40    //times of collection 
int pHArray[ArrayLenth];   
int pHArrayIndex=0;
static float pHValue,pHvoltage;

//Turbidity values 
int turbidityVal;
float Tur_offset = 0.0;
float turbidityVoltage, RT_tur; 
  void setup() {  //  Will be called only once.
    //  Initialize console so we can see debug messages (9600 bits per second).
    Serial.begin(9600);  Serial.println(F("Running setup..."));  
    //  Check whether the SIGFOX module is functioning.
    if (!transceiver.begin()) stop(F("Unable to init SIGFOX module, may be missing"));  //  Will never return.
    //  Send a raw 12-byte message payload to SIGFOX.  In the loop() function we will use the Message class, which sends structured messages.
    //  Delay 10 seconds before sending next message.
    Serial.println(F("Waiting 10 seconds..."));
  void loop() {
    float pH = 40.0;
    float TU = 50.0;
    pH = ReadPH();
    TU = ReadTur();
    static int counter = 0, successCount = 0, failCount = 0;  
    Serial.print(F("\nRunning loop #")); Serial.println(counter);
    Message msg(transceiver);   
    msg.addField("ctr", counter);   
    msg.addField("pH", pH);
    //  Send the message.
    if (msg.send()) {
      successCount++;  //  If successful, count the message sent successfully.
    } else {
      failCount++;  //  If failed, count the message that could not be sent.
    //  Send only 10 messages.
    if (counter >= 10) {
      //  If more than 10 times, display the results and hang here forever.
      stop(String(F("Messages sent successfully: ")) + successCount +
                     F(", failed: ") + failCount);  //  Will never return.
    //  Delay 10 seconds before sending next message.
    Serial.println("Waiting 10 seconds...");

  float ReadPH()
    for (pHArrayIndex = 0; pHArrayIndex < ArrayLenth ; pHArrayIndex++)
      pHvoltage = avergearray(pHArray, ArrayLenth)*5.0/1024;
      pHValue = 3.5*pHvoltage+Offset;
      return pHValue;

  float ReadTur()
      turbidityVal = analogRead(A1);
    turbidityVal += Tur_offset;
      turbidityVoltage = turbidityVal*(5.0/1024.0);
      RT_tur = -1120.4*turbidityVoltage*turbidityVoltage + 5742.3*turbidityVoltage -4352.9;
      if(RT_tur < 0) RT_tur = 0;
      else if (turbidityVoltage < 2.5) RT_tur = 3000;
    else RT_tur = RT_tur;
      return RT_tur;
double avergearray(int* arr, int number){
  int i;
  int max,min;
  double avg;
  long amount=0;
    Serial.println("Error number for the array to avraging!/n");
    return 0;
  if(number<5){   //less than 5, calculated directly statistics
    avg = amount/number;
    return avg;
      min = arr[0];max=arr[1];
        amount+=min;        //arr<min
      }else {
          amount+=max;    //arr>max
          amount+=arr[i]; //min<=arr<=max
    avg = (double)amount/(number-2);
  return avg;

this is arduino coding

  "snr" : "{snr}",
  "avgSnr" : "{avgSnr}",
  "rssi" : "{rssi}",
  "TU" : {"value":"{customData#TU}"}, 
  "pH" : {"value":"{customData#pH}"}

meanwhile this is the json at sigfox callbacks.

I didnt know where is the problem.

Not seen many posts about Sigfox on here, so you may be could wait a long time for a response.

You may be better off asking Sigfox for advice as to how to use their product, they are charging you for it.