Skip to main content
Solved

My server-side python SDK sent out an event, but i don't see it


def tell_amplitude_account_created(user_id:int, account_id:int):
    """
    server_side API to Amplitude about account_created
    """

    client = Amplitude(AMPLITUDE_API_KEY)

    # see 
    # One of user_id and device_id is required

    # Track events with optional properties
    # identify_obj=Identify()
    # identify_obj.set("account_id", str(account_id))
    # client.identify(identify_obj, EventOptions(user_id=str(user_id)))
    client.track(
        BaseEvent(
            event_type = "account_created",
            user_id = str(user_id),
            event_properties = {
                "signup_via": "github",
            }
        )
    )

Under data

Nothing shows up. HOw do i troubleshoot this?

Please make it easy for me to troubleshoot. I’m seriously considering to move to mixpanel if this is too difficult

Best answer by eddie.gaona

Hello @kimsia to my understanding, you are having some trouble sending in events via the Python SDK.

Have you installed and imported the Python SDK into the code? For example, I installed the Python SDK to my mac using PIP.

pip install amplitude-analytics
"""A very simple example of using Amplitude Python SDK to track  events"""

from amplitude import Amplitude,BaseEvent


def callback_fun(e, code, message):
    """A callback function"""
    print(e)
    print(code, message)


# Initialize a Amplitude client instance
amp_client = Amplitude(api_key="API_Key")
# Config a callback function
amp_client.configuration.callback = callback_fun

# Create a BaseEvent instance
event = BaseEvent(event_type="Test python SDK", user_id="test_user_id", device_id="test_devece_id")
# Set event properties
event["event_properties"] = {
    "keywords": ["amplitude", "python"],
    "likes": True
}
amp_client.track(event)

# Flush the event buffer
amp_client.flush()

# Shutdown the client
amp_client.shutdown()

Then I ran python3 trackevent.py and got a successful response and I can see the event got ingested into my project.

Could you try using the code I provided above into a python file and try to run it that way? Also, if it’s helpful the engineering team has great examples on the Python SDK in GitHub: https://github.com/amplitude/Amplitude-Python/tree/main/examples

 

Hope this helps!

View original
Did this topic help you find an answer to your question?

5 replies

eddie.gaona
Team Member
Forum|alt.badge.img+9
  • Amplitude Support
  • 161 replies
  • Answer
  • July 11, 2022

Hello @kimsia to my understanding, you are having some trouble sending in events via the Python SDK.

Have you installed and imported the Python SDK into the code? For example, I installed the Python SDK to my mac using PIP.

pip install amplitude-analytics
"""A very simple example of using Amplitude Python SDK to track  events"""

from amplitude import Amplitude,BaseEvent


def callback_fun(e, code, message):
    """A callback function"""
    print(e)
    print(code, message)


# Initialize a Amplitude client instance
amp_client = Amplitude(api_key="API_Key")
# Config a callback function
amp_client.configuration.callback = callback_fun

# Create a BaseEvent instance
event = BaseEvent(event_type="Test python SDK", user_id="test_user_id", device_id="test_devece_id")
# Set event properties
event["event_properties"] = {
    "keywords": ["amplitude", "python"],
    "likes": True
}
amp_client.track(event)

# Flush the event buffer
amp_client.flush()

# Shutdown the client
amp_client.shutdown()

Then I ran python3 trackevent.py and got a successful response and I can see the event got ingested into my project.

Could you try using the code I provided above into a python file and try to run it that way? Also, if it’s helpful the engineering team has great examples on the Python SDK in GitHub: https://github.com/amplitude/Amplitude-Python/tree/main/examples

 

Hope this helps!


  • Author
  • New Member
  • 2 replies
  • July 13, 2022

Is the callback necessary?


  • Author
  • New Member
  • 2 replies
  • July 13, 2022

I found out the issue. it’s because of your gotcha about invalid user_id.

 

That’s an extremely bad design in your documentation. This is such a simple thing to do. First, i disagree with the min length. Even if this is the least of all evils, please make it clear THROUGHOUT your ENTIRE documentation. Constantly and frequently.

Because it’s just a surprising behavior.

I’m a fan of John Cutle but i cannot believe he works in an organization that makes this kind of extreme unexpected behavior.

Very disappointing.

I posted my experience searching for an answer in a separate post. Make it upfront throughout ALL your documentation abt the char limit for ur user_id | Community (amplitude.com)


Hi @eddie.gaona,

I’ve also been having trouble seeing any events in my dashboard and having run your script locally (with my API key), I get the following message from the print(code, message).

-1 [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed: self-signed certificate in certificate chain (_ssl.c:1000)

Any advice on how to tackle this? I can’t see any articles about this in particular…

Thanks in advance,

Chris


Ok looks like this might be a Python version issue. Getting the error locally, on 3.12, but my deployed version uses 3.11 and that’s working ok 🤷‍♂️


Reply


Cookie policy

We use cookies to enhance and personalize your experience. If you accept you agree to our full cookie policy. Learn more about our cookies.

 
Cookie settings